MAINTAINERS | 1 + tests/acceptance/machine_sparc64_sun4u.py | 35 +++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/acceptance/machine_sparc64_sun4u.py
We can use the image from the advent calendar 2018 to test the sun4u
machine. It's not using the "QEMU advent calendar" string, so we can
not use the do_test_advcal_2018() from boot_linux_console.py, thus
let's also put it into a separate file to also be able to add an
entry to the MAINTAINERS file.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
MAINTAINERS | 1 +
tests/acceptance/machine_sparc64_sun4u.py | 35 +++++++++++++++++++++++
2 files changed, 36 insertions(+)
create mode 100644 tests/acceptance/machine_sparc64_sun4u.py
diff --git a/MAINTAINERS b/MAINTAINERS
index dec252f38b..c26bc06e39 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1318,6 +1318,7 @@ F: include/hw/pci-host/sabre.h
F: hw/pci-bridge/simba.c
F: include/hw/pci-bridge/simba.h
F: pc-bios/openbios-sparc64
+F: tests/acceptance/machine_sparc64_sun4u.py
Sun4v
M: Artyom Tarasenko <atar4qemu@gmail.com>
diff --git a/tests/acceptance/machine_sparc64_sun4u.py b/tests/acceptance/machine_sparc64_sun4u.py
new file mode 100644
index 0000000000..2506eefe3f
--- /dev/null
+++ b/tests/acceptance/machine_sparc64_sun4u.py
@@ -0,0 +1,35 @@
+# Functional test that boots a Linux kernel and checks the console
+#
+# Copyright (c) 2020 Red Hat, Inc.
+#
+# Author:
+# Thomas Huth <thuth@redhat.com>
+#
+# 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 Test
+from avocado_qemu import wait_for_console_pattern
+from avocado.utils import archive
+
+class Sun4uMachine(Test):
+ """Boots the Linux kernel and checks that the console is operational"""
+
+ timeout = 90
+
+ def test_sparc64_sun4u(self):
+ """
+ :avocado: tags=arch:sparc64
+ :avocado: tags=machine:sun4u
+ """
+ tar_url = ('https://www.qemu-advent-calendar.org'
+ '/2018/download/day23.tar.xz')
+ tar_hash = '142db83cd974ffadc4f75c8a5cad5bcc5722c240'
+ file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
+ archive.extract(file_path, self.workdir)
+ self.vm.set_console()
+ self.vm.add_args('-kernel', self.workdir + '/day23/vmlinux')
+ self.vm.launch()
+ wait_for_console_pattern(self, 'Starting logging: OK')
--
2.18.1
On 7/2/20 4:10 PM, Thomas Huth wrote:
> We can use the image from the advent calendar 2018 to test the sun4u
> machine. It's not using the "QEMU advent calendar" string, so we can
> not use the do_test_advcal_2018() from boot_linux_console.py, thus
> let's also put it into a separate file to also be able to add an
> entry to the MAINTAINERS file.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> MAINTAINERS | 1 +
> tests/acceptance/machine_sparc64_sun4u.py | 35 +++++++++++++++++++++++
> 2 files changed, 36 insertions(+)
> create mode 100644 tests/acceptance/machine_sparc64_sun4u.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index dec252f38b..c26bc06e39 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1318,6 +1318,7 @@ F: include/hw/pci-host/sabre.h
> F: hw/pci-bridge/simba.c
> F: include/hw/pci-bridge/simba.h
> F: pc-bios/openbios-sparc64
> +F: tests/acceptance/machine_sparc64_sun4u.py
>
> Sun4v
> M: Artyom Tarasenko <atar4qemu@gmail.com>
> diff --git a/tests/acceptance/machine_sparc64_sun4u.py b/tests/acceptance/machine_sparc64_sun4u.py
> new file mode 100644
> index 0000000000..2506eefe3f
> --- /dev/null
> +++ b/tests/acceptance/machine_sparc64_sun4u.py
> @@ -0,0 +1,35 @@
> +# Functional test that boots a Linux kernel and checks the console
> +#
> +# Copyright (c) 2020 Red Hat, Inc.
> +#
> +# Author:
> +# Thomas Huth <thuth@redhat.com>
> +#
> +# 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 Test
> +from avocado_qemu import wait_for_console_pattern
> +from avocado.utils import archive
> +
> +class Sun4uMachine(Test):
I'd rather use Sun4uMachine(LinuxKernelTest) here, ...
> + """Boots the Linux kernel and checks that the console is operational"""
> +
> + timeout = 90
> +
> + def test_sparc64_sun4u(self):
> + """
> + :avocado: tags=arch:sparc64
> + :avocado: tags=machine:sun4u
> + """
> + tar_url = ('https://www.qemu-advent-calendar.org'
> + '/2018/download/day23.tar.xz')
> + tar_hash = '142db83cd974ffadc4f75c8a5cad5bcc5722c240'
> + file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
> + archive.extract(file_path, self.workdir)
> + self.vm.set_console()
> + self.vm.add_args('-kernel', self.workdir + '/day23/vmlinux')
... to use '-append', self.KERNEL_COMMON_COMMAND_LINE here.
> + self.vm.launch()
> + wait_for_console_pattern(self, 'Starting logging: OK')
>
$ avocado --show=app,console run -t arch:sparc64 tests/acceptance/
Fetching asset from
tests/acceptance/machine_sparc64_sun4u.py:Sun4uMachine.test_sparc64_sun4u
(1/1)
tests/acceptance/machine_sparc64_sun4u.py:Sun4uMachine.test_sparc64_sun4u:
console: OpenBIOS for Sparc64
console: Configuration device id QEMU version 1 machine id 0
console: kernel phys 404000 virt 40004000 size 0x10b7858
console: kernel cmdline
console: CPUs: 1 x SUNW,UltraSPARC-IIi
console: UUID: 00000000-0000-0000-0000-000000000000
console: Welcome to OpenBIOS v1.1 built on May 21 2020 19:15
console: Type 'help' for detailed information
console: [sparc64] Kernel already loaded
console: [ 0.004591] PROMLIB: Sun IEEE Boot Prom 'OBP 3.10.24
1999/01/01 01:01'
console: [ 0.006452] PROMLIB: Root node compatible: sun4u
console: [ 0.007859] Linux version 4.16.13 (thuth@thuth.remote.csb)
(gcc version 6.4.0 (Buildroot 2018.05.2)) #46 SMP Sun Dec 16 17:16:03
CET 2018
console: [ 0.039824] bootconsole [earlyprom0] enabled
console: [ 0.042520] ARCH: SUN4U
...
console: [ 4.823203] Booting Linux...
console: [ 7.067712] rtc-m48t59 rtc-m48t59.0: setting system clock to
2020-07-04 14:52:23 UTC (1593874343)
console: [ 7.216252] This architecture does not have kernel memory
protection.
console: Starting logging: OK
PASS (15.28 s)
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Preferably with KERNEL_COMMON_COMMAND_LINE:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Thanks for adding this test!
Phil.
On 02/07/2020 15:10, Thomas Huth wrote:
> We can use the image from the advent calendar 2018 to test the sun4u
> machine. It's not using the "QEMU advent calendar" string, so we can
> not use the do_test_advcal_2018() from boot_linux_console.py, thus
> let's also put it into a separate file to also be able to add an
> entry to the MAINTAINERS file.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> MAINTAINERS | 1 +
> tests/acceptance/machine_sparc64_sun4u.py | 35 +++++++++++++++++++++++
> 2 files changed, 36 insertions(+)
> create mode 100644 tests/acceptance/machine_sparc64_sun4u.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index dec252f38b..c26bc06e39 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1318,6 +1318,7 @@ F: include/hw/pci-host/sabre.h
> F: hw/pci-bridge/simba.c
> F: include/hw/pci-bridge/simba.h
> F: pc-bios/openbios-sparc64
> +F: tests/acceptance/machine_sparc64_sun4u.py
>
> Sun4v
> M: Artyom Tarasenko <atar4qemu@gmail.com>
> diff --git a/tests/acceptance/machine_sparc64_sun4u.py b/tests/acceptance/machine_sparc64_sun4u.py
> new file mode 100644
> index 0000000000..2506eefe3f
> --- /dev/null
> +++ b/tests/acceptance/machine_sparc64_sun4u.py
> @@ -0,0 +1,35 @@
> +# Functional test that boots a Linux kernel and checks the console
> +#
> +# Copyright (c) 2020 Red Hat, Inc.
> +#
> +# Author:
> +# Thomas Huth <thuth@redhat.com>
> +#
> +# 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 Test
> +from avocado_qemu import wait_for_console_pattern
> +from avocado.utils import archive
> +
> +class Sun4uMachine(Test):
> + """Boots the Linux kernel and checks that the console is operational"""
> +
> + timeout = 90
> +
> + def test_sparc64_sun4u(self):
> + """
> + :avocado: tags=arch:sparc64
> + :avocado: tags=machine:sun4u
> + """
> + tar_url = ('https://www.qemu-advent-calendar.org'
> + '/2018/download/day23.tar.xz')
> + tar_hash = '142db83cd974ffadc4f75c8a5cad5bcc5722c240'
> + file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
> + archive.extract(file_path, self.workdir)
> + self.vm.set_console()
> + self.vm.add_args('-kernel', self.workdir + '/day23/vmlinux')
> + self.vm.launch()
> + wait_for_console_pattern(self, 'Starting logging: OK')
Thanks Thomas!
I've just tested this and the patch appears to work fine and passes here:
Fetching asset from
tests/acceptance/machine_sparc64_sun4u.py:Sun4uMachine.test_sparc64_sun4u
JOB ID : c719db83a6011ed88a485b177079d0add26f6f81
JOB LOG :
/home/build/src/qemu/git/qemu/tests/results/job-2020-07-02T21.25-c719db8/job.log
(01/11) tests/acceptance/empty_cpu_model.py:EmptyCPUModel.test: CANCEL: No QEMU
binary defined or found in the build tree (0.00 s)
(02/11) tests/acceptance/machine_sparc64_sun4u.py:Sun4uMachine.test_sparc64_sun4u:
PASS (18.74 s)
...
...
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
ATB,
Mark.
© 2016 - 2026 Red Hat, Inc.