Message ID | 20200702141050.30073-1-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/acceptance: Add a test for the sun4u sparc64 machine | expand |
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.
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.
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')
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