qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 6/8] iotests: Test driver whitelisting in 093


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH v3 6/8] iotests: Test driver whitelisting in 093
Date: Tue, 17 Sep 2019 10:18:02 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0

On 13.09.19 20:30, John Snow wrote:
> 
> 
> On 9/13/19 8:47 AM, Max Reitz wrote:
>> On 20.08.19 23:32, John Snow wrote:
>>>
>>>
>>> On 8/19/19 4:18 PM, Max Reitz wrote:
>>>> null-aio may not be whitelisted.  Skip all test cases that require it.
>>>>
>>>> Signed-off-by: Max Reitz <address@hidden>
>>>> ---
>>>>  tests/qemu-iotests/093 | 12 +++++++++---
>>>>  1 file changed, 9 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/tests/qemu-iotests/093 b/tests/qemu-iotests/093
>>>> index 50c1e7f2ec..f03fa24a07 100755
>>>> --- a/tests/qemu-iotests/093
>>>> +++ b/tests/qemu-iotests/093
>>>> @@ -24,7 +24,7 @@ import iotests
>>>>  nsec_per_sec = 1000000000
>>>>  
>>>>  class ThrottleTestCase(iotests.QMPTestCase):
>>>> -    test_img = "null-aio://"
>>>> +    test_driver = "null-aio"
>>>>      max_drives = 3
>>>>  
>>>>      def blockstats(self, device):
>>>> @@ -35,10 +35,14 @@ class ThrottleTestCase(iotests.QMPTestCase):
>>>>                  return stat['rd_bytes'], stat['rd_operations'], 
>>>> stat['wr_bytes'], stat['wr_operations']
>>>>          raise Exception("Device not found for blockstats: %s" % device)
>>>>  
>>>> +    def required_drivers(self):
>>>> +        return [self.test_driver]
>>>> +
>>>> +    @iotests.skip_if_unsupported(required_drivers)
>>>
>>> Oh, I see why you're passing args[0] back to the callback now. Why not
>>> just pass self.required_drivers and call it with no arguments instead?
>>>
>>> You can get a bound version that way that doesn't need additional
>>> arguments, and then the callback is free to take generic callables of
>>> any kind.
>>
>> Am I doing something wrong?
>>
>> I just get
>>
>> +Traceback (most recent call last):
>> +  File "093", line 26, in <module>
>> +    class ThrottleTestCase(iotests.QMPTestCase):
>> +  File "093", line 41, in ThrottleTestCase
>> +    @iotests.skip_if_unsupported(self.required_drivers)
>> +NameError: name 'self' is not defined
>>
>> this way.
>>
>> Max
>>
> What was I even talking about? :\ Well.
> 
> I'd still like to define func_wrapper with a nod to the type constraint
> it has:
> 
> def func_wrapper(instance: iotests.QMPTestCase, *args, **kwargs):
>     [...]
> 
> 
> Then, you'd write:
> 
> if callable(required_formats):
>     fmts = required_formats(instance)
> else:
>     fmts = required_formats

Yep, that anyway.  (Although I didn’t know about the “param: type”
syntax and put that constraint in a comment instead.  Thanks again :-))

Max

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]