* [PULL 00/18] Functional and other test improvements
@ 2025-02-26 9:57 Thomas Huth
2025-02-26 9:57 ` [PULL 01/18] tests/functional: Have microblaze tests inherit common parent class Thomas Huth
` (18 more replies)
0 siblings, 19 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Hi!
The following changes since commit b69801dd6b1eb4d107f7c2f643adf0a4e3ec9124:
Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2025-02-22 05:06:39 +0800)
are available in the Git repository at:
https://gitlab.com/thuth/qemu.git tags/pull-request-2025-02-26
for you to fetch changes up to 72cdd672e18c486db7c54a7b33c8b4fe7a0026e6:
tests/functional: Replace the ppc64 e500 advent calendar test (2025-02-26 08:05:09 +0100)
----------------------------------------------------------------
* Convert more avocado tests to the functional framework
* Fix a problem with the check-patch/check-dco CI jobs
* Replace the ppc64 e500 functional test with a better one
* Test retrieval of machine class properties
----------------------------------------------------------------
Cédric Le Goater (1):
tests/functional: Replace the ppc64 e500 advent calendar test
Daniel P. Berrangé (1):
gitlab: use --refetch in check-patch/check-dco jobs
Peter Maydell (1):
tests/functional: Bump some arm test timeouts
Philippe Mathieu-Daudé (1):
tests/functional: Have microblaze tests inherit common parent class
Thomas Huth (14):
tests/qtest/qom-test: Test retrieval of machine class properties
tests/functional: Provide a proper name for the VMs in the replay tests
tests/functional: Convert the xtensa replay test to the functional framework
tests/functional: Convert the sparc replay avocado test
tests/functional: Convert the 32-bit ppc replay avocado tests
tests/functional: Convert the or1k replay avocado tests
tests/functional: Convert the ppc64 replay avocado tests
tests/functional: Convert the microblaze replay avocado tests
tests/functional: Convert the m68k replay avocado tests
tests/functional: Convert the arm replay avocado tests
tests/functional: Convert the alpha replay avocado tests
tests/functional: Convert the s390x replay avocado tests
tests/functional: Convert the aarch64 replay avocado tests
tests/functional: Convert the x86_64 replay avocado tests
tests/qtest/qom-test.c | 11 +
.gitlab-ci.d/check-dco.py | 2 +-
.gitlab-ci.d/check-patch.py | 2 +-
tests/avocado/replay_kernel.py | 302 -----------------------
tests/functional/meson.build | 22 +-
tests/functional/replay_kernel.py | 2 +-
tests/functional/test_aarch64_replay.py | 30 +++
tests/functional/test_alpha_replay.py | 29 +++
tests/functional/test_arm_replay.py | 69 ++++++
tests/functional/test_arm_sx1.py | 6 +-
tests/functional/test_m68k_replay.py | 42 ++++
tests/functional/test_microblaze_replay.py | 28 +++
tests/functional/test_microblaze_s3adsp1800.py | 27 ++
tests/functional/test_microblazeel_s3adsp1800.py | 31 +--
tests/functional/test_or1k_replay.py | 27 ++
tests/functional/test_ppc64_e500.py | 33 ++-
tests/functional/test_ppc64_replay.py | 49 ++++
tests/functional/test_ppc_replay.py | 34 +++
tests/functional/test_s390x_replay.py | 28 +++
tests/functional/test_sparc_replay.py | 27 ++
tests/functional/test_x86_64_replay.py | 35 +++
tests/functional/test_xtensa_replay.py | 28 +++
22 files changed, 519 insertions(+), 345 deletions(-)
create mode 100755 tests/functional/test_aarch64_replay.py
create mode 100755 tests/functional/test_alpha_replay.py
create mode 100755 tests/functional/test_arm_replay.py
create mode 100755 tests/functional/test_m68k_replay.py
create mode 100755 tests/functional/test_microblaze_replay.py
create mode 100755 tests/functional/test_or1k_replay.py
create mode 100755 tests/functional/test_ppc64_replay.py
create mode 100755 tests/functional/test_ppc_replay.py
create mode 100755 tests/functional/test_s390x_replay.py
create mode 100755 tests/functional/test_sparc_replay.py
create mode 100755 tests/functional/test_x86_64_replay.py
create mode 100755 tests/functional/test_xtensa_replay.py
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 01/18] tests/functional: Have microblaze tests inherit common parent class
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 02/18] tests/qtest/qom-test: Test retrieval of machine class properties Thomas Huth
` (17 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@linaro.org>
Have the MicroblazeMachine class being common to both
MicroblazeBigEndianMachine and MicroblazeLittleEndianMachine
classes. Move the xmaton and ballerina tests to the parent class.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250212123659.52764-11-philmd@linaro.org>
[thuth: Add missing ASSET statements to the leaf classes]
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
.../functional/test_microblaze_s3adsp1800.py | 27 ++++++++++++++++
.../test_microblazeel_s3adsp1800.py | 31 +++----------------
2 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/tests/functional/test_microblaze_s3adsp1800.py b/tests/functional/test_microblaze_s3adsp1800.py
index c4226f49cf3..c93fa14232b 100755
--- a/tests/functional/test_microblaze_s3adsp1800.py
+++ b/tests/functional/test_microblaze_s3adsp1800.py
@@ -7,6 +7,7 @@
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
+from qemu_test import exec_command_and_wait_for_pattern
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
@@ -20,6 +21,10 @@ class MicroblazeMachine(QemuSystemTest):
'day17.tar.xz'),
'3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057')
+ ASSET_IMAGE_LE = Asset(
+ ('http://www.qemu-advent-calendar.org/2023/download/day13.tar.gz'),
+ 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22')
+
def do_ballerina_be_test(self, machine):
self.set_machine(machine)
self.archive_extract(self.ASSET_IMAGE_BE)
@@ -34,8 +39,30 @@ def do_ballerina_be_test(self, machine):
# message, that's why we don't test for a later string here. This
# needs some investigation by a microblaze wizard one day...
+ def do_xmaton_le_test(self, machine):
+ self.require_netdev('user')
+ self.set_machine(machine)
+ self.archive_extract(self.ASSET_IMAGE_LE)
+ self.vm.set_console()
+ self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin'))
+ tftproot = self.scratch_file('day13')
+ self.vm.add_args('-nic', f'user,tftp={tftproot}')
+ self.vm.launch()
+ wait_for_console_pattern(self, 'QEMU Advent Calendar 2023')
+ wait_for_console_pattern(self, 'buildroot login:')
+ exec_command_and_wait_for_pattern(self, 'root', '#')
+ exec_command_and_wait_for_pattern(self,
+ 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png',
+ '821cd3cab8efd16ad6ee5acc3642a8ea')
+
+
+class MicroblazeBigEndianMachine(MicroblazeMachine):
+
+ ASSET_IMAGE_BE = MicroblazeMachine.ASSET_IMAGE_BE
+
def test_microblaze_s3adsp1800_legacy_be(self):
self.do_ballerina_be_test('petalogix-s3adsp1800')
+
if __name__ == '__main__':
QemuSystemTest.main()
diff --git a/tests/functional/test_microblazeel_s3adsp1800.py b/tests/functional/test_microblazeel_s3adsp1800.py
index 60aab4a45e8..ab59941d57a 100755
--- a/tests/functional/test_microblazeel_s3adsp1800.py
+++ b/tests/functional/test_microblazeel_s3adsp1800.py
@@ -7,37 +7,16 @@
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
-from qemu_test import exec_command_and_wait_for_pattern
-from qemu_test import QemuSystemTest, Asset
-from qemu_test import wait_for_console_pattern
+from test_microblaze_s3adsp1800 import MicroblazeMachine
-class MicroblazeelMachine(QemuSystemTest):
+class MicroblazeLittleEndianMachine(MicroblazeMachine):
- timeout = 90
-
- ASSET_IMAGE_LE = Asset(
- ('http://www.qemu-advent-calendar.org/2023/download/day13.tar.gz'),
- 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22')
-
- def do_xmaton_le_test(self, machine):
- self.require_netdev('user')
- self.set_machine(machine)
- self.archive_extract(self.ASSET_IMAGE_LE)
- self.vm.set_console()
- self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin'))
- tftproot = self.scratch_file('day13')
- self.vm.add_args('-nic', f'user,tftp={tftproot}')
- self.vm.launch()
- wait_for_console_pattern(self, 'QEMU Advent Calendar 2023')
- wait_for_console_pattern(self, 'buildroot login:')
- exec_command_and_wait_for_pattern(self, 'root', '#')
- exec_command_and_wait_for_pattern(self,
- 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png',
- '821cd3cab8efd16ad6ee5acc3642a8ea')
+ ASSET_IMAGE_LE = MicroblazeMachine.ASSET_IMAGE_LE
def test_microblaze_s3adsp1800_legacy_le(self):
self.do_xmaton_le_test('petalogix-s3adsp1800')
+
if __name__ == '__main__':
- QemuSystemTest.main()
+ MicroblazeMachine.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 02/18] tests/qtest/qom-test: Test retrieval of machine class properties
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
2025-02-26 9:57 ` [PULL 01/18] tests/functional: Have microblaze tests inherit common parent class Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 03/18] tests/functional: Provide a proper name for the VMs in the replay tests Thomas Huth
` (16 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Fabiano Rosas
There were recently some crashes that occurred when trying to
retrieve the properties of machines. Let's add a test to avoid
regression here.
Message-ID: <20250123204956.1561463-1-thuth@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/qom-test.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/tests/qtest/qom-test.c b/tests/qtest/qom-test.c
index 1e30a5bfe8d..27d70bc11ce 100644
--- a/tests/qtest/qom-test.c
+++ b/tests/qtest/qom-test.c
@@ -88,6 +88,17 @@ static void test_machine(gconstpointer data)
qts = qtest_initf("-machine %s", machine);
+ if (g_test_slow()) {
+ /* Make sure we can get the machine class properties: */
+ g_autofree char *qom_machine = g_strdup_printf("%s-machine", machine);
+
+ response = qtest_qmp(qts, "{ 'execute': 'qom-list-properties',"
+ " 'arguments': { 'typename': %s } }",
+ qom_machine);
+ g_assert(response);
+ qobject_unref(response);
+ }
+
test_properties(qts, "/machine", true);
response = qtest_qmp(qts, "{ 'execute': 'quit' }");
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 03/18] tests/functional: Provide a proper name for the VMs in the replay tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
2025-02-26 9:57 ` [PULL 01/18] tests/functional: Have microblaze tests inherit common parent class Thomas Huth
2025-02-26 9:57 ` [PULL 02/18] tests/qtest/qom-test: Test retrieval of machine class properties Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 04/18] tests/functional: Convert the xtensa replay test to the functional framework Thomas Huth
` (15 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
With a proper name the log files get a more meaningful name.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-2-thuth@redhat.com>
---
tests/functional/replay_kernel.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/functional/replay_kernel.py b/tests/functional/replay_kernel.py
index 8e8ac7d052f..80795eb0520 100644
--- a/tests/functional/replay_kernel.py
+++ b/tests/functional/replay_kernel.py
@@ -34,7 +34,7 @@ def run_vm(self, kernel_path, kernel_command_line, console_pattern,
logger = logging.getLogger('replay')
start_time = time.time()
- vm = self.get_vm()
+ vm = self.get_vm(name='recording' if record else 'replay')
vm.set_console()
if record:
logger.info('recording the execution...')
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 04/18] tests/functional: Convert the xtensa replay test to the functional framework
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (2 preceding siblings ...)
2025-02-26 9:57 ` [PULL 03/18] tests/functional: Provide a proper name for the VMs in the replay tests Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 05/18] tests/functional: Convert the sparc replay avocado test Thomas Huth
` (14 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-3-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 11 ----------
tests/functional/meson.build | 1 +
tests/functional/test_xtensa_replay.py | 28 ++++++++++++++++++++++++++
3 files changed, 29 insertions(+), 11 deletions(-)
create mode 100755 tests/functional/test_xtensa_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index b9b54a8793d..54b8417d3d5 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -399,14 +399,3 @@ def test_sparc_ss20(self):
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'zImage.elf')
- def test_xtensa_lx60(self):
- """
- :avocado: tags=arch:xtensa
- :avocado: tags=machine:lx60
- :avocado: tags=cpu:dc233c
- """
- tar_hash = '49e88d9933742f0164b60839886c9739cb7a0d34'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day02.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'santas-sleigh-ride.elf')
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 111d8bab262..4d3d62f3fe7 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -296,6 +296,7 @@ tests_x86_64_system_thorough = [
tests_xtensa_system_thorough = [
'xtensa_lx60',
+ 'xtensa_replay',
]
precache_all = []
diff --git a/tests/functional/test_xtensa_replay.py b/tests/functional/test_xtensa_replay.py
new file mode 100755
index 00000000000..eb00a3b0044
--- /dev/null
+++ b/tests/functional/test_xtensa_replay.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an xtensa lx650 machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class XTensaReplay(ReplayKernelBase):
+
+ ASSET_DAY02 = Asset(
+ 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day02.tar.xz',
+ '68ff07f9b3fd3df36d015eb46299ba44748e94bfbb2d5295fddc1a8d4a9fd324')
+
+ def test_replay(self):
+ self.set_machine('lx60')
+ self.cpu = 'dc233c'
+ kernel_path = self.archive_extract(self.ASSET_DAY02,
+ member='day02/santas-sleigh-ride.elf')
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar')
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 05/18] tests/functional: Convert the sparc replay avocado test
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (3 preceding siblings ...)
2025-02-26 9:57 ` [PULL 04/18] tests/functional: Convert the xtensa replay test to the functional framework Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 06/18] tests/functional: Convert the 32-bit ppc replay avocado tests Thomas Huth
` (13 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
While we're at it, change the machine from SS-20 to SS-10 to
increase the test coverage a little bit (SS-20 is already
tested in the test_sparc_sun4m.py file).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-4-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 12 ------------
tests/functional/meson.build | 1 +
tests/functional/test_sparc_replay.py | 27 +++++++++++++++++++++++++++
3 files changed, 28 insertions(+), 12 deletions(-)
create mode 100755 tests/functional/test_sparc_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 54b8417d3d5..412bf9e06e1 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -387,15 +387,3 @@ def test_ppc_mac99(self):
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'invaders.elf',
args=('-M', 'graphics=off'))
-
- def test_sparc_ss20(self):
- """
- :avocado: tags=arch:sparc
- :avocado: tags=machine:SS-20
- """
- tar_hash = 'b18550d5d61c7615d989a06edace051017726a9f'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day11.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'zImage.elf')
-
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 4d3d62f3fe7..46a97999ae3 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -258,6 +258,7 @@ tests_sparc_system_quick = [
]
tests_sparc_system_thorough = [
+ 'sparc_replay',
'sparc_sun4m',
]
diff --git a/tests/functional/test_sparc_replay.py b/tests/functional/test_sparc_replay.py
new file mode 100755
index 00000000000..865d6486f99
--- /dev/null
+++ b/tests/functional/test_sparc_replay.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on a sparc sun4m machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class SparcReplay(ReplayKernelBase):
+
+ ASSET_DAY11 = Asset(
+ 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day11.tar.xz',
+ 'c776533ba756bf4dd3f1fc4c024fb50ef0d853e05c5f5ddf0900a32d1eaa49e0')
+
+ def test_replay(self):
+ self.set_machine('SS-10')
+ kernel_path = self.archive_extract(self.ASSET_DAY11,
+ member="day11/zImage.elf")
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar')
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 06/18] tests/functional: Convert the 32-bit ppc replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (4 preceding siblings ...)
2025-02-26 9:57 ` [PULL 05/18] tests/functional: Convert the sparc replay avocado test Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 07/18] tests/functional: Convert the or1k " Thomas Huth
` (12 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-5-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 24 --------------------
tests/functional/meson.build | 1 +
tests/functional/test_ppc_replay.py | 34 +++++++++++++++++++++++++++++
3 files changed, 35 insertions(+), 24 deletions(-)
create mode 100755 tests/functional/test_ppc_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 412bf9e06e1..89ba6bb3e8b 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -363,27 +363,3 @@ def test_or1k_sim(self):
'/qac-best-of-multiarch/download/day20.tar.xz')
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'vmlinux')
-
- def test_ppc_g3beige(self):
- """
- :avocado: tags=arch:ppc
- :avocado: tags=machine:g3beige
- """
- tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day15.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'invaders.elf',
- args=('-M', 'graphics=off'))
-
- def test_ppc_mac99(self):
- """
- :avocado: tags=arch:ppc
- :avocado: tags=machine:mac99
- """
- tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day15.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'invaders.elf',
- args=('-M', 'graphics=off'))
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 46a97999ae3..63465139a07 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -198,6 +198,7 @@ tests_ppc_system_thorough = [
'ppc_bamboo',
'ppc_mac',
'ppc_mpc8544ds',
+ 'ppc_replay',
'ppc_sam460ex',
'ppc_tuxrun',
'ppc_virtex_ml507',
diff --git a/tests/functional/test_ppc_replay.py b/tests/functional/test_ppc_replay.py
new file mode 100755
index 00000000000..8382070abd1
--- /dev/null
+++ b/tests/functional/test_ppc_replay.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+#
+# Replay tests for ppc machines
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class PpcReplay(ReplayKernelBase):
+
+ ASSET_DAY15 = Asset(
+ 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day15.tar.xz',
+ '03e0757c131d2959decf293a3572d3b96c5a53587165bf05ce41b2818a2bccd5')
+
+ def do_day15_test(self):
+ self.require_accelerator("tcg")
+ kernel_path = self.archive_extract(self.ASSET_DAY15,
+ member='day15/invaders.elf')
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar', args=('-M', 'graphics=off'))
+
+ def test_g3beige(self):
+ self.set_machine('g3beige')
+ self.do_day15_test()
+
+ def test_mac99(self):
+ self.set_machine('mac99')
+ self.do_day15_test()
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 07/18] tests/functional: Convert the or1k replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (5 preceding siblings ...)
2025-02-26 9:57 ` [PULL 06/18] tests/functional: Convert the 32-bit ppc replay avocado tests Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 08/18] tests/functional: Convert the ppc64 " Thomas Huth
` (11 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-6-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 11 -----------
tests/functional/meson.build | 1 +
tests/functional/test_or1k_replay.py | 27 +++++++++++++++++++++++++++
3 files changed, 28 insertions(+), 11 deletions(-)
create mode 100755 tests/functional/test_or1k_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 89ba6bb3e8b..ef72b1622e4 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -352,14 +352,3 @@ def test_ppc64_e500(self):
'/qac-best-of-multiarch/download/day19.tar.xz')
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'uImage')
-
- def test_or1k_sim(self):
- """
- :avocado: tags=arch:or1k
- :avocado: tags=machine:or1k-sim
- """
- tar_hash = '20334cdaf386108c530ff0badaecc955693027dd'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day20.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'vmlinux')
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 63465139a07..2062489230a 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -183,6 +183,7 @@ tests_mips64el_system_thorough = [
]
tests_or1k_system_thorough = [
+ 'or1k_replay',
'or1k_sim',
]
diff --git a/tests/functional/test_or1k_replay.py b/tests/functional/test_or1k_replay.py
new file mode 100755
index 00000000000..2b60a9372c5
--- /dev/null
+++ b/tests/functional/test_or1k_replay.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an OpenRISC-1000 SIM machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class Or1kReplay(ReplayKernelBase):
+
+ ASSET_DAY20 = Asset(
+ 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day20.tar.xz',
+ 'ff9d7dd7c6bdba325bd85ee85c02db61ff653e129558aeffe6aff55bffb6763a')
+
+ def test_sim(self):
+ self.set_machine('or1k-sim')
+ kernel_path = self.archive_extract(self.ASSET_DAY20,
+ member='day20/vmlinux')
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar')
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 08/18] tests/functional: Convert the ppc64 replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (6 preceding siblings ...)
2025-02-26 9:57 ` [PULL 07/18] tests/functional: Convert the or1k " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 09/18] tests/functional: Convert the microblaze " Thomas Huth
` (10 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-7-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 45 ------------------------
tests/functional/meson.build | 2 ++
tests/functional/test_ppc64_replay.py | 49 +++++++++++++++++++++++++++
3 files changed, 51 insertions(+), 45 deletions(-)
create mode 100755 tests/functional/test_ppc64_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index ef72b1622e4..397f7500463 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -242,39 +242,6 @@ def test_alpha_clipper(self):
self.run_rr(uncompressed_kernel, kernel_command_line, console_pattern, shift=9,
args=('-nodefaults', ))
- def test_ppc64_pseries(self):
- """
- :avocado: tags=arch:ppc64
- :avocado: tags=machine:pseries
- :avocado: tags=accel:tcg
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive'
- '/fedora-secondary/releases/29/Everything/ppc64le/os'
- '/ppc/ppc64/vmlinuz')
- kernel_hash = '3fe04abfc852b66653b8c3c897a59a689270bc77'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
- console_pattern = 'VFS: Cannot open root device'
- self.run_rr(kernel_path, kernel_command_line, console_pattern)
-
- def test_ppc64_powernv(self):
- """
- :avocado: tags=arch:ppc64
- :avocado: tags=machine:powernv
- :avocado: tags=accel:tcg
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive'
- '/fedora-secondary/releases/29/Everything/ppc64le/os'
- '/ppc/ppc64/vmlinuz')
- kernel_hash = '3fe04abfc852b66653b8c3c897a59a689270bc77'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + \
- 'console=tty0 console=hvc0'
- console_pattern = 'VFS: Cannot open root device'
- self.run_rr(kernel_path, kernel_command_line, console_pattern)
-
def test_m68k_q800(self):
"""
:avocado: tags=arch:m68k
@@ -340,15 +307,3 @@ def test_microblaze_s3adsp1800(self):
'/qac-best-of-multiarch/download/day17.tar.xz')
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'ballerina.bin')
-
- def test_ppc64_e500(self):
- """
- :avocado: tags=arch:ppc64
- :avocado: tags=machine:ppce500
- :avocado: tags=cpu:e5500
- """
- tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day19.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'uImage')
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 2062489230a..b68b4da6a3d 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -41,6 +41,7 @@ test_timeouts = {
'ppc64_hv' : 1000,
'ppc64_powernv' : 480,
'ppc64_pseries' : 480,
+ 'ppc64_replay' : 210,
'ppc64_tuxrun' : 420,
'ppc64_mac99' : 120,
'riscv64_tuxrun' : 120,
@@ -214,6 +215,7 @@ tests_ppc64_system_thorough = [
'ppc64_hv',
'ppc64_powernv',
'ppc64_pseries',
+ 'ppc64_replay',
'ppc64_tuxrun',
'ppc64_mac99',
]
diff --git a/tests/functional/test_ppc64_replay.py b/tests/functional/test_ppc64_replay.py
new file mode 100755
index 00000000000..48ce1b7f1e1
--- /dev/null
+++ b/tests/functional/test_ppc64_replay.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on ppc64 machines
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class Ppc64Replay(ReplayKernelBase):
+
+ ASSET_DAY19 = Asset(
+ ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/'
+ 'day19.tar.xz'),
+ '20b1bb5a8488c664defbb5d283addc91a05335a936c63b3f5ff7eee74b725755')
+
+ def test_ppc64_e500(self):
+ self.set_machine('ppce500')
+ self.cpu = 'e5500'
+ kernel_path = self.archive_extract(self.ASSET_DAY19,
+ member='day19/uImage')
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar')
+
+ ASSET_KERNEL = Asset(
+ ('https://archives.fedoraproject.org/pub/archive/fedora-secondary/'
+ 'releases/29/Everything/ppc64le/os/ppc/ppc64/vmlinuz'),
+ '383c2f5c23bc0d9d32680c3924d3fd7ee25cc5ef97091ac1aa5e1d853422fc5f')
+
+ def test_ppc64_pseries(self):
+ self.set_machine('pseries')
+ kernel_path = self.ASSET_KERNEL.fetch()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
+ console_pattern = 'VFS: Cannot open root device'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern)
+
+ def test_ppc64_powernv(self):
+ self.set_machine('powernv')
+ kernel_path = self.ASSET_KERNEL.fetch()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + \
+ 'console=tty0 console=hvc0'
+ console_pattern = 'VFS: Cannot open root device'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern)
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 09/18] tests/functional: Convert the microblaze replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (7 preceding siblings ...)
2025-02-26 9:57 ` [PULL 08/18] tests/functional: Convert the ppc64 " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 10/18] tests/functional: Convert the m68k " Thomas Huth
` (9 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-8-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 11 ---------
tests/functional/meson.build | 1 +
tests/functional/test_microblaze_replay.py | 28 ++++++++++++++++++++++
3 files changed, 29 insertions(+), 11 deletions(-)
create mode 100755 tests/functional/test_microblaze_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 397f7500463..b2097afc302 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -296,14 +296,3 @@ def test_m68k_mcf5208evb(self):
'/qac-best-of-multiarch/download/day07.tar.xz')
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'sanity-clause.elf')
-
- def test_microblaze_s3adsp1800(self):
- """
- :avocado: tags=arch:microblaze
- :avocado: tags=machine:petalogix-s3adsp1800
- """
- tar_hash = '08bf3e3bfb6b6c7ce1e54ab65d54e189f2caf13f'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day17.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'ballerina.bin')
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index b68b4da6a3d..58f12f54d14 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -152,6 +152,7 @@ tests_m68k_system_thorough = [
]
tests_microblaze_system_thorough = [
+ 'microblaze_replay',
'microblaze_s3adsp1800'
]
diff --git a/tests/functional/test_microblaze_replay.py b/tests/functional/test_microblaze_replay.py
new file mode 100755
index 00000000000..7484c4186f3
--- /dev/null
+++ b/tests/functional/test_microblaze_replay.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an microblaze machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class MicroblazeReplay(ReplayKernelBase):
+
+ ASSET_DAY17 = Asset(
+ ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/'
+ 'day17.tar.xz'),
+ '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057')
+
+ def test_microblaze_s3adsp1800(self):
+ self.set_machine('petalogix-s3adsp1800')
+ kernel_path = self.archive_extract(self.ASSET_DAY17,
+ member='day17/ballerina.bin')
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar')
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 10/18] tests/functional: Convert the m68k replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (8 preceding siblings ...)
2025-02-26 9:57 ` [PULL 09/18] tests/functional: Convert the microblaze " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 11/18] tests/functional: Convert the arm " Thomas Huth
` (8 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-9-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 29 -------------------
tests/functional/meson.build | 1 +
tests/functional/test_m68k_replay.py | 42 ++++++++++++++++++++++++++++
3 files changed, 43 insertions(+), 29 deletions(-)
create mode 100755 tests/functional/test_m68k_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index b2097afc302..4bd48878b7e 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -242,24 +242,6 @@ def test_alpha_clipper(self):
self.run_rr(uncompressed_kernel, kernel_command_line, console_pattern, shift=9,
args=('-nodefaults', ))
- def test_m68k_q800(self):
- """
- :avocado: tags=arch:m68k
- :avocado: tags=machine:q800
- """
- deb_url = ('https://snapshot.debian.org/archive/debian-ports'
- '/20191021T083923Z/pool-m68k/main'
- '/l/linux/kernel-image-5.3.0-1-m68k-di_5.3.7-1_m68k.udeb')
- deb_hash = '044954bb9be4160a3ce81f8bc1b5e856b75cccd1'
- deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
- kernel_path = self.extract_from_deb(deb_path,
- '/boot/vmlinux-5.3.0-1-m68k')
-
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
- 'console=ttyS0 vga=off')
- console_pattern = 'No filesystem could mount root'
- self.run_rr(kernel_path, kernel_command_line, console_pattern)
-
def do_test_advcal_2018(self, file_path, kernel_name, args=None):
archive.extract(file_path, self.workdir)
@@ -285,14 +267,3 @@ def test_arm_vexpressa9(self):
dtb_path = self.workdir + '/day16/vexpress-v2p-ca9.dtb'
self.do_test_advcal_2018(file_path, 'winter.zImage',
args=('-dtb', dtb_path))
-
- def test_m68k_mcf5208evb(self):
- """
- :avocado: tags=arch:m68k
- :avocado: tags=machine:mcf5208evb
- """
- tar_hash = 'ac688fd00561a2b6ce1359f9ff6aa2b98c9a570c'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day07.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- self.do_test_advcal_2018(file_path, 'sanity-clause.elf')
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 58f12f54d14..995cea4f305 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -147,6 +147,7 @@ tests_loongarch64_system_thorough = [
tests_m68k_system_thorough = [
'm68k_mcf5208evb',
'm68k_nextcube',
+ 'm68k_replay',
'm68k_q800',
'm68k_tuxrun',
]
diff --git a/tests/functional/test_m68k_replay.py b/tests/functional/test_m68k_replay.py
new file mode 100755
index 00000000000..18c1db539c5
--- /dev/null
+++ b/tests/functional/test_m68k_replay.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an m68k machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class M68kReplay(ReplayKernelBase):
+
+ ASSET_Q800 = Asset(
+ ('https://snapshot.debian.org/'
+ 'archive/debian-ports/20191021T083923Z/pool-m68k/main/l/linux/'
+ 'kernel-image-5.3.0-1-m68k-di_5.3.7-1_m68k.udeb'),
+ '949e50d74d4b9bc15d26c06d402717b7a4c0e32ff8100014f5930d8024de7b73')
+
+ def test_q800(self):
+ self.set_machine('q800')
+ kernel_path = self.archive_extract(self.ASSET_Q800,
+ member='boot/vmlinux-5.3.0-1-m68k')
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+ 'console=ttyS0 vga=off')
+ console_pattern = 'No filesystem could mount root'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern)
+
+ ASSET_MCF5208 = Asset(
+ 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day07.tar.xz',
+ '753c2f3837126b7c6ba92d0b1e0b156e8a2c5131d2d576bb0b9a763fae73c08a')
+
+ def test_mcf5208evb(self):
+ self.set_machine('mcf5208evb')
+ kernel_path = self.archive_extract(self.ASSET_MCF5208,
+ member='day07/sanity-clause.elf')
+ self.run_rr(kernel_path, self.KERNEL_COMMON_COMMAND_LINE,
+ 'QEMU advent calendar')
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 11/18] tests/functional: Convert the arm replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (9 preceding siblings ...)
2025-02-26 9:57 ` [PULL 10/18] tests/functional: Convert the m68k " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-03-07 19:08 ` Peter Maydell
2025-02-26 9:57 ` [PULL 12/18] tests/functional: Convert the alpha " Thomas Huth
` (7 subsequent siblings)
18 siblings, 1 reply; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-10-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 74 -----------------------------
tests/functional/meson.build | 1 +
tests/functional/test_arm_replay.py | 69 +++++++++++++++++++++++++++
3 files changed, 70 insertions(+), 74 deletions(-)
create mode 100755 tests/functional/test_arm_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 4bd48878b7e..02bd868a429 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -162,54 +162,6 @@ def test_aarch64_virt(self):
self.run_rr(kernel_path, kernel_command_line, console_pattern)
- def test_arm_virt(self):
- """
- :avocado: tags=arch:arm
- :avocado: tags=machine:virt
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
- '/linux/releases/29/Everything/armhfp/os/images/pxeboot'
- '/vmlinuz')
- kernel_hash = 'e9826d741b4fb04cadba8d4824d1ed3b7fb8b4d4'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
- 'console=ttyAMA0')
- console_pattern = 'VFS: Cannot open root device'
-
- self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=1)
-
- def test_arm_cubieboard_initrd(self):
- """
- :avocado: tags=arch:arm
- :avocado: tags=machine:cubieboard
- """
- deb_url = ('https://apt.armbian.com/pool/main/l/'
- 'linux-6.6.16/linux-image-current-sunxi_24.2.1_armhf__6.6.16-Seb3e-D6b4a-P2359-Ce96bHfe66-HK01ba-V014b-B067e-R448a.deb')
- deb_hash = 'f7c3c8c5432f765445dc6e7eab02f3bbe668256b'
- deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
- kernel_path = self.extract_from_deb(deb_path,
- '/boot/vmlinuz-6.6.16-current-sunxi')
- dtb_path = '/usr/lib/linux-image-6.6.16-current-sunxi/sun4i-a10-cubieboard.dtb'
- dtb_path = self.extract_from_deb(deb_path, dtb_path)
- initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
- '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/'
- 'arm/rootfs-armv5.cpio.gz')
- initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b'
- initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
- initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
- archive.gzip_uncompress(initrd_path_gz, initrd_path)
-
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
- 'console=ttyS0,115200 '
- 'usbcore.nousb '
- 'panic=-1 noreboot')
- console_pattern = 'Boot successful.'
- self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=1,
- args=('-dtb', dtb_path,
- '-initrd', initrd_path,
- '-no-reboot'))
-
def test_s390x_s390_ccw_virtio(self):
"""
:avocado: tags=arch:s390x
@@ -241,29 +193,3 @@ def test_alpha_clipper(self):
console_pattern = 'Kernel command line: %s' % kernel_command_line
self.run_rr(uncompressed_kernel, kernel_command_line, console_pattern, shift=9,
args=('-nodefaults', ))
-
- def do_test_advcal_2018(self, file_path, kernel_name, args=None):
- archive.extract(file_path, self.workdir)
-
- for entry in os.scandir(self.workdir):
- if entry.name.startswith('day') and entry.is_dir():
- kernel_path = os.path.join(entry.path, kernel_name)
- break
-
- kernel_command_line = ''
- console_pattern = 'QEMU advent calendar'
- self.run_rr(kernel_path, kernel_command_line, console_pattern,
- args=args)
-
- def test_arm_vexpressa9(self):
- """
- :avocado: tags=arch:arm
- :avocado: tags=machine:vexpress-a9
- """
- tar_hash = '32b7677ce8b6f1471fb0059865f451169934245b'
- tar_url = ('https://qemu-advcal.gitlab.io'
- '/qac-best-of-multiarch/download/day16.tar.xz')
- file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
- dtb_path = self.workdir + '/day16/vexpress-v2p-ca9.dtb'
- self.do_test_advcal_2018(file_path, 'winter.zImage',
- args=('-dtb', dtb_path))
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 995cea4f305..a46c4e89464 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -113,6 +113,7 @@ tests_arm_system_thorough = [
'arm_orangepi',
'arm_quanta_gsj',
'arm_raspi2',
+ 'arm_replay',
'arm_smdkc210',
'arm_sx1',
'arm_vexpress',
diff --git a/tests/functional/test_arm_replay.py b/tests/functional/test_arm_replay.py
new file mode 100755
index 00000000000..e002e6a2647
--- /dev/null
+++ b/tests/functional/test_arm_replay.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on arm machines and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class ArmReplay(ReplayKernelBase):
+
+ ASSET_VIRT = Asset(
+ ('https://archives.fedoraproject.org/pub/archive/fedora/linux/'
+ 'releases/29/Everything/armhfp/os/images/pxeboot/vmlinuz'),
+ '18dd5f1a9a28bd539f9d047f7c0677211bae528e8712b40ca5a229a4ad8e2591')
+
+ def test_virt(self):
+ self.set_machine('virt')
+ kernel_path = self.ASSET_VIRT.fetch()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+ 'console=ttyAMA0')
+ console_pattern = 'VFS: Cannot open root device'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=1)
+
+ ASSET_CUBIE_KERNEL = Asset(
+ ('https://apt.armbian.com/pool/main/l/linux-6.6.16/'
+ 'linux-image-current-sunxi_24.2.1_armhf_'
+ '_6.6.16-Seb3e-D6b4a-P2359-Ce96bHfe66-HK01ba-V014b-B067e-R448a.deb'),
+ '3d968c15b121ede871dce49d13ee7644d6f74b6b121b84c9a40f51b0c80d6d22')
+
+ ASSET_CUBIE_INITRD = Asset(
+ ('https://github.com/groeck/linux-build-test/raw/'
+ '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/arm/rootfs-armv5.cpio.gz'),
+ '334b8d256db67a3f2b3ad070aa08b5ade39624e0e7e35b02f4359a577bc8f39b')
+
+ def test_cubieboard(self):
+ self.set_machine('cubieboard')
+ kernel_path = self.archive_extract(self.ASSET_CUBIE_KERNEL,
+ member='boot/vmlinuz-6.6.16-current-sunxi')
+ dtb_path = self.archive_extract(self.ASSET_CUBIE_KERNEL,
+ member='usr/lib/linux-image-6.6.16-current-sunxi/sun4i-a10-cubieboard.dtb')
+ initrd_path = self.uncompress(self.ASSET_CUBIE_INITRD)
+
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+ 'console=ttyS0,115200 '
+ 'usbcore.nousb '
+ 'panic=-1 noreboot')
+ console_pattern = 'Boot successful.'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=1,
+ args=('-dtb', dtb_path,
+ '-initrd', initrd_path,
+ '-no-reboot'))
+
+ ASSET_DAY16 = Asset(
+ 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day16.tar.xz',
+ '63311adb2d4c4e7a73214a86d29988add87266a909719c56acfadd026b4110a7')
+
+ def test_vexpressa9(self):
+ self.set_machine('vexpress-a9')
+ self.archive_extract(self.ASSET_DAY16)
+ kernel_path = self.scratch_file('day16', 'winter.zImage')
+ dtb_path = self.scratch_file('day16', 'vexpress-v2p-ca9.dtb')
+ self.run_rr(kernel_path, self.REPLAY_KERNEL_COMMAND_LINE,
+ 'QEMU advent calendar', args=('-dtb', dtb_path))
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 12/18] tests/functional: Convert the alpha replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (10 preceding siblings ...)
2025-02-26 9:57 ` [PULL 11/18] tests/functional: Convert the arm " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 13/18] tests/functional: Convert the s390x " Thomas Huth
` (6 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-11-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 17 ----------------
tests/functional/meson.build | 1 +
tests/functional/test_alpha_replay.py | 29 +++++++++++++++++++++++++++
3 files changed, 30 insertions(+), 17 deletions(-)
create mode 100755 tests/functional/test_alpha_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 02bd868a429..4347d202742 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -176,20 +176,3 @@ def test_s390x_s390_ccw_virtio(self):
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=sclp0'
console_pattern = 'Kernel command line: %s' % kernel_command_line
self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=9)
-
- def test_alpha_clipper(self):
- """
- :avocado: tags=arch:alpha
- :avocado: tags=machine:clipper
- """
- kernel_url = ('http://archive.debian.org/debian/dists/lenny/main/'
- 'installer-alpha/20090123lenny10/images/cdrom/vmlinuz')
- kernel_hash = '3a943149335529e2ed3e74d0d787b85fb5671ba3'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- uncompressed_kernel = archive.uncompress(kernel_path, self.workdir)
-
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
- console_pattern = 'Kernel command line: %s' % kernel_command_line
- self.run_rr(uncompressed_kernel, kernel_command_line, console_pattern, shift=9,
- args=('-nodefaults', ))
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index a46c4e89464..e8b934d7f5f 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -90,6 +90,7 @@ tests_alpha_system_quick = [
tests_alpha_system_thorough = [
'alpha_clipper',
+ 'alpha_replay',
]
tests_arm_system_quick = [
diff --git a/tests/functional/test_alpha_replay.py b/tests/functional/test_alpha_replay.py
new file mode 100755
index 00000000000..24a17ef5904
--- /dev/null
+++ b/tests/functional/test_alpha_replay.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an Alpha machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class AlphaReplay(ReplayKernelBase):
+
+ ASSET_KERNEL = Asset(
+ ('http://archive.debian.org/debian/dists/lenny/main/installer-alpha/'
+ '20090123lenny10/images/cdrom/vmlinuz'),
+ '34f53da3fa32212e4f00b03cb944b2ad81c06bc8faaf9b7193b2e544ceeca576')
+
+ def test_clipper(self):
+ self.set_machine('clipper')
+ kernel_path = self.uncompress(self.ASSET_KERNEL, format='gz')
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=9,
+ args=('-nodefaults', ))
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 13/18] tests/functional: Convert the s390x replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (11 preceding siblings ...)
2025-02-26 9:57 ` [PULL 12/18] tests/functional: Convert the alpha " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 14/18] tests/functional: Convert the aarch64 " Thomas Huth
` (5 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (in the functional framework,
each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-12-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 15 --------------
tests/functional/meson.build | 1 +
tests/functional/test_s390x_replay.py | 28 +++++++++++++++++++++++++++
3 files changed, 29 insertions(+), 15 deletions(-)
create mode 100755 tests/functional/test_s390x_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 4347d202742..49543604613 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -161,18 +161,3 @@ def test_aarch64_virt(self):
console_pattern = 'VFS: Cannot open root device'
self.run_rr(kernel_path, kernel_command_line, console_pattern)
-
- def test_s390x_s390_ccw_virtio(self):
- """
- :avocado: tags=arch:s390x
- :avocado: tags=machine:s390-ccw-virtio
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive'
- '/fedora-secondary/releases/29/Everything/s390x/os/images'
- '/kernel.img')
- kernel_hash = 'e8e8439103ef8053418ef062644ffd46a7919313'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=sclp0'
- console_pattern = 'Kernel command line: %s' % kernel_command_line
- self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=9)
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index e8b934d7f5f..acab5364281 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -248,6 +248,7 @@ tests_rx_system_thorough = [
tests_s390x_system_thorough = [
's390x_ccw_virtio',
+ 's390x_replay',
's390x_topology',
's390x_tuxrun',
]
diff --git a/tests/functional/test_s390x_replay.py b/tests/functional/test_s390x_replay.py
new file mode 100755
index 00000000000..33b5843adae
--- /dev/null
+++ b/tests/functional/test_s390x_replay.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an s390x machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class S390xReplay(ReplayKernelBase):
+
+ ASSET_KERNEL = Asset(
+ ('https://archives.fedoraproject.org/pub/archive/fedora-secondary/'
+ 'releases/29/Everything/s390x/os/images/kernel.img'),
+ 'dace03b8ae0c9f670ebb9b8d6ce5eb24b62987f346de8f1300a439bb00bb99e7')
+
+ def test_s390_ccw_virtio(self):
+ self.set_machine('s390-ccw-virtio')
+ kernel_path = self.ASSET_KERNEL.fetch()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=sclp0'
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=9)
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 14/18] tests/functional: Convert the aarch64 replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (12 preceding siblings ...)
2025-02-26 9:57 ` [PULL 13/18] tests/functional: Convert the s390x " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 15/18] tests/functional: Convert the x86_64 " Thomas Huth
` (4 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (in the functional framework,
each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-13-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 18 ---------------
tests/functional/meson.build | 1 +
tests/functional/test_aarch64_replay.py | 30 +++++++++++++++++++++++++
3 files changed, 31 insertions(+), 18 deletions(-)
create mode 100755 tests/functional/test_aarch64_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index 49543604613..dffced62aa2 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -143,21 +143,3 @@ def test_x86_64_q35(self):
console_pattern = 'VFS: Cannot open root device'
self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=5)
-
- def test_aarch64_virt(self):
- """
- :avocado: tags=arch:aarch64
- :avocado: tags=machine:virt
- :avocado: tags=cpu:cortex-a53
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
- '/linux/releases/29/Everything/aarch64/os/images/pxeboot'
- '/vmlinuz')
- kernel_hash = '8c73e469fc6ea06a58dc83a628fc695b693b8493'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
- 'console=ttyAMA0')
- console_pattern = 'VFS: Cannot open root device'
-
- self.run_rr(kernel_path, kernel_command_line, console_pattern)
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index acab5364281..e8e5a7757c3 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -71,6 +71,7 @@ tests_aarch64_system_thorough = [
'aarch64_aspeed',
'aarch64_raspi3',
'aarch64_raspi4',
+ 'aarch64_replay',
'aarch64_rme_virt',
'aarch64_rme_sbsaref',
'aarch64_sbsaref',
diff --git a/tests/functional/test_aarch64_replay.py b/tests/functional/test_aarch64_replay.py
new file mode 100755
index 00000000000..04cde433bcf
--- /dev/null
+++ b/tests/functional/test_aarch64_replay.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on an aarch64 machine
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset
+from replay_kernel import ReplayKernelBase
+
+
+class Aarch64Replay(ReplayKernelBase):
+
+ ASSET_KERNEL = Asset(
+ ('https://archives.fedoraproject.org/pub/archive/fedora/linux/'
+ 'releases/29/Everything/aarch64/os/images/pxeboot/vmlinuz'),
+ '7e1430b81c26bdd0da025eeb8fbd77b5dc961da4364af26e771bd39f379cbbf7')
+
+ def test_aarch64_virt(self):
+ self.set_machine('virt')
+ self.cpu = 'cortex-a53'
+ kernel_path = self.ASSET_KERNEL.fetch()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+ 'console=ttyAMA0')
+ console_pattern = 'VFS: Cannot open root device'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern)
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 15/18] tests/functional: Convert the x86_64 replay avocado tests
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (13 preceding siblings ...)
2025-02-26 9:57 ` [PULL 14/18] tests/functional: Convert the aarch64 " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 16/18] tests/functional: Bump some arm test timeouts Thomas Huth
` (3 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Put the tests into a separate file now (in the functional framework,
each file is run with one specific qemu-system-* binary).
Signed-off-by: Thomas Huth <thuth@redhat.com
Message-ID: <20250218152744.228335-14-thuth@redhat.com>
---
tests/avocado/replay_kernel.py | 35 --------------------------
tests/functional/meson.build | 2 ++
tests/functional/test_x86_64_replay.py | 35 ++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 35 deletions(-)
create mode 100755 tests/functional/test_x86_64_replay.py
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index dffced62aa2..35515323723 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -108,38 +108,3 @@ def test_i386_pc(self):
console_pattern = 'VFS: Cannot open root device'
self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=5)
-
- # See https://gitlab.com/qemu-project/qemu/-/issues/2094
- @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'pc machine is unstable with replay')
- def test_x86_64_pc(self):
- """
- :avocado: tags=arch:x86_64
- :avocado: tags=machine:pc
- :avocado: tags=flaky
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
- '/linux/releases/29/Everything/x86_64/os/images/pxeboot'
- '/vmlinuz')
- kernel_hash = '23bebd2680757891cf7adedb033532163a792495'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
- console_pattern = 'VFS: Cannot open root device'
-
- self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=5)
-
- def test_x86_64_q35(self):
- """
- :avocado: tags=arch:x86_64
- :avocado: tags=machine:q35
- """
- kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
- '/linux/releases/29/Everything/x86_64/os/images/pxeboot'
- '/vmlinuz')
- kernel_hash = '23bebd2680757891cf7adedb033532163a792495'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
-
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
- console_pattern = 'VFS: Cannot open root device'
-
- self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=5)
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index e8e5a7757c3..8ae70568a20 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -49,6 +49,7 @@ test_timeouts = {
'sh4_tuxrun' : 240,
'virtio_balloon': 120,
'x86_64_kvm_xen' : 180,
+ 'x86_64_replay' : 480,
}
tests_generic_system = [
@@ -302,6 +303,7 @@ tests_x86_64_system_thorough = [
'x86_64_hotplug_blk',
'x86_64_hotplug_cpu',
'x86_64_kvm_xen',
+ 'x86_64_replay',
'x86_64_tuxrun',
]
diff --git a/tests/functional/test_x86_64_replay.py b/tests/functional/test_x86_64_replay.py
new file mode 100755
index 00000000000..180f23a60c5
--- /dev/null
+++ b/tests/functional/test_x86_64_replay.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+#
+# Replay test that boots a Linux kernel on x86_64 machines
+# and checks the console
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset, skipFlakyTest
+from replay_kernel import ReplayKernelBase
+
+
+class X86Replay(ReplayKernelBase):
+
+ ASSET_KERNEL = Asset(
+ ('https://archives.fedoraproject.org/pub/archive/fedora/linux'
+ '/releases/29/Everything/x86_64/os/images/pxeboot/vmlinuz'),
+ '8f237d84712b1b411baf3af2aeaaee10b9aae8e345ec265b87ab3a39639eb143')
+
+ def do_test_x86(self, machine):
+ self.set_machine(machine)
+ kernel_path = self.ASSET_KERNEL.fetch()
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
+ console_pattern = 'VFS: Cannot open root device'
+ self.run_rr(kernel_path, kernel_command_line, console_pattern, shift=5)
+
+ @skipFlakyTest('https://gitlab.com/qemu-project/qemu/-/issues/2094')
+ def test_pc(self):
+ self.do_test_x86('pc')
+
+ def test_q35(self):
+ self.do_test_x86('q35')
+
+
+if __name__ == '__main__':
+ ReplayKernelBase.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 16/18] tests/functional: Bump some arm test timeouts
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (14 preceding siblings ...)
2025-02-26 9:57 ` [PULL 15/18] tests/functional: Convert the x86_64 " Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 17/18] gitlab: use --refetch in check-patch/check-dco jobs Thomas Huth
` (2 subsequent siblings)
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Peter Maydell
From: Peter Maydell <peter.maydell@linaro.org>
On my local machine, for a debug build, sbsaref_alpine takes
nearly 900s:
$ (cd build/x86 && ./pyvenv/bin/meson test --setup thorough --suite func-thorough func-aarch64-aarch64_sbsaref_alpine
)
1/1 qemu:func-thorough+func-aarch64-thorough+thorough / func-aarch64-aarch64_sbsaref_alpine
OK 896.90s
arm_aspeed_rainier can also run close to its current timeout:
6/44 qemu:func-thorough+func-arm-thorough+thorough / func-arm-arm_aspeed_rainier
OK 215.75s
and arm_aspeed_ast2500 and arm_aspeed_ast2600 can go over:
13/44 qemu:func-thorough+func-arm-thorough+thorough / func-arm-arm_aspeed_ast2600
OK 792.94s
27/44 qemu:func-thorough+func-arm-thorough+thorough / func-arm-arm_aspeed_ast2500
TIMEOUT 480.01s
The sx1 test fails not on the overall meson timeout but on the
60 second timeout in some of the subtests.
Bump all these timeouts up a bit.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250221140640.786341-1-peter.maydell@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/functional/meson.build | 8 ++++----
tests/functional/test_arm_sx1.py | 6 +++---
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 8ae70568a20..3fd2652c078 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -15,16 +15,16 @@ test_timeouts = {
'aarch64_raspi4' : 480,
'aarch64_rme_virt' : 1200,
'aarch64_rme_sbsaref' : 1200,
- 'aarch64_sbsaref_alpine' : 720,
+ 'aarch64_sbsaref_alpine' : 1200,
'aarch64_sbsaref_freebsd' : 720,
'aarch64_tuxrun' : 240,
'aarch64_virt' : 720,
'acpi_bits' : 420,
'arm_aspeed_palmetto' : 120,
'arm_aspeed_romulus' : 120,
- 'arm_aspeed_ast2500' : 480,
- 'arm_aspeed_ast2600' : 720,
- 'arm_aspeed_rainier' : 240,
+ 'arm_aspeed_ast2500' : 720,
+ 'arm_aspeed_ast2600' : 1200,
+ 'arm_aspeed_rainier' : 480,
'arm_bpim2u' : 500,
'arm_collie' : 180,
'arm_cubieboard' : 360,
diff --git a/tests/functional/test_arm_sx1.py b/tests/functional/test_arm_sx1.py
index b85bfaa178f..4dd1e1859fa 100755
--- a/tests/functional/test_arm_sx1.py
+++ b/tests/functional/test_arm_sx1.py
@@ -44,7 +44,7 @@ def test_arm_sx1_initrd(self):
self.vm.add_args('-no-reboot')
self.launch_kernel(zimage_path,
initrd=initrd_path)
- self.vm.wait(timeout=60)
+ self.vm.wait(timeout=120)
def test_arm_sx1_sd(self):
self.set_machine('sx1')
@@ -55,7 +55,7 @@ def test_arm_sx1_sd(self):
self.vm.add_args('-snapshot')
self.vm.add_args('-drive', f'format=raw,if=sd,file={sd_fs_path}')
self.launch_kernel(zimage_path)
- self.vm.wait(timeout=60)
+ self.vm.wait(timeout=120)
def test_arm_sx1_flash(self):
self.set_machine('sx1')
@@ -66,7 +66,7 @@ def test_arm_sx1_flash(self):
self.vm.add_args('-snapshot')
self.vm.add_args('-drive', f'format=raw,if=pflash,file={flash_path}')
self.launch_kernel(zimage_path)
- self.vm.wait(timeout=60)
+ self.vm.wait(timeout=120)
if __name__ == '__main__':
LinuxKernelTest.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 17/18] gitlab: use --refetch in check-patch/check-dco jobs
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (15 preceding siblings ...)
2025-02-26 9:57 ` [PULL 16/18] tests/functional: Bump some arm test timeouts Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-02-26 9:57 ` [PULL 18/18] tests/functional: Replace the ppc64 e500 advent calendar test Thomas Huth
2025-03-03 12:12 ` [PULL 00/18] Functional and other test improvements Stefan Hajnoczi
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Daniel P. Berrangé, Michael S. Tsirkin
From: Daniel P. Berrangé <berrange@redhat.com>
When gitlab initializes the repo checkout for a CI job, it will have
done a shallow clone with only partial history. Periodically the objects
that are omitted cause trouble with the check-patch/check-dco jobs. This
is exhibited as reporting strange errors being unable to fetch certain
objects that are known to exist.
Passing the --refetch flag to 'git fetch' causes it to not assume the
local checkout has all common objects and thus re-fetch everything that
is needed. This appears to solve the check-patch/check-dco job failures.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <20250225110525.2209854-1-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
.gitlab-ci.d/check-dco.py | 2 +-
.gitlab-ci.d/check-patch.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.gitlab-ci.d/check-dco.py b/.gitlab-ci.d/check-dco.py
index 70dec7d6ee9..2fd56683dc6 100755
--- a/.gitlab-ci.d/check-dco.py
+++ b/.gitlab-ci.d/check-dco.py
@@ -21,7 +21,7 @@
print(f"adding upstream git repo @ {repourl}")
subprocess.check_call(["git", "remote", "add", "check-dco", repourl])
-subprocess.check_call(["git", "fetch", "check-dco", "master"])
+subprocess.check_call(["git", "fetch", "--refetch", "check-dco", "master"])
ancestor = subprocess.check_output(["git", "merge-base",
"check-dco/master", "HEAD"],
diff --git a/.gitlab-ci.d/check-patch.py b/.gitlab-ci.d/check-patch.py
index 68c549a146a..be13e6f77d7 100755
--- a/.gitlab-ci.d/check-patch.py
+++ b/.gitlab-ci.d/check-patch.py
@@ -24,7 +24,7 @@
# base for the user's branch. We thus need to figure out a common
# ancestor between the user's branch and current git master.
subprocess.check_call(["git", "remote", "add", "check-patch", repourl])
-subprocess.check_call(["git", "fetch", "check-patch", "master"])
+subprocess.check_call(["git", "fetch", "--refetch", "check-patch", "master"])
ancestor = subprocess.check_output(["git", "merge-base",
"check-patch/master", "HEAD"],
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 18/18] tests/functional: Replace the ppc64 e500 advent calendar test
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (16 preceding siblings ...)
2025-02-26 9:57 ` [PULL 17/18] gitlab: use --refetch in check-patch/check-dco jobs Thomas Huth
@ 2025-02-26 9:57 ` Thomas Huth
2025-03-03 12:12 ` [PULL 00/18] Functional and other test improvements Stefan Hajnoczi
18 siblings, 0 replies; 21+ messages in thread
From: Thomas Huth @ 2025-02-26 9:57 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cédric Le Goater
From: Cédric Le Goater <clg@redhat.com>
Replace the advent calendar test with a buildroot image built with
qemu_ppc64_e5500_defconfig. Unlike the advent calendar image, this
newer buildroot image supports networking, too. Thus boot a ppce500
machine from kernel and disk, test network and poweroff.
Add '-no-shutdown' to the command line to avoid exiting from QEMU
as it seems to bother the functional framework.
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Message-ID: <20250226065013.196052-1-clg@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
[thuth: Add some wording about network support to the commit message]
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/functional/test_ppc64_e500.py | 33 +++++++++++++++++++++++------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/tests/functional/test_ppc64_e500.py b/tests/functional/test_ppc64_e500.py
index b92fe0b0e75..9ce7ae6c479 100755
--- a/tests/functional/test_ppc64_e500.py
+++ b/tests/functional/test_ppc64_e500.py
@@ -5,20 +5,39 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import LinuxKernelTest, Asset
+from qemu_test import exec_command_and_wait_for_pattern
class E500Test(LinuxKernelTest):
- ASSET_DAY19 = Asset(
- 'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day19.tar.xz',
- '20b1bb5a8488c664defbb5d283addc91a05335a936c63b3f5ff7eee74b725755')
+ ASSET_BR2_E5500_UIMAGE = Asset(
+ 'https://github.com/legoater/qemu-ppc-boot/raw/refs/heads/main/buildroot/qemu_ppc64_e5500-2023.11-8-gdcd9f0f6eb-20240104/uImage',
+ '2478187c455d6cca3984e9dfde9c635d824ea16236b85fd6b4809f744706deda')
- def test_ppc64_e500(self):
+ ASSET_BR2_E5500_ROOTFS = Asset(
+ 'https://github.com/legoater/qemu-ppc-boot/raw/refs/heads/main//buildroot/qemu_ppc64_e5500-2023.11-8-gdcd9f0f6eb-20240104/rootfs.ext2',
+ '9035ef97237c84c7522baaff17d25cdfca4bb7a053d5e296e902919473423d76')
+
+ def test_ppc64_e500_buildroot(self):
self.set_machine('ppce500')
self.cpu = 'e5500'
- self.archive_extract(self.ASSET_DAY19)
- self.launch_kernel(self.scratch_file('day19', 'uImage'),
- wait_for='QEMU advent calendar')
+
+ uimage_path = self.ASSET_BR2_E5500_UIMAGE.fetch()
+ rootfs_path = self.ASSET_BR2_E5500_ROOTFS.fetch()
+
+ self.vm.set_console()
+ self.vm.add_args('-kernel', uimage_path,
+ '-append', 'root=/dev/vda',
+ '-drive', f'file={rootfs_path},if=virtio,format=raw',
+ '-snapshot', '-no-shutdown')
+ self.vm.launch()
+
+ self.wait_for_console_pattern('Linux version')
+ self.wait_for_console_pattern('/init as init process')
+ self.wait_for_console_pattern('lease of 10.0.2.15')
+ self.wait_for_console_pattern('buildroot login:')
+ exec_command_and_wait_for_pattern(self, 'root', '#')
+ exec_command_and_wait_for_pattern(self, 'poweroff', 'Power down')
if __name__ == '__main__':
LinuxKernelTest.main()
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PULL 00/18] Functional and other test improvements
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
` (17 preceding siblings ...)
2025-02-26 9:57 ` [PULL 18/18] tests/functional: Replace the ppc64 e500 advent calendar test Thomas Huth
@ 2025-03-03 12:12 ` Stefan Hajnoczi
18 siblings, 0 replies; 21+ messages in thread
From: Stefan Hajnoczi @ 2025-03-03 12:12 UTC (permalink / raw)
To: Thomas Huth; +Cc: qemu-devel, Stefan Hajnoczi
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/10.0 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 11/18] tests/functional: Convert the arm replay avocado tests
2025-02-26 9:57 ` [PULL 11/18] tests/functional: Convert the arm " Thomas Huth
@ 2025-03-07 19:08 ` Peter Maydell
0 siblings, 0 replies; 21+ messages in thread
From: Peter Maydell @ 2025-03-07 19:08 UTC (permalink / raw)
To: Thomas Huth; +Cc: qemu-devel, Stefan Hajnoczi
On Wed, 26 Feb 2025 at 10:00, Thomas Huth <thuth@redhat.com> wrote:
>
> Put the tests into a separate file now (since in the functional
> framework, each file is run with one specific qemu-system-* binary).
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> Message-ID: <20250218152744.228335-10-thuth@redhat.com>
> ---
> tests/avocado/replay_kernel.py | 74 -----------------------------
> tests/functional/meson.build | 1 +
> tests/functional/test_arm_replay.py | 69 +++++++++++++++++++++++++++
> 3 files changed, 70 insertions(+), 74 deletions(-)
> create mode 100755 tests/functional/test_arm_replay.py
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 995cea4f305..a46c4e89464 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -113,6 +113,7 @@ tests_arm_system_thorough = [
> 'arm_orangepi',
> 'arm_quanta_gsj',
> 'arm_raspi2',
> + 'arm_replay',
> 'arm_smdkc210',
> 'arm_sx1',
> 'arm_vexpress',
The default 90s on this one seems to be insufficient.
On a debug build with rust enabled on my local machine,
running just this test takes over 2 minutes:
$ time (cd build/rust ; PYTHONPATH=../../python:../../tests/functional
QEMU_TEST_QEMU_BINARY=./qemu-system-arm ./pyvenv/bin/python3
../../tests/functional/test_arm_replay.py)
TAP version 13
ok 1 test_arm_replay.ArmReplay.test_cubieboard
ok 2 test_arm_replay.ArmReplay.test_vexpressa9
ok 3 test_arm_replay.ArmReplay.test_virt
1..3
real 2m16.564s
user 2m13.461s
sys 0m3.523s
I'll send a patch to bump up the timeout.
thanks
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2025-03-07 19:09 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-26 9:57 [PULL 00/18] Functional and other test improvements Thomas Huth
2025-02-26 9:57 ` [PULL 01/18] tests/functional: Have microblaze tests inherit common parent class Thomas Huth
2025-02-26 9:57 ` [PULL 02/18] tests/qtest/qom-test: Test retrieval of machine class properties Thomas Huth
2025-02-26 9:57 ` [PULL 03/18] tests/functional: Provide a proper name for the VMs in the replay tests Thomas Huth
2025-02-26 9:57 ` [PULL 04/18] tests/functional: Convert the xtensa replay test to the functional framework Thomas Huth
2025-02-26 9:57 ` [PULL 05/18] tests/functional: Convert the sparc replay avocado test Thomas Huth
2025-02-26 9:57 ` [PULL 06/18] tests/functional: Convert the 32-bit ppc replay avocado tests Thomas Huth
2025-02-26 9:57 ` [PULL 07/18] tests/functional: Convert the or1k " Thomas Huth
2025-02-26 9:57 ` [PULL 08/18] tests/functional: Convert the ppc64 " Thomas Huth
2025-02-26 9:57 ` [PULL 09/18] tests/functional: Convert the microblaze " Thomas Huth
2025-02-26 9:57 ` [PULL 10/18] tests/functional: Convert the m68k " Thomas Huth
2025-02-26 9:57 ` [PULL 11/18] tests/functional: Convert the arm " Thomas Huth
2025-03-07 19:08 ` Peter Maydell
2025-02-26 9:57 ` [PULL 12/18] tests/functional: Convert the alpha " Thomas Huth
2025-02-26 9:57 ` [PULL 13/18] tests/functional: Convert the s390x " Thomas Huth
2025-02-26 9:57 ` [PULL 14/18] tests/functional: Convert the aarch64 " Thomas Huth
2025-02-26 9:57 ` [PULL 15/18] tests/functional: Convert the x86_64 " Thomas Huth
2025-02-26 9:57 ` [PULL 16/18] tests/functional: Bump some arm test timeouts Thomas Huth
2025-02-26 9:57 ` [PULL 17/18] gitlab: use --refetch in check-patch/check-dco jobs Thomas Huth
2025-02-26 9:57 ` [PULL 18/18] tests/functional: Replace the ppc64 e500 advent calendar test Thomas Huth
2025-03-03 12:12 ` [PULL 00/18] Functional and other test improvements Stefan Hajnoczi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.