Browse Source

iotests: Add filter_qtest()

The open-coded form of this filter has been copied into enough tests
that it's better to move it into iotests.py.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-ID: <20250204211407.381505-15-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Kevin Wolf 6 months ago
parent
commit
ed26db8367

+ 1 - 3
tests/qemu-iotests/041

@@ -1100,10 +1100,8 @@ class TestRepairQuorum(iotests.QMPTestCase):
 
 
         # Check the full error message now
         # Check the full error message now
         self.vm.shutdown()
         self.vm.shutdown()
-        log = self.vm.get_log()
-        log = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', log)
+        log = iotests.filter_qtest(self.vm.get_log())
         log = re.sub(r'^Formatting.*\n', '', log)
         log = re.sub(r'^Formatting.*\n', '', log)
-        log = re.sub(r'\n\[I \+\d+\.\d+\] CLOSED\n?$', '', log)
         log = re.sub(r'^%s: ' % os.path.basename(iotests.qemu_prog), '', log)
         log = re.sub(r'^%s: ' % os.path.basename(iotests.qemu_prog), '', log)
 
 
         self.assertEqual(log,
         self.assertEqual(log,

+ 1 - 3
tests/qemu-iotests/165

@@ -82,9 +82,7 @@ class TestPersistentDirtyBitmap(iotests.QMPTestCase):
         self.vm.shutdown()
         self.vm.shutdown()
 
 
         #catch 'Persistent bitmaps are lost' possible error
         #catch 'Persistent bitmaps are lost' possible error
-        log = self.vm.get_log()
-        log = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', log)
-        log = re.sub(r'\[I \+\d+\.\d+\] CLOSED\n?$', '', log)
+        log = iotests.filter_qtest(self.vm.get_log())
         if log:
         if log:
             print(log)
             print(log)
 
 

+ 4 - 0
tests/qemu-iotests/iotests.py

@@ -701,6 +701,10 @@ def _filter(_key, value):
 def filter_nbd_exports(output: str) -> str:
 def filter_nbd_exports(output: str) -> str:
     return re.sub(r'((min|opt|max) block): [0-9]+', r'\1: XXX', output)
     return re.sub(r'((min|opt|max) block): [0-9]+', r'\1: XXX', output)
 
 
+def filter_qtest(output: str) -> str:
+    output = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', output)
+    output = re.sub(r'\n?\[I \+\d+\.\d+\] CLOSED\n?$', '', output)
+    return output
 
 
 Msg = TypeVar('Msg', Dict[str, Any], List[Any], str)
 Msg = TypeVar('Msg', Dict[str, Any], List[Any], str)
 
 

+ 1 - 2
tests/qemu-iotests/tests/copy-before-write

@@ -95,8 +95,7 @@ class TestCbwError(iotests.QMPTestCase):
 
 
         self.vm.shutdown()
         self.vm.shutdown()
         log = self.vm.get_log()
         log = self.vm.get_log()
-        log = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', log)
-        log = re.sub(r'\[I \+\d+\.\d+\] CLOSED\n?$', '', log)
+        log = iotests.filter_qtest(log)
         log = iotests.filter_qemu_io(log)
         log = iotests.filter_qemu_io(log)
         return log
         return log
 
 

+ 3 - 4
tests/qemu-iotests/tests/migrate-bitmaps-test

@@ -122,11 +122,10 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
 
 
         # catch 'Could not reopen qcow2 layer: Bitmap already exists'
         # catch 'Could not reopen qcow2 layer: Bitmap already exists'
         # possible error
         # possible error
-        log = self.vm_a.get_log()
-        log = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', log)
-        log = re.sub(r'^(wrote .* bytes at offset .*\n.*KiB.*ops.*sec.*\n){3}',
+        log = iotests.filter_qtest(self.vm_a.get_log())
+        log = re.sub(r'^(wrote .* bytes at offset .*\n'
+                     r'.*KiB.*ops.*sec.*\n?){3}',
                      '', log)
                      '', log)
-        log = re.sub(r'\[I \+\d+\.\d+\] CLOSED\n?$', '', log)
         self.assertEqual(log, '')
         self.assertEqual(log, '')
 
 
         # test that bitmap is still persistent
         # test that bitmap is still persistent