qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] tests/functional: Convert MIPS Malta avocado tests
@ 2024-08-21 12:56 Philippe Mathieu-Daudé
  2024-08-21 12:57 ` [PATCH 1/2] tests/functional: Convert mips64el Malta I6400 " Philippe Mathieu-Daudé
  2024-08-21 12:57 ` [PATCH 2/2] tests/functional: Convert mipsel Malta YAMON avocado test Philippe Mathieu-Daudé
  0 siblings, 2 replies; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-21 12:56 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Thomas Huth, Jiaxun Yang,
	Aurelien Jarno, Beraldo Leal, Cleber Rosa,
	Wainer dos Santos Moschetta

Based-on: <20240821082748.65853-1-thuth@redhat.com>

Philippe Mathieu-Daudé (2):
  tests/functional: Convert mips64el Malta I6400 avocado tests
  tests/functional: Convert mipsel Malta YAMON avocado test

 MAINTAINERS                                   |  3 +-
 tests/functional/meson.build                  |  5 +
 .../test_mips64el_malta.py}                   | 98 +++++--------------
 tests/functional/test_mipsel_malta.py         | 46 +++++++++
 4 files changed, 78 insertions(+), 74 deletions(-)
 rename tests/{avocado/machine_mips_malta.py => functional/test_mips64el_malta.py} (53%)
 mode change 100644 => 100755
 create mode 100755 tests/functional/test_mipsel_malta.py

-- 
2.45.2



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] tests/functional: Convert mips64el Malta I6400 avocado tests
  2024-08-21 12:56 [PATCH 0/2] tests/functional: Convert MIPS Malta avocado tests Philippe Mathieu-Daudé
@ 2024-08-21 12:57 ` Philippe Mathieu-Daudé
  2024-08-21 13:14   ` Thomas Huth
  2024-08-21 12:57 ` [PATCH 2/2] tests/functional: Convert mipsel Malta YAMON avocado test Philippe Mathieu-Daudé
  1 sibling, 1 reply; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-21 12:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Thomas Huth, Jiaxun Yang,
	Aurelien Jarno, Beraldo Leal, Cleber Rosa,
	Wainer dos Santos Moschetta

Straight forward conversion. Update the SHA1 hashes to SHA256
hashes since SHA1 should not be used anymore nowadays.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 MAINTAINERS                             |   1 +
 tests/avocado/machine_mips_malta.py     | 108 -----------------------
 tests/functional/meson.build            |   1 +
 tests/functional/test_mips64el_malta.py | 111 ++++++++++++++++++++++++
 4 files changed, 113 insertions(+), 108 deletions(-)
 create mode 100755 tests/functional/test_mips64el_malta.py

diff --git a/MAINTAINERS b/MAINTAINERS
index 77fbb5d42e..3a91017979 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1369,6 +1369,7 @@ F: hw/pci-host/gt64120.c
 F: include/hw/southbridge/piix.h
 F: tests/avocado/linux_ssh_mips_malta.py
 F: tests/avocado/machine_mips_malta.py
+F: tests/functional/test_mips64el_malta.py
 
 Mipssim
 R: Aleksandar Rikalo <arikalo@gmail.com>
diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py
index 07a80633b5..05c64e18c4 100644
--- a/tests/avocado/machine_mips_malta.py
+++ b/tests/avocado/machine_mips_malta.py
@@ -8,121 +8,13 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 import os
-import gzip
-import logging
 
-from avocado import skipUnless
-from avocado import skipUnless
 from avocado.utils import archive
 from avocado_qemu import QemuSystemTest
-from avocado_qemu import exec_command_and_wait_for_pattern
 from avocado_qemu import interrupt_interactive_console_until_pattern
 from avocado_qemu import wait_for_console_pattern
 
 
-NUMPY_AVAILABLE = True
-try:
-    import numpy as np
-except ImportError:
-    NUMPY_AVAILABLE = False
-
-CV2_AVAILABLE = True
-try:
-    import cv2
-except ImportError:
-    CV2_AVAILABLE = False
-
-
-@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
-@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
-class MaltaMachineFramebuffer(QemuSystemTest):
-
-    timeout = 30
-
-    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
-
-    def do_test_i6400_framebuffer_logo(self, cpu_cores_count):
-        """
-        Boot Linux kernel and check Tux logo is displayed on the framebuffer.
-        """
-        screendump_path = os.path.join(self.workdir, 'screendump.pbm')
-
-        kernel_url = ('https://github.com/philmd/qemu-testing-blob/raw/'
-                      'a5966ca4b5/mips/malta/mips64el/'
-                      'vmlinux-4.7.0-rc1.I6400.gz')
-        kernel_hash = '096f50c377ec5072e6a366943324622c312045f6'
-        kernel_path_gz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-        kernel_path = self.workdir + "vmlinux"
-        archive.gzip_uncompress(kernel_path_gz, kernel_path)
-
-        tuxlogo_url = ('https://github.com/torvalds/linux/raw/v2.6.12/'
-                       'drivers/video/logo/logo_linux_vga16.ppm')
-        tuxlogo_hash = '3991c2ddbd1ddaecda7601f8aafbcf5b02dc86af'
-        tuxlogo_path = self.fetch_asset(tuxlogo_url, asset_hash=tuxlogo_hash)
-
-        self.vm.set_console()
-        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
-                               'clocksource=GIC console=tty0 console=ttyS0')
-        self.vm.add_args('-kernel', kernel_path,
-                         '-smp', '%u' % cpu_cores_count,
-                         '-vga', 'std',
-                         '-append', kernel_command_line)
-        self.vm.launch()
-        framebuffer_ready = 'Console: switching to colour frame buffer device'
-        wait_for_console_pattern(self, framebuffer_ready,
-                                 failure_message='Kernel panic - not syncing')
-        self.vm.cmd('human-monitor-command', command_line='stop')
-        self.vm.cmd('human-monitor-command',
-                    command_line='screendump %s' % screendump_path)
-        logger = logging.getLogger('framebuffer')
-
-        match_threshold = 0.95
-        screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR)
-        tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR)
-        result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr,
-                                   cv2.TM_CCOEFF_NORMED)
-        loc = np.where(result >= match_threshold)
-        tuxlogo_count = 0
-        h, w = tuxlogo_bgr.shape[:2]
-        debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH')
-        for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1):
-            logger.debug('found Tux at position (x, y) = %s', pt)
-            cv2.rectangle(screendump_bgr, pt,
-                          (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
-        if debug_png:
-            cv2.imwrite(debug_png, screendump_bgr)
-        self.assertGreaterEqual(tuxlogo_count, cpu_cores_count)
-
-    def test_mips_malta_i6400_framebuffer_logo_1core(self):
-        """
-        :avocado: tags=arch:mips64el
-        :avocado: tags=machine:malta
-        :avocado: tags=cpu:I6400
-        """
-        self.do_test_i6400_framebuffer_logo(1)
-
-    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
-    def test_mips_malta_i6400_framebuffer_logo_7cores(self):
-        """
-        :avocado: tags=arch:mips64el
-        :avocado: tags=machine:malta
-        :avocado: tags=cpu:I6400
-        :avocado: tags=mips:smp
-        :avocado: tags=flaky
-        """
-        self.do_test_i6400_framebuffer_logo(7)
-
-    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
-    def test_mips_malta_i6400_framebuffer_logo_8cores(self):
-        """
-        :avocado: tags=arch:mips64el
-        :avocado: tags=machine:malta
-        :avocado: tags=cpu:I6400
-        :avocado: tags=mips:smp
-        :avocado: tags=flaky
-        """
-        self.do_test_i6400_framebuffer_logo(8)
-
 class MaltaMachine(QemuSystemTest):
 
     def do_test_yamon(self):
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 8d28313a65..1823f88897 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -56,6 +56,7 @@ tests_mips64el_quick = [
 ]
 
 tests_mips64el_thorough = [
+  'mips64el_malta',
   'mips64el_loongson3v',
 ]
 
diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py
new file mode 100755
index 0000000000..05d2c5f85b
--- /dev/null
+++ b/tests/functional/test_mips64el_malta.py
@@ -0,0 +1,111 @@
+#!/usr/bin/env python3
+#
+# Functional tests for the little-endian 64-bit MIPS Malta board
+#
+# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or later.
+# See the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+import logging
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import wait_for_console_pattern
+from qemu_test.utils import gzip_uncompress
+from unittest import skipUnless
+
+NUMPY_AVAILABLE = True
+try:
+    import numpy as np
+except ImportError:
+    NUMPY_AVAILABLE = False
+
+CV2_AVAILABLE = True
+try:
+    import cv2
+except ImportError:
+    CV2_AVAILABLE = False
+
+
+@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
+@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
+class MaltaMachineFramebuffer(QemuSystemTest):
+
+    timeout = 30
+
+    ASSET_KERNEL = Asset(
+        ('https://github.com/philmd/qemu-testing-blob/raw/a5966ca4b5/'
+         'mips/malta/mips64el/vmlinux-4.7.0-rc1.I6400.gz'),
+        '1f64efc59968a3c328672e6b10213fe574bb2308d9d2ed44e75e40be59e9fbc2')
+
+    ASSET_TUXLOGO = Asset(
+        ('https://github.com/torvalds/linux/raw/v2.6.12/'
+         'drivers/video/logo/logo_linux_vga16.ppm'),
+        'b762f0d91ec018887ad1b334543c2fdf9be9fdfc87672b409211efaa3ea0ef79')
+
+    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+
+    def do_test_i6400_framebuffer_logo(self, cpu_cores_count):
+        """
+        Boot Linux kernel and check Tux logo is displayed on the framebuffer.
+        """
+        screendump_path = os.path.join(self.workdir, 'screendump.pbm')
+
+        kernel_path_gz = self.ASSET_KERNEL.fetch()
+        kernel_path = self.workdir + "vmlinux"
+        gzip_uncompress(kernel_path_gz, kernel_path)
+
+        tuxlogo_path = self.ASSET_TUXLOGO.fetch()
+
+        self.set_machine('malta')
+        self.vm.set_console()
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'clocksource=GIC console=tty0 console=ttyS0')
+        self.vm.add_args('-kernel', kernel_path,
+                         '-cpu', 'I6400',
+                         '-smp', '%u' % cpu_cores_count,
+                         '-vga', 'std',
+                         '-append', kernel_command_line)
+        self.vm.launch()
+        framebuffer_ready = 'Console: switching to colour frame buffer device'
+        wait_for_console_pattern(self, framebuffer_ready,
+                                 failure_message='Kernel panic - not syncing')
+        self.vm.cmd('human-monitor-command', command_line='stop')
+        self.vm.cmd('human-monitor-command',
+                    command_line='screendump %s' % screendump_path)
+        logger = logging.getLogger('framebuffer')
+
+        match_threshold = 0.95
+        screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR)
+        tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR)
+        result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr,
+                                   cv2.TM_CCOEFF_NORMED)
+        loc = np.where(result >= match_threshold)
+        tuxlogo_count = 0
+        h, w = tuxlogo_bgr.shape[:2]
+        debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH')
+        for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1):
+            logger.debug('found Tux at position (x, y) = %s', pt)
+            cv2.rectangle(screendump_bgr, pt,
+                          (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
+        if debug_png:
+            cv2.imwrite(debug_png, screendump_bgr)
+        self.assertGreaterEqual(tuxlogo_count, cpu_cores_count)
+
+    def test_mips_malta_i6400_framebuffer_logo_1core(self):
+        self.do_test_i6400_framebuffer_logo(1)
+
+    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
+    def test_mips_malta_i6400_framebuffer_logo_7cores(self):
+        self.do_test_i6400_framebuffer_logo(7)
+
+    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
+    def test_mips_malta_i6400_framebuffer_logo_8cores(self):
+        self.do_test_i6400_framebuffer_logo(8)
+
+
+if __name__ == '__main__':
+    QemuSystemTest.main()
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] tests/functional: Convert mipsel Malta YAMON avocado test
  2024-08-21 12:56 [PATCH 0/2] tests/functional: Convert MIPS Malta avocado tests Philippe Mathieu-Daudé
  2024-08-21 12:57 ` [PATCH 1/2] tests/functional: Convert mips64el Malta I6400 " Philippe Mathieu-Daudé
@ 2024-08-21 12:57 ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-08-21 12:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Thomas Huth, Jiaxun Yang,
	Aurelien Jarno, Beraldo Leal, Cleber Rosa,
	Wainer dos Santos Moschetta

Straight forward conversion using the Python standard zipfile
module instead of avocado.utils package. Update the SHA1 hashes
to SHA256 hashes since SHA1 should not be used anymore nowadays.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 MAINTAINERS                             |  2 +-
 tests/avocado/machine_mips_malta.py     | 54 -------------------------
 tests/functional/meson.build            |  4 ++
 tests/functional/test_mips64el_malta.py |  3 ++
 tests/functional/test_mipsel_malta.py   | 46 +++++++++++++++++++++
 5 files changed, 54 insertions(+), 55 deletions(-)
 delete mode 100644 tests/avocado/machine_mips_malta.py
 create mode 100755 tests/functional/test_mipsel_malta.py

diff --git a/MAINTAINERS b/MAINTAINERS
index 3a91017979..4b480135f6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1368,7 +1368,7 @@ F: hw/mips/malta.c
 F: hw/pci-host/gt64120.c
 F: include/hw/southbridge/piix.h
 F: tests/avocado/linux_ssh_mips_malta.py
-F: tests/avocado/machine_mips_malta.py
+F: tests/functional/test_mipsel_malta.py
 F: tests/functional/test_mips64el_malta.py
 
 Mipssim
diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py
deleted file mode 100644
index 05c64e18c4..0000000000
--- a/tests/avocado/machine_mips_malta.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Functional tests for the MIPS Malta board
-#
-# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
-#
-# This work is licensed under the terms of the GNU GPL, version 2 or later.
-# See the COPYING file in the top-level directory.
-#
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-import os
-
-from avocado.utils import archive
-from avocado_qemu import QemuSystemTest
-from avocado_qemu import interrupt_interactive_console_until_pattern
-from avocado_qemu import wait_for_console_pattern
-
-
-class MaltaMachine(QemuSystemTest):
-
-    def do_test_yamon(self):
-        rom_url = ('https://s3-eu-west-1.amazonaws.com/'
-                   'downloads-mips/mips-downloads/'
-                   'YAMON/yamon-bin-02.22.zip')
-        rom_hash = '8da7ecddbc5312704b8b324341ee238189bde480'
-        zip_path = self.fetch_asset(rom_url, asset_hash=rom_hash)
-
-        archive.extract(zip_path, self.workdir)
-        yamon_path = os.path.join(self.workdir, 'yamon-02.22.bin')
-
-        self.vm.set_console()
-        self.vm.add_args('-bios', yamon_path)
-        self.vm.launch()
-
-        prompt =  'YAMON>'
-        pattern = 'YAMON ROM Monitor'
-        interrupt_interactive_console_until_pattern(self, pattern, prompt)
-        wait_for_console_pattern(self, prompt)
-        self.vm.shutdown()
-
-    def test_mipsel_malta_yamon(self):
-        """
-        :avocado: tags=arch:mipsel
-        :avocado: tags=machine:malta
-        :avocado: tags=endian:little
-        """
-        self.do_test_yamon()
-
-    def test_mips64el_malta_yamon(self):
-        """
-        :avocado: tags=arch:mips64el
-        :avocado: tags=machine:malta
-        :avocado: tags=endian:little
-        """
-        self.do_test_yamon()
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 1823f88897..67f6e7257e 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -51,6 +51,10 @@ tests_microblazeel_thorough = [
   'microblazeel_s3adsp1800'
 ]
 
+tests_mipsel_thorough = [
+  'mipsel_malta',
+]
+
 tests_mips64el_quick = [
   'mips64el_fuloong2e',
 ]
diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py
index 05d2c5f85b..fd5aeb982e 100755
--- a/tests/functional/test_mips64el_malta.py
+++ b/tests/functional/test_mips64el_malta.py
@@ -107,5 +107,8 @@ def test_mips_malta_i6400_framebuffer_logo_8cores(self):
         self.do_test_i6400_framebuffer_logo(8)
 
 
+from test_mipsel_malta import MaltaMachineYAMON
+
+
 if __name__ == '__main__':
     QemuSystemTest.main()
diff --git a/tests/functional/test_mipsel_malta.py b/tests/functional/test_mipsel_malta.py
new file mode 100755
index 0000000000..5d2a7a5493
--- /dev/null
+++ b/tests/functional/test_mipsel_malta.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+#
+# Functional tests for the little-endian 32-bit MIPS Malta board
+#
+# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or later.
+# See the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import interrupt_interactive_console_until_pattern
+from qemu_test import wait_for_console_pattern
+from zipfile import ZipFile
+
+
+class MaltaMachineYAMON(QemuSystemTest):
+
+    ASSET_YAMON_ROM = Asset(
+        ('https://s3-eu-west-1.amazonaws.com/downloads-mips/mips-downloads/'
+         'YAMON/yamon-bin-02.22.zip'),
+        'eef86f0eed0ef554f041dcd47b87eebea0e6f9f1184ed31f7e9e8b4a803860ab')
+
+    def test_mipsel_malta_yamon(self):
+        zip_path = self.ASSET_YAMON_ROM.fetch()
+        with ZipFile(zip_path, 'r') as zf:
+            zf.extractall(path=self.workdir)
+        yamon_path = os.path.join(self.workdir, 'yamon-02.22.bin')
+
+        self.set_machine('malta')
+        self.vm.set_console()
+        self.vm.add_args('-bios', yamon_path)
+        self.vm.launch()
+
+        prompt =  'YAMON>'
+        pattern = 'YAMON ROM Monitor'
+        interrupt_interactive_console_until_pattern(self, pattern, prompt)
+        wait_for_console_pattern(self, prompt)
+        self.vm.shutdown()
+
+
+if __name__ == '__main__':
+    QemuSystemTest.main()
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] tests/functional: Convert mips64el Malta I6400 avocado tests
  2024-08-21 12:57 ` [PATCH 1/2] tests/functional: Convert mips64el Malta I6400 " Philippe Mathieu-Daudé
@ 2024-08-21 13:14   ` Thomas Huth
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2024-08-21 13:14 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Jiaxun Yang, Aurelien Jarno, Beraldo Leal, Cleber Rosa,
	Wainer dos Santos Moschetta

On 21/08/2024 14.57, Philippe Mathieu-Daudé wrote:
> Straight forward conversion. Update the SHA1 hashes to SHA256
> hashes since SHA1 should not be used anymore nowadays.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   MAINTAINERS                             |   1 +
>   tests/avocado/machine_mips_malta.py     | 108 -----------------------
>   tests/functional/meson.build            |   1 +
>   tests/functional/test_mips64el_malta.py | 111 ++++++++++++++++++++++++
>   4 files changed, 113 insertions(+), 108 deletions(-)
>   create mode 100755 tests/functional/test_mips64el_malta.py
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 77fbb5d42e..3a91017979 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1369,6 +1369,7 @@ F: hw/pci-host/gt64120.c
>   F: include/hw/southbridge/piix.h
>   F: tests/avocado/linux_ssh_mips_malta.py
>   F: tests/avocado/machine_mips_malta.py
> +F: tests/functional/test_mips64el_malta.py
>   
>   Mipssim
>   R: Aleksandar Rikalo <arikalo@gmail.com>
> diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py
> index 07a80633b5..05c64e18c4 100644
> --- a/tests/avocado/machine_mips_malta.py
> +++ b/tests/avocado/machine_mips_malta.py
> @@ -8,121 +8,13 @@
>   # SPDX-License-Identifier: GPL-2.0-or-later
>   
>   import os
> -import gzip
> -import logging
>   
> -from avocado import skipUnless
> -from avocado import skipUnless
>   from avocado.utils import archive
>   from avocado_qemu import QemuSystemTest
> -from avocado_qemu import exec_command_and_wait_for_pattern
>   from avocado_qemu import interrupt_interactive_console_until_pattern
>   from avocado_qemu import wait_for_console_pattern
>   
>   
> -NUMPY_AVAILABLE = True
> -try:
> -    import numpy as np
> -except ImportError:
> -    NUMPY_AVAILABLE = False
> -
> -CV2_AVAILABLE = True
> -try:
> -    import cv2
> -except ImportError:
> -    CV2_AVAILABLE = False
> -
> -
> -@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
> -@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
> -class MaltaMachineFramebuffer(QemuSystemTest):
> -
> -    timeout = 30
> -
> -    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
> -
> -    def do_test_i6400_framebuffer_logo(self, cpu_cores_count):
> -        """
> -        Boot Linux kernel and check Tux logo is displayed on the framebuffer.
> -        """
> -        screendump_path = os.path.join(self.workdir, 'screendump.pbm')
> -
> -        kernel_url = ('https://github.com/philmd/qemu-testing-blob/raw/'
> -                      'a5966ca4b5/mips/malta/mips64el/'
> -                      'vmlinux-4.7.0-rc1.I6400.gz')
> -        kernel_hash = '096f50c377ec5072e6a366943324622c312045f6'
> -        kernel_path_gz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> -        kernel_path = self.workdir + "vmlinux"
> -        archive.gzip_uncompress(kernel_path_gz, kernel_path)
> -
> -        tuxlogo_url = ('https://github.com/torvalds/linux/raw/v2.6.12/'
> -                       'drivers/video/logo/logo_linux_vga16.ppm')
> -        tuxlogo_hash = '3991c2ddbd1ddaecda7601f8aafbcf5b02dc86af'
> -        tuxlogo_path = self.fetch_asset(tuxlogo_url, asset_hash=tuxlogo_hash)
> -
> -        self.vm.set_console()
> -        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> -                               'clocksource=GIC console=tty0 console=ttyS0')
> -        self.vm.add_args('-kernel', kernel_path,
> -                         '-smp', '%u' % cpu_cores_count,
> -                         '-vga', 'std',
> -                         '-append', kernel_command_line)
> -        self.vm.launch()
> -        framebuffer_ready = 'Console: switching to colour frame buffer device'
> -        wait_for_console_pattern(self, framebuffer_ready,
> -                                 failure_message='Kernel panic - not syncing')
> -        self.vm.cmd('human-monitor-command', command_line='stop')
> -        self.vm.cmd('human-monitor-command',
> -                    command_line='screendump %s' % screendump_path)
> -        logger = logging.getLogger('framebuffer')
> -
> -        match_threshold = 0.95
> -        screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR)
> -        tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR)
> -        result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr,
> -                                   cv2.TM_CCOEFF_NORMED)
> -        loc = np.where(result >= match_threshold)
> -        tuxlogo_count = 0
> -        h, w = tuxlogo_bgr.shape[:2]
> -        debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH')
> -        for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1):
> -            logger.debug('found Tux at position (x, y) = %s', pt)
> -            cv2.rectangle(screendump_bgr, pt,
> -                          (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
> -        if debug_png:
> -            cv2.imwrite(debug_png, screendump_bgr)
> -        self.assertGreaterEqual(tuxlogo_count, cpu_cores_count)
> -
> -    def test_mips_malta_i6400_framebuffer_logo_1core(self):
> -        """
> -        :avocado: tags=arch:mips64el
> -        :avocado: tags=machine:malta
> -        :avocado: tags=cpu:I6400
> -        """
> -        self.do_test_i6400_framebuffer_logo(1)
> -
> -    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
> -    def test_mips_malta_i6400_framebuffer_logo_7cores(self):
> -        """
> -        :avocado: tags=arch:mips64el
> -        :avocado: tags=machine:malta
> -        :avocado: tags=cpu:I6400
> -        :avocado: tags=mips:smp
> -        :avocado: tags=flaky
> -        """
> -        self.do_test_i6400_framebuffer_logo(7)
> -
> -    @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab')
> -    def test_mips_malta_i6400_framebuffer_logo_8cores(self):
> -        """
> -        :avocado: tags=arch:mips64el
> -        :avocado: tags=machine:malta
> -        :avocado: tags=cpu:I6400
> -        :avocado: tags=mips:smp
> -        :avocado: tags=flaky
> -        """
> -        self.do_test_i6400_framebuffer_logo(8)
> -
>   class MaltaMachine(QemuSystemTest):
>   
>       def do_test_yamon(self):
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 8d28313a65..1823f88897 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -56,6 +56,7 @@ tests_mips64el_quick = [
>   ]
>   
>   tests_mips64el_thorough = [
> +  'mips64el_malta',
>     'mips64el_loongson3v',
>   ]

Maybe keep the list in alphabetical order?

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



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-08-21 13:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-21 12:56 [PATCH 0/2] tests/functional: Convert MIPS Malta avocado tests Philippe Mathieu-Daudé
2024-08-21 12:57 ` [PATCH 1/2] tests/functional: Convert mips64el Malta I6400 " Philippe Mathieu-Daudé
2024-08-21 13:14   ` Thomas Huth
2024-08-21 12:57 ` [PATCH 2/2] tests/functional: Convert mipsel Malta YAMON avocado test Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).