[PATCH v2] tests/functional: Remove sleep workarounds from sh4 test

Cédric Le Goater posted 1 patch 21 hours ago
tests/functional/test_sh4_tuxrun.py | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
[PATCH v2] tests/functional: Remove sleep workarounds from sh4 test
Posted by Cédric Le Goater 21 hours ago
These were introduced in the avocado tests to workaround read issues
when interacting with console. They are no longer necessary and we can
use the expected login string instead.

Test always passes now. Remove skipUnless test on QEMU_TEST_FLAKY_TESTS.

Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 tests/functional/test_sh4_tuxrun.py | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/tests/functional/test_sh4_tuxrun.py b/tests/functional/test_sh4_tuxrun.py
index 352cb360ef74..b33533fc7e7b 100755
--- a/tests/functional/test_sh4_tuxrun.py
+++ b/tests/functional/test_sh4_tuxrun.py
@@ -15,7 +15,7 @@
 import time
 
 from unittest import skipUnless
-from qemu_test import Asset, exec_command_and_wait_for_pattern, exec_command
+from qemu_test import Asset, exec_command_and_wait_for_pattern
 from qemu_test.tuxruntest import TuxRunBaselineTest
 
 class TuxRunSh4Test(TuxRunBaselineTest):
@@ -27,8 +27,6 @@ class TuxRunSh4Test(TuxRunBaselineTest):
         'https://storage.tuxboot.com/20230331/sh4/rootfs.ext4.zst',
         '3592a7a3d5a641e8b9821449e77bc43c9904a56c30d45da0694349cfd86743fd')
 
-    # Note: some segfaults caused by unaligned userspace access
-    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable')
     def test_sh4(self):
         self.set_machine('r2d')
         self.cpu='sh7785'
@@ -46,10 +44,8 @@ def test_sh4(self):
                          console_index=1)
         self.vm.launch()
 
-        self.wait_for_console_pattern("Welcome to TuxTest")
-        time.sleep(0.1)
-        exec_command(self, 'root')
-        time.sleep(0.1)
+        self.wait_for_console_pattern("tuxtest login:")
+        exec_command_and_wait_for_pattern(self, 'root', 'root@tuxtest:~#')
         exec_command_and_wait_for_pattern(self, 'halt',
                                           "reboot: System halted")
 
-- 
2.47.0


Re: [PATCH v2] tests/functional: Remove sleep workarounds from sh4 test
Posted by Thomas Huth 21 hours ago
On 22/11/2024 15.18, Cédric Le Goater wrote:
> These were introduced in the avocado tests to workaround read issues
> when interacting with console. They are no longer necessary and we can
> use the expected login string instead.
> 
> Test always passes now. Remove skipUnless test on QEMU_TEST_FLAKY_TESTS.
> 
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>   tests/functional/test_sh4_tuxrun.py | 10 +++-------
>   1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/functional/test_sh4_tuxrun.py b/tests/functional/test_sh4_tuxrun.py
> index 352cb360ef74..b33533fc7e7b 100755
> --- a/tests/functional/test_sh4_tuxrun.py
> +++ b/tests/functional/test_sh4_tuxrun.py
> @@ -15,7 +15,7 @@
>   import time
>   
>   from unittest import skipUnless
> -from qemu_test import Asset, exec_command_and_wait_for_pattern, exec_command
> +from qemu_test import Asset, exec_command_and_wait_for_pattern
>   from qemu_test.tuxruntest import TuxRunBaselineTest
>   
>   class TuxRunSh4Test(TuxRunBaselineTest):
> @@ -27,8 +27,6 @@ class TuxRunSh4Test(TuxRunBaselineTest):
>           'https://storage.tuxboot.com/20230331/sh4/rootfs.ext4.zst',
>           '3592a7a3d5a641e8b9821449e77bc43c9904a56c30d45da0694349cfd86743fd')
>   
> -    # Note: some segfaults caused by unaligned userspace access
> -    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable')
>       def test_sh4(self):
>           self.set_machine('r2d')
>           self.cpu='sh7785'
> @@ -46,10 +44,8 @@ def test_sh4(self):
>                            console_index=1)
>           self.vm.launch()
>   
> -        self.wait_for_console_pattern("Welcome to TuxTest")
> -        time.sleep(0.1)
> -        exec_command(self, 'root')
> -        time.sleep(0.1)
> +        self.wait_for_console_pattern("tuxtest login:")
> +        exec_command_and_wait_for_pattern(self, 'root', 'root@tuxtest:~#')
>           exec_command_and_wait_for_pattern(self, 'halt',
>                                             "reboot: System halted")
>   

Thanks for taking care of it!
Reviewed-by: Thomas Huth <thuth@redhat.com>