mirror of https://github.com/xemu-project/xemu.git
iotests.py: Add skip_for_formats() decorator
Sometimes, we want to skip some test methods for certain formats. This decorator allows that. Signed-off-by: Max Reitz <mreitz@redhat.com> Message-Id: <20200617104822.27525-2-mreitz@redhat.com> Tested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
6510ba1c0e
commit
ff3caf5af0
|
@ -683,11 +683,10 @@ class TestBlockJobsAfterCycle(ChangeBaseClass):
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# We need backing file support
|
||||||
|
@iotests.skip_for_formats(('vpc', 'parallels', 'qcow', 'vdi', 'vmdk', 'raw',
|
||||||
|
'vhdx'))
|
||||||
def test_snapshot_and_commit(self):
|
def test_snapshot_and_commit(self):
|
||||||
# We need backing file support
|
|
||||||
if iotests.imgfmt != 'qcow2' and iotests.imgfmt != 'qed':
|
|
||||||
return
|
|
||||||
|
|
||||||
result = self.vm.qmp('blockdev-snapshot-sync', device='drive0',
|
result = self.vm.qmp('blockdev-snapshot-sync', device='drive0',
|
||||||
snapshot_file=new_img,
|
snapshot_file=new_img,
|
||||||
format=iotests.imgfmt)
|
format=iotests.imgfmt)
|
||||||
|
|
|
@ -1103,6 +1103,22 @@ def skip_if_unsupported(required_formats=(), read_only=False):
|
||||||
return func_wrapper
|
return func_wrapper
|
||||||
return skip_test_decorator
|
return skip_test_decorator
|
||||||
|
|
||||||
|
def skip_for_formats(formats: Sequence[str] = ()) \
|
||||||
|
-> Callable[[Callable[[QMPTestCase, List[Any], Dict[str, Any]], None]],
|
||||||
|
Callable[[QMPTestCase, List[Any], Dict[str, Any]], None]]:
|
||||||
|
'''Skip Test Decorator
|
||||||
|
Skips the test for the given formats'''
|
||||||
|
def skip_test_decorator(func):
|
||||||
|
def func_wrapper(test_case: QMPTestCase, *args: List[Any],
|
||||||
|
**kwargs: Dict[str, Any]) -> None:
|
||||||
|
if imgfmt in formats:
|
||||||
|
msg = f'{test_case}: Skipped for format {imgfmt}'
|
||||||
|
test_case.case_skip(msg)
|
||||||
|
else:
|
||||||
|
func(test_case, *args, **kwargs)
|
||||||
|
return func_wrapper
|
||||||
|
return skip_test_decorator
|
||||||
|
|
||||||
def skip_if_user_is_root(func):
|
def skip_if_user_is_root(func):
|
||||||
'''Skip Test Decorator
|
'''Skip Test Decorator
|
||||||
Runs the test only without root permissions'''
|
Runs the test only without root permissions'''
|
||||||
|
|
Loading…
Reference in New Issue