[PATCH 1/2] tests/qemu-iotests: print intent to run a test in TAP mode

Daniel P. Berrangé posted 2 patches 3 years, 9 months ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
[PATCH 1/2] tests/qemu-iotests: print intent to run a test in TAP mode
Posted by Daniel P. Berrangé 3 years, 9 months ago
When running I/O tests using TAP output mode, we get a single TAP test
with a sub-test reported for each I/O test that is run. The output looks
something like this:

 1..123
 ok qcow2 011
 ok qcow2 012
 ok qcow2 013
 ok qcow2 217
 ...

If everything runs or fails normally this is fine, but periodically we
have been seeing the test harness abort early before all 123 tests have
been run, just leaving a fairly useless message like

  TAP parsing error: Too few tests run (expected 123, got 107)

we have no idea which tests were running at the time the test harness
abruptly exited. This change causes us to print a message about our
intent to run each test, so we have a record of what is active at the
time the harness exits abnormally.

 1..123
 # running qcow2 011
 ok qcow2 011
 # running qcow2 012
 ok qcow2 012
 # running qcow2 013
 ok qcow2 013
 # running qcow2 217
 ok qcow2 217
 ...

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/qemu-iotests/testrunner.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/qemu-iotests/testrunner.py b/tests/qemu-iotests/testrunner.py
index aae70a8341..dc871b7caf 100644
--- a/tests/qemu-iotests/testrunner.py
+++ b/tests/qemu-iotests/testrunner.py
@@ -361,6 +361,9 @@ def run_test(self, test: str,
                                      starttime=start,
                                      lasttime=last_el,
                                      end = '\n' if mp else '\r')
+        else:
+            testname = os.path.basename(test)
+            print(f'# running {self.env.imgfmt} {testname}')
 
         res = self.do_run_test(test, mp)
 
-- 
2.35.1


Re: [PATCH 1/2] tests/qemu-iotests: print intent to run a test in TAP mode
Posted by Thomas Huth 3 years, 9 months ago
On 09/05/2022 14.41, Daniel P. Berrangé wrote:
> When running I/O tests using TAP output mode, we get a single TAP test
> with a sub-test reported for each I/O test that is run. The output looks
> something like this:
> 
>   1..123
>   ok qcow2 011
>   ok qcow2 012
>   ok qcow2 013
>   ok qcow2 217
>   ...
> 
> If everything runs or fails normally this is fine, but periodically we
> have been seeing the test harness abort early before all 123 tests have
> been run, just leaving a fairly useless message like
> 
>    TAP parsing error: Too few tests run (expected 123, got 107)
> 
> we have no idea which tests were running at the time the test harness
> abruptly exited. This change causes us to print a message about our
> intent to run each test, so we have a record of what is active at the
> time the harness exits abnormally.
> 
>   1..123
>   # running qcow2 011
>   ok qcow2 011
>   # running qcow2 012
>   ok qcow2 012
>   # running qcow2 013
>   ok qcow2 013
>   # running qcow2 217
>   ok qcow2 217
>   ...
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   tests/qemu-iotests/testrunner.py | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/tests/qemu-iotests/testrunner.py b/tests/qemu-iotests/testrunner.py
> index aae70a8341..dc871b7caf 100644
> --- a/tests/qemu-iotests/testrunner.py
> +++ b/tests/qemu-iotests/testrunner.py
> @@ -361,6 +361,9 @@ def run_test(self, test: str,
>                                        starttime=start,
>                                        lasttime=last_el,
>                                        end = '\n' if mp else '\r')
> +        else:
> +            testname = os.path.basename(test)
> +            print(f'# running {self.env.imgfmt} {testname}')
>   
>           res = self.do_run_test(test, mp)
>   

Reviewed-by: Thomas Huth <thuth@redhat.com>

I wonder whether we should flush stdout, too?