[PATCH 6/7] tests/functional: Convert the mac ppc Avocado tests

Thomas Huth posted 7 patches 1 month ago
[PATCH 6/7] tests/functional: Convert the mac ppc Avocado tests
Posted by Thomas Huth 1 month ago
The g3beige and mac99 tests use the same asset, so put them together
in a new test_ppc_mac.py file.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 MAINTAINERS                         |  2 ++
 tests/avocado/boot_linux_console.py | 30 -----------------------
 tests/functional/meson.build        |  1 +
 tests/functional/test_ppc_mac.py    | 38 +++++++++++++++++++++++++++++
 4 files changed, 41 insertions(+), 30 deletions(-)
 create mode 100755 tests/functional/test_ppc_mac.py

diff --git a/MAINTAINERS b/MAINTAINERS
index 3dd80a0138..63eb306d6e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1474,6 +1474,7 @@ F: include/hw/ppc/mac_dbdma.h
 F: include/hw/pci-host/uninorth.h
 F: include/hw/input/adb*
 F: pc-bios/qemu_vga.ndrv
+F: tests/functional/test_ppc_mac.py
 
 Old World (g3beige)
 M: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
@@ -1489,6 +1490,7 @@ F: include/hw/intc/heathrow_pic.h
 F: include/hw/input/adb*
 F: include/hw/pci-host/grackle.h
 F: pc-bios/qemu_vga.ndrv
+F: tests/functional/test_ppc_mac.py
 
 PReP
 M: Hervé Poussineau <hpoussin@reactos.org>
diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
index 344c7835a2..f5dc9e9cfa 100644
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -965,36 +965,6 @@ def test_ppc_powernv10(self):
         """
         self.do_test_ppc64_powernv('P10')
 
-    def test_ppc_g3beige(self):
-        """
-        :avocado: tags=arch:ppc
-        :avocado: tags=machine:g3beige
-        :avocado: tags=accel:tcg
-        """
-        # TODO: g3beige works with kvm_pr but we don't have a
-        # reliable way ATM (e.g. looking at /proc/modules) to detect
-        # whether we're running kvm_hv or kvm_pr. For now let's
-        # disable this test if we don't have TCG support.
-        self.require_accelerator("tcg")
-        tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
-        self.vm.add_args('-M', 'graphics=off')
-        self.do_test_advcal_2018('15', tar_hash, 'invaders.elf')
-
-    def test_ppc_mac99(self):
-        """
-        :avocado: tags=arch:ppc
-        :avocado: tags=machine:mac99
-        :avocado: tags=accel:tcg
-        """
-        # TODO: mac99 works with kvm_pr but we don't have a
-        # reliable way ATM (e.g. looking at /proc/modules) to detect
-        # whether we're running kvm_hv or kvm_pr. For now let's
-        # disable this test if we don't have TCG support.
-        self.require_accelerator("tcg")
-        tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
-        self.vm.add_args('-M', 'graphics=off')
-        self.do_test_advcal_2018('15', tar_hash, 'invaders.elf')
-
     # This test has a 6-10% failure rate on various hosts that look
     # like issues with a buggy kernel. As a result we don't want it
     # gating releases on Gitlab.
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index bc33332313..449c6a95ea 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -106,6 +106,7 @@ tests_ppc_system_thorough = [
   'ppc_40p',
   'ppc_amiga',
   'ppc_bamboo',
+  'ppc_mac',
   'ppc_mpc8544ds',
   'ppc_virtex_ml507',
 ]
diff --git a/tests/functional/test_ppc_mac.py b/tests/functional/test_ppc_mac.py
new file mode 100755
index 0000000000..a6b1ca2d4c
--- /dev/null
+++ b/tests/functional/test_ppc_mac.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+#
+# Boot Linux kernel on a mac99 and g3beige ppc machine and check the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import LinuxKernelTest, Asset
+from qemu_test.utils import archive_extract
+
+class MacTest(LinuxKernelTest):
+
+    ASSET_DAY15 = Asset(
+        'https://www.qemu-advent-calendar.org/2018/download/day15.tar.xz',
+        '03e0757c131d2959decf293a3572d3b96c5a53587165bf05ce41b2818a2bccd5')
+
+    def do_day15_test(self):
+        # mac99 also works with kvm_pr but we don't have a reliable way at
+        # the moment (e.g. by looking at /proc/modules) to detect whether
+        # we're running kvm_hv or kvm_pr. For now let's disable this test
+        # if we don't have TCG support.
+        self.require_accelerator("tcg")
+
+        file_path = self.ASSET_DAY15.fetch()
+        archive_extract(file_path, self.workdir)
+        self.vm.add_args('-M', 'graphics=off')
+        self.launch_kernel(self.workdir + '/day15/invaders.elf',
+                           wait_for='QEMU advent calendar')
+
+    def test_ppc_g3beige(self):
+        self.set_machine('g3beige')
+        self.do_day15_test()
+
+    def test_ppc_mac99(self):
+        self.set_machine('mac99')
+        self.do_day15_test()
+
+if __name__ == '__main__':
+    LinuxKernelTest.main()
-- 
2.46.0


Re: [PATCH 6/7] tests/functional: Convert the mac ppc Avocado tests
Posted by Mark Cave-Ayland 1 month ago
On 19/09/2024 19:57, Thomas Huth wrote:

> The g3beige and mac99 tests use the same asset, so put them together
> in a new test_ppc_mac.py file.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   MAINTAINERS                         |  2 ++
>   tests/avocado/boot_linux_console.py | 30 -----------------------
>   tests/functional/meson.build        |  1 +
>   tests/functional/test_ppc_mac.py    | 38 +++++++++++++++++++++++++++++
>   4 files changed, 41 insertions(+), 30 deletions(-)
>   create mode 100755 tests/functional/test_ppc_mac.py
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 3dd80a0138..63eb306d6e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1474,6 +1474,7 @@ F: include/hw/ppc/mac_dbdma.h
>   F: include/hw/pci-host/uninorth.h
>   F: include/hw/input/adb*
>   F: pc-bios/qemu_vga.ndrv
> +F: tests/functional/test_ppc_mac.py
>   
>   Old World (g3beige)
>   M: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> @@ -1489,6 +1490,7 @@ F: include/hw/intc/heathrow_pic.h
>   F: include/hw/input/adb*
>   F: include/hw/pci-host/grackle.h
>   F: pc-bios/qemu_vga.ndrv
> +F: tests/functional/test_ppc_mac.py
>   
>   PReP
>   M: Hervé Poussineau <hpoussin@reactos.org>
> diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
> index 344c7835a2..f5dc9e9cfa 100644
> --- a/tests/avocado/boot_linux_console.py
> +++ b/tests/avocado/boot_linux_console.py
> @@ -965,36 +965,6 @@ def test_ppc_powernv10(self):
>           """
>           self.do_test_ppc64_powernv('P10')
>   
> -    def test_ppc_g3beige(self):
> -        """
> -        :avocado: tags=arch:ppc
> -        :avocado: tags=machine:g3beige
> -        :avocado: tags=accel:tcg
> -        """
> -        # TODO: g3beige works with kvm_pr but we don't have a
> -        # reliable way ATM (e.g. looking at /proc/modules) to detect
> -        # whether we're running kvm_hv or kvm_pr. For now let's
> -        # disable this test if we don't have TCG support.
> -        self.require_accelerator("tcg")
> -        tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
> -        self.vm.add_args('-M', 'graphics=off')
> -        self.do_test_advcal_2018('15', tar_hash, 'invaders.elf')
> -
> -    def test_ppc_mac99(self):
> -        """
> -        :avocado: tags=arch:ppc
> -        :avocado: tags=machine:mac99
> -        :avocado: tags=accel:tcg
> -        """
> -        # TODO: mac99 works with kvm_pr but we don't have a
> -        # reliable way ATM (e.g. looking at /proc/modules) to detect
> -        # whether we're running kvm_hv or kvm_pr. For now let's
> -        # disable this test if we don't have TCG support.
> -        self.require_accelerator("tcg")
> -        tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
> -        self.vm.add_args('-M', 'graphics=off')
> -        self.do_test_advcal_2018('15', tar_hash, 'invaders.elf')
> -
>       # This test has a 6-10% failure rate on various hosts that look
>       # like issues with a buggy kernel. As a result we don't want it
>       # gating releases on Gitlab.
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index bc33332313..449c6a95ea 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -106,6 +106,7 @@ tests_ppc_system_thorough = [
>     'ppc_40p',
>     'ppc_amiga',
>     'ppc_bamboo',
> +  'ppc_mac',
>     'ppc_mpc8544ds',
>     'ppc_virtex_ml507',
>   ]
> diff --git a/tests/functional/test_ppc_mac.py b/tests/functional/test_ppc_mac.py
> new file mode 100755
> index 0000000000..a6b1ca2d4c
> --- /dev/null
> +++ b/tests/functional/test_ppc_mac.py
> @@ -0,0 +1,38 @@
> +#!/usr/bin/env python3
> +#
> +# Boot Linux kernel on a mac99 and g3beige ppc machine and check the console
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +from qemu_test import LinuxKernelTest, Asset
> +from qemu_test.utils import archive_extract
> +
> +class MacTest(LinuxKernelTest):
> +
> +    ASSET_DAY15 = Asset(
> +        'https://www.qemu-advent-calendar.org/2018/download/day15.tar.xz',
> +        '03e0757c131d2959decf293a3572d3b96c5a53587165bf05ce41b2818a2bccd5')
> +
> +    def do_day15_test(self):
> +        # mac99 also works with kvm_pr but we don't have a reliable way at
> +        # the moment (e.g. by looking at /proc/modules) to detect whether
> +        # we're running kvm_hv or kvm_pr. For now let's disable this test
> +        # if we don't have TCG support.
> +        self.require_accelerator("tcg")
> +
> +        file_path = self.ASSET_DAY15.fetch()
> +        archive_extract(file_path, self.workdir)
> +        self.vm.add_args('-M', 'graphics=off')
> +        self.launch_kernel(self.workdir + '/day15/invaders.elf',
> +                           wait_for='QEMU advent calendar')
> +
> +    def test_ppc_g3beige(self):
> +        self.set_machine('g3beige')
> +        self.do_day15_test()
> +
> +    def test_ppc_mac99(self):
> +        self.set_machine('mac99')
> +        self.do_day15_test()
> +
> +if __name__ == '__main__':
> +    LinuxKernelTest.main()

Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.