From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Stefan Hajnoczi" <stefanha@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: [PULL 1/7] tests/functional: Convert the aarch64 xen test to the functional framework
Date: Tue, 11 Feb 2025 13:31:38 +0100 [thread overview]
Message-ID: <20250211123144.37617-2-thuth@redhat.com> (raw)
In-Reply-To: <20250211123144.37617-1-thuth@redhat.com>
This test just needs the adaption for the asset handling, then
we can move it to the functional framework.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20250207144409.220006-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
MAINTAINERS | 2 +-
tests/avocado/boot_xen.py | 95 ----------------------------
tests/functional/meson.build | 1 +
tests/functional/test_aarch64_xen.py | 90 ++++++++++++++++++++++++++
4 files changed, 92 insertions(+), 96 deletions(-)
delete mode 100644 tests/avocado/boot_xen.py
create mode 100755 tests/functional/test_aarch64_xen.py
diff --git a/MAINTAINERS b/MAINTAINERS
index fefabe0cee..ebb415bc40 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2539,7 +2539,7 @@ M: Alex Bennée <alex.bennee@linaro.org>
S: Maintained
F: hw/core/guest-loader.c
F: docs/system/guest-loader.rst
-F: tests/avocado/boot_xen.py
+F: tests/functional/test_aarch64_xen.py
Intel Hexadecimal Object File Loader
M: Su Hang <suhang16@mails.ucas.ac.cn>
diff --git a/tests/avocado/boot_xen.py b/tests/avocado/boot_xen.py
deleted file mode 100644
index 490a127a3e..0000000000
--- a/tests/avocado/boot_xen.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# Functional test that boots a Xen hypervisor with a domU kernel and
-# checks the console output is vaguely sane .
-#
-# Copyright (c) 2020 Linaro
-#
-# Author:
-# Alex Bennée <alex.bennee@linaro.org>
-#
-# SPDX-License-Identifier: GPL-2.0-or-later
-#
-# This work is licensed under the terms of the GNU GPL, version 2 or
-# later. See the COPYING file in the top-level directory.
-
-import os
-
-from avocado_qemu import wait_for_console_pattern
-from boot_linux_console import LinuxKernelTest
-
-
-class BootXen(LinuxKernelTest):
- """
- Boots a Xen hypervisor with a Linux DomU kernel.
-
- :avocado: tags=arch:aarch64
- :avocado: tags=accel:tcg
- :avocado: tags=cpu:cortex-a57
- :avocado: tags=machine:virt
- """
-
- timeout = 90
- XEN_COMMON_COMMAND_LINE = 'dom0_mem=128M loglvl=all guest_loglvl=all'
-
- def setUp(self):
- super(BootXen, self).setUp()
-
- # Using my own built kernel - which works
- kernel_url = ('https://fileserver.linaro.org/'
- 's/JSsewXGZ6mqxPr5/download?path=%2F&files='
- 'linux-5.9.9-arm64-ajb')
- kernel_sha1 = '4f92bc4b9f88d5ab792fa7a43a68555d344e1b83'
- self.kernel_path = self.fetch_asset(kernel_url,
- asset_hash=kernel_sha1)
-
- def launch_xen(self, xen_path):
- """
- Launch Xen with a dom0 guest kernel
- """
- self.log.info("launch with xen_path: %s", xen_path)
-
- self.vm.set_console()
-
- self.vm.add_args('-machine', 'virtualization=on',
- '-m', '768',
- '-kernel', xen_path,
- '-append', self.XEN_COMMON_COMMAND_LINE,
- '-device',
- 'guest-loader,addr=0x47000000,kernel=%s,bootargs=console=hvc0'
- % (self.kernel_path))
-
- self.vm.launch()
-
- console_pattern = 'VFS: Cannot open root device'
- wait_for_console_pattern(self, console_pattern, "Panic on CPU 0:")
-
- def test_arm64_xen_411_and_dom0(self):
- # archive of file from https://deb.debian.org/debian/pool/main/x/xen/
- xen_url = ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/'
- 'download?path=%2F&files='
- 'xen-hypervisor-4.11-arm64_4.11.4%2B37-g3263f257ca-1_arm64.deb')
- xen_sha1 = '034e634d4416adbad1212d59b62bccdcda63e62a'
- xen_deb = self.fetch_asset(xen_url, asset_hash=xen_sha1)
- xen_path = self.extract_from_deb(xen_deb, "/boot/xen-4.11-arm64")
-
- self.launch_xen(xen_path)
-
- def test_arm64_xen_414_and_dom0(self):
- # archive of file from https://deb.debian.org/debian/pool/main/x/xen/
- xen_url = ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/'
- 'download?path=%2F&files='
- 'xen-hypervisor-4.14-arm64_4.14.0%2B80-gd101b417b7-1_arm64.deb')
- xen_sha1 = 'b9d209dd689ed2b393e625303a225badefec1160'
- xen_deb = self.fetch_asset(xen_url, asset_hash=xen_sha1)
- xen_path = self.extract_from_deb(xen_deb, "/boot/xen-4.14-arm64")
-
- self.launch_xen(xen_path)
-
- def test_arm64_xen_415_and_dom0(self):
- xen_url = ('https://fileserver.linaro.org/'
- 's/JSsewXGZ6mqxPr5/download'
- '?path=%2F&files=xen-upstream-4.15-unstable.deb')
- xen_sha1 = 'fc191172b85cf355abb95d275a24cc0f6d6579d8'
- xen_deb = self.fetch_asset(xen_url, asset_hash=xen_sha1)
- xen_path = self.extract_from_deb(xen_deb, "/boot/xen-4.15-unstable")
-
- self.launch_xen(xen_path)
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 3f085bfbca..e595508bfa 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -77,6 +77,7 @@ tests_aarch64_system_thorough = [
'aarch64_tcg_plugins',
'aarch64_tuxrun',
'aarch64_virt',
+ 'aarch64_xen',
'aarch64_xlnx_versal',
'multiprocess',
]
diff --git a/tests/functional/test_aarch64_xen.py b/tests/functional/test_aarch64_xen.py
new file mode 100755
index 0000000000..339904221b
--- /dev/null
+++ b/tests/functional/test_aarch64_xen.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python3
+#
+# Functional test that boots a Xen hypervisor with a domU kernel and
+# checks the console output is vaguely sane .
+#
+# Copyright (c) 2020 Linaro
+#
+# Author:
+# Alex Bennée <alex.bennee@linaro.org>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# 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 Asset, LinuxKernelTest, wait_for_console_pattern
+
+
+class BootXen(LinuxKernelTest):
+ """
+ Boots a Xen hypervisor with a Linux DomU kernel.
+ """
+
+ timeout = 90
+ XEN_COMMON_COMMAND_LINE = 'dom0_mem=128M loglvl=all guest_loglvl=all'
+
+ ASSET_KERNEL = Asset(
+ ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/'
+ 'download?path=%2F&files=linux-5.9.9-arm64-ajb'),
+ '00366fa51ea957c19462d2e2aefd480bef80ce727120e714ae48e0c88f261edb')
+
+ def launch_xen(self, xen_path):
+ """
+ Launch Xen with a dom0 guest kernel
+ """
+ self.set_machine('virt')
+ self.cpu = "cortex-a57"
+ self.kernel_path = self.ASSET_KERNEL.fetch()
+ self.log.info("launch with xen_path: %s", xen_path)
+
+ self.vm.set_console()
+
+ self.vm.add_args('-machine', 'virtualization=on',
+ '-m', '768',
+ '-kernel', xen_path,
+ '-append', self.XEN_COMMON_COMMAND_LINE,
+ '-device',
+ 'guest-loader,addr=0x47000000,kernel=%s,bootargs=console=hvc0'
+ % (self.kernel_path))
+
+ self.vm.launch()
+
+ console_pattern = 'VFS: Cannot open root device'
+ wait_for_console_pattern(self, console_pattern, "Panic on CPU 0:")
+
+ ASSET_XEN_4_11 = Asset(
+ ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&'
+ 'files=xen-hypervisor-4.11-arm64_4.11.4%2B37-g3263f257ca-1_arm64.deb'),
+ 'b745c2631342f9fcc0147ddc364edb62c20ecfebd430e5a3546e7d7c6891c0bc')
+
+ def test_arm64_xen_411_and_dom0(self):
+ # archive of file from https://deb.debian.org/debian/pool/main/x/xen/
+ xen_path = self.archive_extract(self.ASSET_XEN_4_11, format='deb',
+ member="boot/xen-4.11-arm64")
+ self.launch_xen(xen_path)
+
+ ASSET_XEN_4_14 = Asset(
+ ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&'
+ 'files=xen-hypervisor-4.14-arm64_4.14.0%2B80-gd101b417b7-1_arm64.deb'),
+ 'e930a3293248edabd367d5b4b3b6448b9c99c057096ea8b47228a7870661d5cb')
+
+ def test_arm64_xen_414_and_dom0(self):
+ # archive of file from https://deb.debian.org/debian/pool/main/x/xen/
+ xen_path = self.archive_extract(self.ASSET_XEN_4_14, format='deb',
+ member="boot/xen-4.14-arm64")
+ self.launch_xen(xen_path)
+
+ ASSET_XEN_4_15 = Asset(
+ ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&'
+ 'files=xen-upstream-4.15-unstable.deb'),
+ '2a9a8af8acf0231844657cc28baab95bd918b0ee2d493ee4ee6f8846e1358bc9')
+
+ def test_arm64_xen_415_and_dom0(self):
+ xen_path = self.archive_extract(self.ASSET_XEN_4_15, format='deb',
+ member="boot/xen-4.15-unstable")
+ self.launch_xen(xen_path)
+
+
+if __name__ == '__main__':
+ LinuxKernelTest.main()
--
2.48.1
next prev parent reply other threads:[~2025-02-11 12:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-11 12:31 [PULL 0/7] Functional tests and Gitlab-CI patches Thomas Huth
2025-02-11 12:31 ` Thomas Huth [this message]
2025-02-11 12:31 ` [PULL 2/7] tests/functional/test_aarch64_virt: Fix vulkan test without egl-headless Thomas Huth
2025-02-11 12:31 ` [PULL 3/7] tests/functional: Convert the hotplug_blk avocado test Thomas Huth
2025-02-11 12:31 ` [PULL 4/7] tests/functional: Add a ppc sam460ex test Thomas Huth
2025-02-11 14:38 ` BALATON Zoltan
2025-02-11 12:31 ` [PULL 5/7] gitlab: don't fail cirrus CI jobs when credits are exhausted Thomas Huth
2025-02-11 12:31 ` [PULL 6/7] gitlab: use new(ish) cirrus-vars command for creating config Thomas Huth
2025-02-11 12:31 ` [PULL 7/7] gitlab-ci.d/cirrus: Update the FreeBSD job to v14.2 Thomas Huth
2025-02-12 13:45 ` [PULL 0/7] Functional tests and Gitlab-CI patches Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250211123144.37617-2-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.