iotests/testrunner.py: move updating last_elapsed to run_tests
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 3 Dec 2021 12:22:22 +0000 (13:22 +0100)
committerHanna Reitz <hreitz@redhat.com>
Wed, 22 Dec 2021 15:29:48 +0000 (16:29 +0100)
We are going to use do_run_test() in multiprocessing environment, where
we'll not be able to change original runner object.

Happily, the only thing we change is that last_elapsed and it's simple
to do it in run_tests() instead. All other accesses to self in
do_runt_test() and in run_test() are read-only.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20211203122223.2780098-3-vsementsov@virtuozzo.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Tested-by: John Snow <jsnow@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
tests/qemu-iotests/testrunner.py

index fa842252d3dee2c302f561a221209804b05f6be4..a9f2feb58cf9365c6c4ad5cd78aa89ef36d95575 100644 (file)
@@ -287,7 +287,6 @@ class TestRunner(ContextManager['TestRunner']):
                               diff=diff, casenotrun=casenotrun)
         else:
             f_bad.unlink()
-            self.last_elapsed.update(test, elapsed)
             return TestResult(status='pass', elapsed=elapsed,
                               casenotrun=casenotrun)
 
@@ -353,6 +352,9 @@ class TestRunner(ContextManager['TestRunner']):
                     print('\n'.join(res.diff))
             elif res.status == 'not run':
                 notrun.append(name)
+            elif res.status == 'pass':
+                assert res.elapsed is not None
+                self.last_elapsed.update(t, res.elapsed)
 
             sys.stdout.flush()
             if res.interrupted: