diff mbox series

[v2,06/30] tests/avocado: split the AST2x00Machine classes

Message ID 20220914155950.804707-7-alex.bennee@linaro.org
State Superseded
Headers show
Series testing/next pre-PR (testing update and mips deprecation) | expand

Commit Message

Alex Bennée Sept. 14, 2022, 3:59 p.m. UTC
The SDK tests take a lot longer to run and hence need a longer
timeout. As they run well over the 60 second maximum for CI lets also
disable them for CI as well.

I suspect they also suffer from the inability to detect the login
prompt due to no newlines being processed.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20220826172128.353798-2-alex.bennee@linaro.org>
---
 tests/avocado/machine_aspeed.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Richard Henderson Sept. 15, 2022, 8:24 a.m. UTC | #1
On 9/14/22 16:59, Alex Bennée wrote:
> The SDK tests take a lot longer to run and hence need a longer
> timeout. As they run well over the 60 second maximum for CI lets also
> disable them for CI as well.
> 
> I suspect they also suffer from the inability to detect the login
> prompt due to no newlines being processed.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20220826172128.353798-2-alex.bennee@linaro.org>
> ---
>   tests/avocado/machine_aspeed.py | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
> 
> diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py
> index 65d38f4efa..0f64eb636c 100644
> --- a/tests/avocado/machine_aspeed.py
> +++ b/tests/avocado/machine_aspeed.py
> @@ -6,12 +6,14 @@
>   # later.  See the COPYING file in the top-level directory.
>   
>   import time
> +import os
>   
>   from avocado_qemu import QemuSystemTest
>   from avocado_qemu import wait_for_console_pattern
>   from avocado_qemu import exec_command
>   from avocado_qemu import exec_command_and_wait_for_pattern
>   from avocado.utils import archive
> +from avocado import skipIf
>   
>   
>   class AST1030Machine(QemuSystemTest):
> @@ -176,6 +178,20 @@ def test_arm_ast2600_evb_builroot(self):
>           self.do_test_arm_aspeed_buidroot_poweroff()
>   
>   
> +class AST2x00MachineSDK(QemuSystemTest):
> +
> +    # FIXME: Although these tests boot a whole distro they are still
> +    # slower than comparable machine models. There may be some
> +    # optimisations which bring down the runtime. In the meantime they
> +    # have generous timeouts and are disable for CI which aims for all
> +    # tests to run in less than 60 seconds.
> +    timeout = 240
> +
> +    def wait_for_console_pattern(self, success_message, vm=None):
> +        wait_for_console_pattern(self, success_message,
> +                                 failure_message='Kernel panic - not syncing',
> +                                 vm=vm)

Accidental patch squash?

But for the timeout+skipif part,
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

> +
>       def do_test_arm_aspeed_sdk_start(self, image, cpu_id):
>           self.vm.set_console()
>           self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
> @@ -187,6 +203,7 @@ def do_test_arm_aspeed_sdk_start(self, image, cpu_id):
>           self.wait_for_console_pattern('Starting kernel ...')
>           self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
>   
> +    @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
>       def test_arm_ast2500_evb_sdk(self):
>           """
>           :avocado: tags=arch:arm
> @@ -204,6 +221,7 @@ def test_arm_ast2500_evb_sdk(self):
>               self.workdir + '/ast2500-default/image-bmc', '0x0')
>           self.wait_for_console_pattern('ast2500-default login:')
>   
> +    @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
>       def test_arm_ast2600_evb_sdk(self):
>           """
>           :avocado: tags=arch:arm
Alex Bennée Sept. 20, 2022, 3:07 p.m. UTC | #2
Richard Henderson <richard.henderson@linaro.org> writes:

> On 9/14/22 16:59, Alex Bennée wrote:
>> The SDK tests take a lot longer to run and hence need a longer
>> timeout. As they run well over the 60 second maximum for CI lets also
>> disable them for CI as well.
>> I suspect they also suffer from the inability to detect the login
>> prompt due to no newlines being processed.
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>> Message-Id: <20220826172128.353798-2-alex.bennee@linaro.org>
>> ---
>>   tests/avocado/machine_aspeed.py | 18 ++++++++++++++++++
>>   1 file changed, 18 insertions(+)
>> diff --git a/tests/avocado/machine_aspeed.py
>> b/tests/avocado/machine_aspeed.py
>> index 65d38f4efa..0f64eb636c 100644
>> --- a/tests/avocado/machine_aspeed.py
>> +++ b/tests/avocado/machine_aspeed.py
>> @@ -6,12 +6,14 @@
>>   # later.  See the COPYING file in the top-level directory.
>>     import time
>> +import os
>>     from avocado_qemu import QemuSystemTest
>>   from avocado_qemu import wait_for_console_pattern
>>   from avocado_qemu import exec_command
>>   from avocado_qemu import exec_command_and_wait_for_pattern
>>   from avocado.utils import archive
>> +from avocado import skipIf
>>       class AST1030Machine(QemuSystemTest):
>> @@ -176,6 +178,20 @@ def test_arm_ast2600_evb_builroot(self):
>>           self.do_test_arm_aspeed_buidroot_poweroff()
>>     +class AST2x00MachineSDK(QemuSystemTest):
>> +
>> +    # FIXME: Although these tests boot a whole distro they are still
>> +    # slower than comparable machine models. There may be some
>> +    # optimisations which bring down the runtime. In the meantime they
>> +    # have generous timeouts and are disable for CI which aims for all
>> +    # tests to run in less than 60 seconds.
>> +    timeout = 240
>> +
>> +    def wait_for_console_pattern(self, success_message, vm=None):
>> +        wait_for_console_pattern(self, success_message,
>> +                                 failure_message='Kernel panic - not syncing',
>> +                                 vm=vm)
>
> Accidental patch squash?

No - I needed to have a concrete wait_for_console_pattern - although
looking at it I wonder if there is an implicit super() in there and if I
should make it explicit?

>
> But for the timeout+skipif part,
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>
>
> r~
>
>> +
>>       def do_test_arm_aspeed_sdk_start(self, image, cpu_id):
>>           self.vm.set_console()
>>           self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
>> @@ -187,6 +203,7 @@ def do_test_arm_aspeed_sdk_start(self, image, cpu_id):
>>           self.wait_for_console_pattern('Starting kernel ...')
>>           self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
>>   +    @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
>>       def test_arm_ast2500_evb_sdk(self):
>>           """
>>           :avocado: tags=arch:arm
>> @@ -204,6 +221,7 @@ def test_arm_ast2500_evb_sdk(self):
>>               self.workdir + '/ast2500-default/image-bmc', '0x0')
>>           self.wait_for_console_pattern('ast2500-default login:')
>>   +    @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
>>       def test_arm_ast2600_evb_sdk(self):
>>           """
>>           :avocado: tags=arch:arm
diff mbox series

Patch

diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py
index 65d38f4efa..0f64eb636c 100644
--- a/tests/avocado/machine_aspeed.py
+++ b/tests/avocado/machine_aspeed.py
@@ -6,12 +6,14 @@ 
 # later.  See the COPYING file in the top-level directory.
 
 import time
+import os
 
 from avocado_qemu import QemuSystemTest
 from avocado_qemu import wait_for_console_pattern
 from avocado_qemu import exec_command
 from avocado_qemu import exec_command_and_wait_for_pattern
 from avocado.utils import archive
+from avocado import skipIf
 
 
 class AST1030Machine(QemuSystemTest):
@@ -176,6 +178,20 @@  def test_arm_ast2600_evb_builroot(self):
         self.do_test_arm_aspeed_buidroot_poweroff()
 
 
+class AST2x00MachineSDK(QemuSystemTest):
+
+    # FIXME: Although these tests boot a whole distro they are still
+    # slower than comparable machine models. There may be some
+    # optimisations which bring down the runtime. In the meantime they
+    # have generous timeouts and are disable for CI which aims for all
+    # tests to run in less than 60 seconds.
+    timeout = 240
+
+    def wait_for_console_pattern(self, success_message, vm=None):
+        wait_for_console_pattern(self, success_message,
+                                 failure_message='Kernel panic - not syncing',
+                                 vm=vm)
+
     def do_test_arm_aspeed_sdk_start(self, image, cpu_id):
         self.vm.set_console()
         self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
@@ -187,6 +203,7 @@  def do_test_arm_aspeed_sdk_start(self, image, cpu_id):
         self.wait_for_console_pattern('Starting kernel ...')
         self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
 
+    @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
     def test_arm_ast2500_evb_sdk(self):
         """
         :avocado: tags=arch:arm
@@ -204,6 +221,7 @@  def test_arm_ast2500_evb_sdk(self):
             self.workdir + '/ast2500-default/image-bmc', '0x0')
         self.wait_for_console_pattern('ast2500-default login:')
 
+    @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
     def test_arm_ast2600_evb_sdk(self):
         """
         :avocado: tags=arch:arm