* [PATCH v2 0/4] iotests/297: Cover tests/
@ 2021-05-12 17:43 Max Reitz
2021-05-12 17:43 ` [PATCH v2 1/4] iotests/297: Drop 169 and 199 from the skip list Max Reitz
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Max Reitz @ 2021-05-12 17:43 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel, Max Reitz
v1: https://lists.nongnu.org/archive/html/qemu-block/2021-03/msg01471.html
Hi,
When reviewing Vladimir’s new addition to tests/, I noticed that 297 so
far does not cover named tests. That isn’t so good.
This series makes it cover them, and because tests/ is rather sparse at
this point, I decided to also fix up the two tests in there that don’t
pass pylint’s scrutiny yet. I think it would be nice if we could keep
all of tests/ clean.
v2:
- Changed patch 2 as per Vladimir’s suggestion
(i.e. don’t let discards1_sha256 and all_discards_sha256 be class
variables at all)
git-backport-diff against v1:
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
001/4:[----] [--] 'iotests/297: Drop 169 and 199 from the skip list'
002/4:[0016] [FC] 'migrate-bitmaps-postcopy-test: Fix pylint warnings'
003/4:[----] [--] 'migrate-bitmaps-test: Fix pylint warnings'
004/4:[----] [--] 'iotests/297: Cover tests/'
Max Reitz (4):
iotests/297: Drop 169 and 199 from the skip list
migrate-bitmaps-postcopy-test: Fix pylint warnings
migrate-bitmaps-test: Fix pylint warnings
iotests/297: Cover tests/
tests/qemu-iotests/297 | 7 ++--
.../tests/migrate-bitmaps-postcopy-test | 13 ++++---
tests/qemu-iotests/tests/migrate-bitmaps-test | 38 ++++++++++---------
3 files changed, 31 insertions(+), 27 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/4] iotests/297: Drop 169 and 199 from the skip list
2021-05-12 17:43 [PATCH v2 0/4] iotests/297: Cover tests/ Max Reitz
@ 2021-05-12 17:43 ` Max Reitz
2021-05-12 17:43 ` [PATCH v2 2/4] migrate-bitmaps-postcopy-test: Fix pylint warnings Max Reitz
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Max Reitz @ 2021-05-12 17:43 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel, Max Reitz
169 and 199 have been renamed and moved to tests/ (commit a44be0334be:
"iotests: rename and move 169 and 199 tests"), so we can drop them from
the skip list.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/297 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/qemu-iotests/297 b/tests/qemu-iotests/297
index a37910b42d..e3244d40a0 100755
--- a/tests/qemu-iotests/297
+++ b/tests/qemu-iotests/297
@@ -29,7 +29,7 @@ import iotests
SKIP_FILES = (
'030', '040', '041', '044', '045', '055', '056', '057', '065', '093',
'096', '118', '124', '132', '136', '139', '147', '148', '149',
- '151', '152', '155', '163', '165', '169', '194', '196', '199', '202',
+ '151', '152', '155', '163', '165', '194', '196', '202',
'203', '205', '206', '207', '208', '210', '211', '212', '213', '216',
'218', '219', '222', '224', '228', '234', '235', '236', '237', '238',
'240', '242', '245', '246', '248', '255', '256', '257', '258', '260',
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/4] migrate-bitmaps-postcopy-test: Fix pylint warnings
2021-05-12 17:43 [PATCH v2 0/4] iotests/297: Cover tests/ Max Reitz
2021-05-12 17:43 ` [PATCH v2 1/4] iotests/297: Drop 169 and 199 from the skip list Max Reitz
@ 2021-05-12 17:43 ` Max Reitz
2021-05-13 10:52 ` Vladimir Sementsov-Ogievskiy
2021-05-12 17:43 ` [PATCH v2 3/4] migrate-bitmaps-test: " Max Reitz
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Max Reitz @ 2021-05-12 17:43 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel, Max Reitz
pylint complains that discards1_sha256 and all_discards_sha256 are first
set in non-__init__ methods.
These variables are not really class-variables anyway, so let them
instead be returned by start_postcopy(), thus silencing pylint.
Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
.../tests/migrate-bitmaps-postcopy-test | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test b/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test
index 584062b412..00ebb5c251 100755
--- a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test
+++ b/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test
@@ -132,10 +132,10 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
node='drive0', name='bitmap0')
- self.discards1_sha256 = result['return']['sha256']
+ discards1_sha256 = result['return']['sha256']
# Check, that updating the bitmap by discards works
- assert self.discards1_sha256 != empty_sha256
+ assert discards1_sha256 != empty_sha256
# We want to calculate resulting sha256. Do it in bitmap0, so, disable
# other bitmaps
@@ -148,7 +148,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
node='drive0', name='bitmap0')
- self.all_discards_sha256 = result['return']['sha256']
+ all_discards_sha256 = result['return']['sha256']
# Now, enable some bitmaps, to be updated during migration
for i in range(2, nb_bitmaps, 2):
@@ -173,10 +173,11 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
event_resume = self.vm_b.event_wait('RESUME')
self.vm_b_events.append(event_resume)
- return event_resume
+ return (event_resume, discards1_sha256, all_discards_sha256)
def test_postcopy_success(self):
- event_resume = self.start_postcopy()
+ event_resume, discards1_sha256, all_discards_sha256 = \
+ self.start_postcopy()
# enabled bitmaps should be updated
apply_discards(self.vm_b, discards2)
@@ -217,7 +218,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
for i in range(0, nb_bitmaps, 5):
result = self.vm_b.qmp('x-debug-block-dirty-bitmap-sha256',
node='drive0', name='bitmap{}'.format(i))
- sha = self.discards1_sha256 if i % 2 else self.all_discards_sha256
+ sha = discards1_sha256 if i % 2 else all_discards_sha256
self.assert_qmp(result, 'return/sha256', sha)
def test_early_shutdown_destination(self):
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/4] migrate-bitmaps-test: Fix pylint warnings
2021-05-12 17:43 [PATCH v2 0/4] iotests/297: Cover tests/ Max Reitz
2021-05-12 17:43 ` [PATCH v2 1/4] iotests/297: Drop 169 and 199 from the skip list Max Reitz
2021-05-12 17:43 ` [PATCH v2 2/4] migrate-bitmaps-postcopy-test: Fix pylint warnings Max Reitz
@ 2021-05-12 17:43 ` Max Reitz
2021-05-12 17:43 ` [PATCH v2 4/4] iotests/297: Cover tests/ Max Reitz
2021-05-14 11:02 ` [PATCH v2 0/4] " Max Reitz
4 siblings, 0 replies; 8+ messages in thread
From: Max Reitz @ 2021-05-12 17:43 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel, Max Reitz
There are a couple of things pylint takes issue with:
- The "time" import is unused
- The import order (iotests should come last)
- get_bitmap_hash() doesn't use @self and so should be a function
- Semicolons at the end of some lines
- Parentheses after "if"
- Some lines are too long (80 characters instead of 79)
- inject_test_case()'s @name parameter shadows a top-level @name
variable
- "lambda self: mc(self)" is equivalent to just "mc"
- Always put two empty lines after a function
- f'exec: cat > /dev/null' does not need to be an f-string
Fix them.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/tests/migrate-bitmaps-test | 38 ++++++++++---------
1 file changed, 20 insertions(+), 18 deletions(-)
diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-test b/tests/qemu-iotests/tests/migrate-bitmaps-test
index a5c7bc83e0..fb5ffbb8c4 100755
--- a/tests/qemu-iotests/tests/migrate-bitmaps-test
+++ b/tests/qemu-iotests/tests/migrate-bitmaps-test
@@ -20,11 +20,10 @@
#
import os
-import iotests
-import time
import itertools
import operator
import re
+import iotests
from iotests import qemu_img, qemu_img_create, Timeout
@@ -37,6 +36,12 @@ mig_cmd = 'exec: cat > ' + mig_file
incoming_cmd = 'exec: cat ' + mig_file
+def get_bitmap_hash(vm):
+ result = vm.qmp('x-debug-block-dirty-bitmap-sha256',
+ node='drive0', name='bitmap0')
+ return result['return']['sha256']
+
+
class TestDirtyBitmapMigration(iotests.QMPTestCase):
def tearDown(self):
self.vm_a.shutdown()
@@ -62,21 +67,16 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
params['persistent'] = True
result = vm.qmp('block-dirty-bitmap-add', **params)
- self.assert_qmp(result, 'return', {});
-
- def get_bitmap_hash(self, vm):
- result = vm.qmp('x-debug-block-dirty-bitmap-sha256',
- node='drive0', name='bitmap0')
- return result['return']['sha256']
+ self.assert_qmp(result, 'return', {})
def check_bitmap(self, vm, sha256):
result = vm.qmp('x-debug-block-dirty-bitmap-sha256',
node='drive0', name='bitmap0')
if sha256:
- self.assert_qmp(result, 'return/sha256', sha256);
+ self.assert_qmp(result, 'return/sha256', sha256)
else:
self.assert_qmp(result, 'error/desc',
- "Dirty bitmap 'bitmap0' not found");
+ "Dirty bitmap 'bitmap0' not found")
def do_test_migration_resume_source(self, persistent, migrate_bitmaps):
granularity = 512
@@ -97,7 +97,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
self.add_bitmap(self.vm_a, granularity, persistent)
for r in regions:
self.vm_a.hmp_qemu_io('drive0', 'write %d %d' % r)
- sha256 = self.get_bitmap_hash(self.vm_a)
+ sha256 = get_bitmap_hash(self.vm_a)
result = self.vm_a.qmp('migrate', uri=mig_cmd)
while True:
@@ -106,7 +106,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
break
while True:
result = self.vm_a.qmp('query-status')
- if (result['return']['status'] == 'postmigrate'):
+ if result['return']['status'] == 'postmigrate':
break
# test that bitmap is still here
@@ -164,7 +164,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
self.add_bitmap(self.vm_a, granularity, persistent)
for r in regions:
self.vm_a.hmp_qemu_io('drive0', 'write %d %d' % r)
- sha256 = self.get_bitmap_hash(self.vm_a)
+ sha256 = get_bitmap_hash(self.vm_a)
if pre_shutdown:
self.vm_a.shutdown()
@@ -214,16 +214,17 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
self.check_bitmap(self.vm_b, sha256 if persistent else False)
-def inject_test_case(klass, name, method, *args, **kwargs):
+def inject_test_case(klass, suffix, method, *args, **kwargs):
mc = operator.methodcaller(method, *args, **kwargs)
- setattr(klass, 'test_' + method + name, lambda self: mc(self))
+ setattr(klass, 'test_' + method + suffix, mc)
+
for cmb in list(itertools.product((True, False), repeat=5)):
name = ('_' if cmb[0] else '_not_') + 'persistent_'
name += ('_' if cmb[1] else '_not_') + 'migbitmap_'
name += '_online' if cmb[2] else '_offline'
name += '_shared' if cmb[3] else '_nonshared'
- if (cmb[4]):
+ if cmb[4]:
name += '__pre_shutdown'
inject_test_case(TestDirtyBitmapMigration, name, 'do_test_migration',
@@ -270,7 +271,8 @@ class TestDirtyBitmapBackingMigration(iotests.QMPTestCase):
self.assert_qmp(result, 'return', {})
# Check that the bitmaps are there
- for node in self.vm.qmp('query-named-block-nodes', flat=True)['return']:
+ nodes = self.vm.qmp('query-named-block-nodes', flat=True)['return']
+ for node in nodes:
if 'node0' in node['node-name']:
self.assert_qmp(node, 'dirty-bitmaps[0]/name', 'bmap0')
@@ -287,7 +289,7 @@ class TestDirtyBitmapBackingMigration(iotests.QMPTestCase):
"""
Continue the source after migration.
"""
- result = self.vm.qmp('migrate', uri=f'exec: cat > /dev/null')
+ result = self.vm.qmp('migrate', uri='exec: cat > /dev/null')
self.assert_qmp(result, 'return', {})
with Timeout(10, 'Migration timeout'):
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/4] iotests/297: Cover tests/
2021-05-12 17:43 [PATCH v2 0/4] iotests/297: Cover tests/ Max Reitz
` (2 preceding siblings ...)
2021-05-12 17:43 ` [PATCH v2 3/4] migrate-bitmaps-test: " Max Reitz
@ 2021-05-12 17:43 ` Max Reitz
2021-05-14 11:02 ` [PATCH v2 0/4] " Max Reitz
4 siblings, 0 replies; 8+ messages in thread
From: Max Reitz @ 2021-05-12 17:43 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel, Max Reitz
297 so far does not check the named tests, which reside in the tests/
directory (i.e. full path tests/qemu-iotests/tests). Fix it.
Thanks to the previous two commits, all named tests pass its scrutiny,
so we do not have to add anything to SKIP_FILES.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/297 | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/297 b/tests/qemu-iotests/297
index e3244d40a0..ce0e82e279 100755
--- a/tests/qemu-iotests/297
+++ b/tests/qemu-iotests/297
@@ -55,8 +55,9 @@ def is_python_file(filename):
def run_linters():
- files = [filename for filename in (set(os.listdir('.')) - set(SKIP_FILES))
- if is_python_file(filename)]
+ named_tests = [f'tests/{entry}' for entry in os.listdir('tests')]
+ check_tests = set(os.listdir('.') + named_tests) - set(SKIP_FILES)
+ files = [filename for filename in check_tests if is_python_file(filename)]
iotests.logger.debug('Files to be checked:')
iotests.logger.debug(', '.join(sorted(files)))
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/4] migrate-bitmaps-postcopy-test: Fix pylint warnings
2021-05-12 17:43 ` [PATCH v2 2/4] migrate-bitmaps-postcopy-test: Fix pylint warnings Max Reitz
@ 2021-05-13 10:52 ` Vladimir Sementsov-Ogievskiy
0 siblings, 0 replies; 8+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2021-05-13 10:52 UTC (permalink / raw)
To: Max Reitz, qemu-block; +Cc: qemu-devel, Kevin Wolf
12.05.2021 20:43, Max Reitz wrote:
> pylint complains that discards1_sha256 and all_discards_sha256 are first
> set in non-__init__ methods.
>
> These variables are not really class-variables anyway, so let them
> instead be returned by start_postcopy(), thus silencing pylint.
>
> Suggested-by: Vladimir Sementsov-Ogievskiy<vsementsov@virtuozzo.com>
> Signed-off-by: Max Reitz<mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
--
Best regards,
Vladimir
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] iotests/297: Cover tests/
2021-05-12 17:43 [PATCH v2 0/4] iotests/297: Cover tests/ Max Reitz
` (3 preceding siblings ...)
2021-05-12 17:43 ` [PATCH v2 4/4] iotests/297: Cover tests/ Max Reitz
@ 2021-05-14 11:02 ` Max Reitz
2021-05-14 15:08 ` Max Reitz
4 siblings, 1 reply; 8+ messages in thread
From: Max Reitz @ 2021-05-14 11:02 UTC (permalink / raw)
To: qemu-block; +Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel
On 12.05.21 19:43, Max Reitz wrote:
> v1: https://lists.nongnu.org/archive/html/qemu-block/2021-03/msg01471.html
>
>
> Hi,
>
> When reviewing Vladimir’s new addition to tests/, I noticed that 297 so
> far does not cover named tests. That isn’t so good.
>
> This series makes it cover them, and because tests/ is rather sparse at
> this point, I decided to also fix up the two tests in there that don’t
> pass pylint’s scrutiny yet. I think it would be nice if we could keep
> all of tests/ clean.
>
>
> v2:
> - Changed patch 2 as per Vladimir’s suggestion
> (i.e. don’t let discards1_sha256 and all_discards_sha256 be class
> variables at all)
Thanks for the review, applied to my block branch:
https://github.com/XanClic/qemu/commits/block
Max
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] iotests/297: Cover tests/
2021-05-14 11:02 ` [PATCH v2 0/4] " Max Reitz
@ 2021-05-14 15:08 ` Max Reitz
0 siblings, 0 replies; 8+ messages in thread
From: Max Reitz @ 2021-05-14 15:08 UTC (permalink / raw)
To: qemu-block; +Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, qemu-devel
On 14.05.21 13:02, Max Reitz wrote:
> On 12.05.21 19:43, Max Reitz wrote:
>> v1:
>> https://lists.nongnu.org/archive/html/qemu-block/2021-03/msg01471.html
>>
>>
>> Hi,
>>
>> When reviewing Vladimir’s new addition to tests/, I noticed that 297 so
>> far does not cover named tests. That isn’t so good.
>>
>> This series makes it cover them, and because tests/ is rather sparse at
>> this point, I decided to also fix up the two tests in there that don’t
>> pass pylint’s scrutiny yet. I think it would be nice if we could keep
>> all of tests/ clean.
>>
>>
>> v2:
>> - Changed patch 2 as per Vladimir’s suggestion
>> (i.e. don’t let discards1_sha256 and all_discards_sha256 be class
>> variables at all)
>
> Thanks for the review, applied to my block branch:
>
> https://github.com/XanClic/qemu/commits/block
...and dropping again, patch 3 embarrassingly breaks
migrate-bitmaps-test. The problem seems to be that contrastingly to
pylint’s opinion, the `lambda self: mc(self)` is necessary, it can’t be
contracted to just `mc`. I suspect that `mc` (returned by
`methodcaller`) has a variable argument list, and so without the lambda,
`setattr` adds it as a argument-less function, so when it is called, it
doesn’t receive the `self` parameter. (It complains that it expected 1
argument, but got 0.)
So we need the lambda to enforce that the `self` parameter is passed.
Max
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-05-14 15:09 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-12 17:43 [PATCH v2 0/4] iotests/297: Cover tests/ Max Reitz
2021-05-12 17:43 ` [PATCH v2 1/4] iotests/297: Drop 169 and 199 from the skip list Max Reitz
2021-05-12 17:43 ` [PATCH v2 2/4] migrate-bitmaps-postcopy-test: Fix pylint warnings Max Reitz
2021-05-13 10:52 ` Vladimir Sementsov-Ogievskiy
2021-05-12 17:43 ` [PATCH v2 3/4] migrate-bitmaps-test: " Max Reitz
2021-05-12 17:43 ` [PATCH v2 4/4] iotests/297: Cover tests/ Max Reitz
2021-05-14 11:02 ` [PATCH v2 0/4] " Max Reitz
2021-05-14 15:08 ` Max Reitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).