Message ID | 20240822114146.86838-1-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [v2] tests/functional: Convert Aarch64 SBSA-Ref avocado tests | expand |
On 22/08/2024 13.41, Philippe Mathieu-Daudé wrote: > Straight forward conversion. Since SBSA_FLASH files are not > tarballs, use lzma_uncompress() method. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > Based-on: <20240821082748.65853-1-thuth@redhat.com> > --- > MAINTAINERS | 2 +- > tests/functional/meson.build | 5 + > .../test_aarch64_sbsaref.py} | 144 ++++++------------ > 3 files changed, 55 insertions(+), 96 deletions(-) > rename tests/{avocado/machine_aarch64_sbsaref.py => functional/test_aarch64_sbsaref.py} (56%) > mode change 100644 => 100755 Thanks for your help with the conversions! Reviewed-by: Thomas Huth <thuth@redhat.com>
On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: > # Timeouts for individual tests that can be slow e.g. with debugging enabled > test_timeouts = { > + 'aarch64_sbsaref' : 180, What kind of machine is able to run those tests in 180s? I bumped them to 2400s and got timeout (Macbook with M1 Pro). "make check-avocado" (with some AVOCADO_* vars to limit list of tests) shown me which test is run and pass/fail for each. "make check-functional-aarch64 V=1" shows me "1/4 qemu:func-thorough+func-aarch64-thorough+thorough / func-aarch64-aarch64_sbsaref" and timeouts without information which tests pass, which fail. Maybe for QEMU project this is a progress. For me it is moving tests from working ones to "sorry, timeout, find out why" ones.
On 22/08/2024 16.06, Marcin Juszkiewicz wrote: > On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: >> # Timeouts for individual tests that can be slow e.g. with debugging >> enabled >> test_timeouts = { >> + 'aarch64_sbsaref' : 180, > > What kind of machine is able to run those tests in 180s? I bumped them to > 2400s and got timeout (Macbook with M1 Pro). > > "make check-avocado" (with some AVOCADO_* vars to limit list of tests) shown > me which test is run and pass/fail for each. > > "make check-functional-aarch64 V=1" shows me "1/4 > qemu:func-thorough+func-aarch64-thorough+thorough / > func-aarch64-aarch64_sbsaref" and timeouts without information which tests > pass, which fail. Try running "make check-functional V=1" ... it should show you the individual subtests, so you hopefully can conclude from the tests that succeeded to the one that was hanging. Thomas
On 22/8/24 16:06, Marcin Juszkiewicz wrote: > On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: >> # Timeouts for individual tests that can be slow e.g. with debugging >> enabled >> test_timeouts = { >> + 'aarch64_sbsaref' : 180, > > What kind of machine is able to run those tests in 180s? I bumped them > to 2400s and got timeout (Macbook with M1 Pro). > > "make check-avocado" (with some AVOCADO_* vars to limit list of tests) > shown me which test is run and pass/fail for each. > > "make check-functional-aarch64 V=1" shows me "1/4 > qemu:func-thorough+func-aarch64-thorough+thorough / > func-aarch64-aarch64_sbsaref" and timeouts without information which > tests pass, which fail. > > Maybe for QEMU project this is a progress. For me it is moving tests > from working ones to "sorry, timeout, find out why" ones. Sorry for the annoyance of switching from one framework to another one :/ Are you using Linux on your Macbook with M1 Pro? I'm using macOS and these tests currently don't work, so for me this is a huge win. Most of the (long) time was spent in downloading the assets. IIUC there is a way to pre-download without using the test timer (apparently Richard and Daniel use it) but I haven't found the way yet. I'll check with Thomas how to tune these timeouts and return back to you. Regards, Phil.
On 22/08/2024 16.39, Philippe Mathieu-Daudé wrote: > On 22/8/24 16:06, Marcin Juszkiewicz wrote: >> On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: >>> # Timeouts for individual tests that can be slow e.g. with debugging >>> enabled >>> test_timeouts = { >>> + 'aarch64_sbsaref' : 180, >> >> What kind of machine is able to run those tests in 180s? I bumped them to >> 2400s and got timeout (Macbook with M1 Pro). >> >> "make check-avocado" (with some AVOCADO_* vars to limit list of tests) >> shown me which test is run and pass/fail for each. >> >> "make check-functional-aarch64 V=1" shows me "1/4 >> qemu:func-thorough+func-aarch64-thorough+thorough / >> func-aarch64-aarch64_sbsaref" and timeouts without information which tests >> pass, which fail. >> >> Maybe for QEMU project this is a progress. For me it is moving tests from >> working ones to "sorry, timeout, find out why" ones. > > Sorry for the annoyance of switching from one framework to another > one :/ Are you using Linux on your Macbook with M1 Pro? I'm using > macOS and these tests currently don't work, so for me this is a > huge win. > > Most of the (long) time was spent in downloading the assets. > > IIUC there is a way to pre-download without using the test timer > (apparently Richard and Daniel use it) but I haven't found the way > yet. It's done automatically when you run "make check-functional" ... but I think it might get skipped if you run "make check-functional-<target>". Anyway, you can do the precaching manually by running: make precache-functional HTH, Thomas
On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: > Straight forward conversion. Since SBSA_FLASH files are not > tarballs, use lzma_uncompress() method. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > Based-on: <20240821082748.65853-1-thuth@redhat.com> > --- > diff --git a/tests/avocado/machine_aarch64_sbsaref.py b/tests/functional/test_aarch64_sbsaref.py > old mode 100644 > new mode 100755 > similarity index 56% > rename from tests/avocado/machine_aarch64_sbsaref.py > rename to tests/functional/test_aarch64_sbsaref.py > index f8bf40c192..6728e5f92a > --- a/tests/avocado/machine_aarch64_sbsaref.py > +++ b/tests/functional/test_aarch64_sbsaref.py > @@ -44,47 +55,31 @@ def fetch_firmware(self): > """ > > # Secure BootRom (TF-A code) > - fs0_xz_url = ( > - "https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/" > - "20240619-148232/edk2/SBSA_FLASH0.fd.xz" > - ) > - fs0_xz_hash = "0c954842a590988f526984de22e21ae0ab9cb351a0c99a8a58e928f0c7359cf7" > - tar_xz_path = self.fetch_asset(fs0_xz_url, asset_hash=fs0_xz_hash, > - algorithm='sha256') > - archive.extract(tar_xz_path, self.workdir) > + fs0_xz_path = self.ASSET_FLASH0.fetch() > fs0_path = os.path.join(self.workdir, "SBSA_FLASH0.fd") > + lzma_uncompress(fs0_xz_path, fs0_path) > > # Non-secure rom (UEFI and EFI variables) > - fs1_xz_url = ( > - "https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/" > - "20240619-148232/edk2/SBSA_FLASH1.fd.xz" > - ) > - fs1_xz_hash = "c6ec39374c4d79bb9e9cdeeb6db44732d90bb4a334cec92002b3f4b9cac4b5ee" > - tar_xz_path = self.fetch_asset(fs1_xz_url, asset_hash=fs1_xz_hash, > - algorithm='sha256') > - archive.extract(tar_xz_path, self.workdir) > + fs1_xz_path = self.ASSET_FLASH0.fetch() Here you want ASSET_FLASH1 not ASSET_FLASH0. That's why it timed out - system was hanging on exit from TF-A to EDK2. > fs1_path = os.path.join(self.workdir, "SBSA_FLASH1.fd") > + lzma_uncompress(fs1_xz_path, fs1_path)
On 22.08.2024 16:39, Philippe Mathieu-Daudé wrote: > On 22/8/24 16:06, Marcin Juszkiewicz wrote: >> Maybe for QEMU project this is a progress. For me it is moving tests >> from working ones to "sorry, timeout, find out why" ones. OK, problem was found (check my previous mail). Tests took 222s on Macbook with M1 Pro. Not looked yet how to enable skipped ones. ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_cortex_a57 OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_max SKIP ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_max_pauth_impdef OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_max_pauth_off OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_neoverse_n1 OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_edk2_firmware OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_cortex_a57 OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_max SKIP ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_max_pauth_impdef SKIP ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_max_pauth_off OK ▶ 1/4 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_neoverse_n1 OK 1/4 qemu:func-thorough+func-aarch64-thorough+thorough / func-aarch64-aarch64_sbsaref OK 222.88s 8 subtests passed > Sorry for the annoyance of switching from one framework to another > one :/ Project wants to change framework so I am not against it. Just asking questions. > Are you using Linux on your Macbook with M1 Pro? I'm using > macOS and these tests currently don't work, so for me this is a > huge win. I am using Fedora Asahi Remix on this Macbook for over a year. Total use of MacOS was probably a few hours total (including waiting for MacOS updates to fetch).
On 22/8/24 20:48, Marcin Juszkiewicz wrote: > On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: >> Straight forward conversion. Since SBSA_FLASH files are not >> tarballs, use lzma_uncompress() method. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> --- >> Based-on: <20240821082748.65853-1-thuth@redhat.com> >> --- > >> diff --git a/tests/avocado/machine_aarch64_sbsaref.py >> b/tests/functional/test_aarch64_sbsaref.py >> old mode 100644 >> new mode 100755 >> similarity index 56% >> rename from tests/avocado/machine_aarch64_sbsaref.py >> rename to tests/functional/test_aarch64_sbsaref.py >> index f8bf40c192..6728e5f92a >> --- a/tests/avocado/machine_aarch64_sbsaref.py >> +++ b/tests/functional/test_aarch64_sbsaref.py > >> @@ -44,47 +55,31 @@ def fetch_firmware(self): >> """ >> # Secure BootRom (TF-A code) >> - fs0_xz_url = ( >> - >> "https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/" >> - "20240619-148232/edk2/SBSA_FLASH0.fd.xz" >> - ) >> - fs0_xz_hash = >> "0c954842a590988f526984de22e21ae0ab9cb351a0c99a8a58e928f0c7359cf7" >> - tar_xz_path = self.fetch_asset(fs0_xz_url, >> asset_hash=fs0_xz_hash, >> - algorithm='sha256') >> - archive.extract(tar_xz_path, self.workdir) >> + fs0_xz_path = self.ASSET_FLASH0.fetch() >> fs0_path = os.path.join(self.workdir, "SBSA_FLASH0.fd") >> + lzma_uncompress(fs0_xz_path, fs0_path) >> # Non-secure rom (UEFI and EFI variables) >> - fs1_xz_url = ( >> - >> "https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/" >> - "20240619-148232/edk2/SBSA_FLASH1.fd.xz" >> - ) >> - fs1_xz_hash = >> "c6ec39374c4d79bb9e9cdeeb6db44732d90bb4a334cec92002b3f4b9cac4b5ee" >> - tar_xz_path = self.fetch_asset(fs1_xz_url, >> asset_hash=fs1_xz_hash, >> - algorithm='sha256') >> - archive.extract(tar_xz_path, self.workdir) >> + fs1_xz_path = self.ASSET_FLASH0.fetch() > > Here you want ASSET_FLASH1 not ASSET_FLASH0. That's why it timed out - > system was hanging on exit from TF-A to EDK2. Oops... Thanks you for debugging / noticing this! > >> fs1_path = os.path.join(self.workdir, "SBSA_FLASH1.fd") >> + lzma_uncompress(fs1_xz_path, fs1_path) >
On 22/8/24 16:06, Marcin Juszkiewicz wrote: > On 22.08.2024 13:41, Philippe Mathieu-Daudé wrote: >> # Timeouts for individual tests that can be slow e.g. with debugging >> enabled >> test_timeouts = { >> + 'aarch64_sbsaref' : 180, > > What kind of machine is able to run those tests in 180s? I bumped them > to 2400s and got timeout (Macbook with M1 Pro). Indeed with Avocado this timeout was per test function, now it is per test class. Having 11 test functions, for a 1-1 change we'd need 180 * 11 = 1980 seconds. I made a comment on Thomas/Daniel's series this patch is based on: https://lore.kernel.org/qemu-devel/4b4018c6-4a2b-4250-bb53-be9cc5df7cb4@linaro.org/ I could run all the tests in <300sec but for safety, should I keep Avocado equivalent and use 2000s? ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_max OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_max_pauth_impdef OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_max_pauth_off OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_alpine_linux_neoverse_n1 OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_edk2_firmware OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_cortex_a57 OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_max OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_max_pauth_impdef OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_max_pauth_off OK ▶ 1/5 test_aarch64_sbsaref.Aarch64SbsarefMachine.test_sbsaref_openbsd73_neoverse_n1 OK 1/5 qemu:func-thorough+func-aarch64-thorough+thorough / func-aarch64-aarch64_sbsaref OK 241.79s 11 subtests passed > "make check-avocado" (with some AVOCADO_* vars to limit list of tests) > shown me which test is run and pass/fail for each. > > "make check-functional-aarch64 V=1" shows me "1/4 > qemu:func-thorough+func-aarch64-thorough+thorough / > func-aarch64-aarch64_sbsaref" and timeouts without information which > tests pass, which fail. > > Maybe for QEMU project this is a progress. For me it is moving tests > from working ones to "sorry, timeout, find out why" ones.
diff --git a/MAINTAINERS b/MAINTAINERS index 91e5b061bf..c720c02800 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -971,7 +971,7 @@ F: hw/misc/sbsa_ec.c F: hw/watchdog/sbsa_gwdt.c F: include/hw/watchdog/sbsa_gwdt.h F: docs/system/arm/sbsa.rst -F: tests/avocado/machine_aarch64_sbsaref.py +F: tests/functional/test_aarch64_sbsaref.py Sharp SL-5500 (Collie) PDA M: Peter Maydell <peter.maydell@linaro.org> diff --git a/tests/functional/meson.build b/tests/functional/meson.build index f1fce045fc..2445239a5c 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -11,6 +11,7 @@ endif # Timeouts for individual tests that can be slow e.g. with debugging enabled test_timeouts = { + 'aarch64_sbsaref' : 180, 'acpi_bits' : 240, 'netdev_ethtool' : 180, 'ppc_40p' : 240, @@ -26,6 +27,10 @@ tests_generic = [ 'version', ] +tests_aarch64_thorough = [ + 'aarch64_sbsaref', +] + tests_arm_thorough = [ 'arm_canona1100', 'arm_integratorcp', diff --git a/tests/avocado/machine_aarch64_sbsaref.py b/tests/functional/test_aarch64_sbsaref.py old mode 100644 new mode 100755 similarity index 56% rename from tests/avocado/machine_aarch64_sbsaref.py rename to tests/functional/test_aarch64_sbsaref.py index f8bf40c192..6728e5f92a --- a/tests/avocado/machine_aarch64_sbsaref.py +++ b/tests/functional/test_aarch64_sbsaref.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 +# # Functional test that boots a Linux kernel and checks the console # # SPDX-FileCopyrightText: 2023-2024 Linaro Ltd. @@ -8,12 +10,11 @@ import os -from avocado import skipUnless -from avocado.utils import archive - -from avocado_qemu import QemuSystemTest -from avocado_qemu import wait_for_console_pattern -from avocado_qemu import interrupt_interactive_console_until_pattern +from qemu_test import QemuSystemTest, Asset +from qemu_test import wait_for_console_pattern +from qemu_test import interrupt_interactive_console_until_pattern +from qemu_test.utils import lzma_uncompress +from unittest import skipUnless class Aarch64SbsarefMachine(QemuSystemTest): @@ -28,6 +29,16 @@ class Aarch64SbsarefMachine(QemuSystemTest): timeout = 180 + ASSET_FLASH0 = Asset( + ('https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/' + '20240619-148232/edk2/SBSA_FLASH0.fd.xz'), + '0c954842a590988f526984de22e21ae0ab9cb351a0c99a8a58e928f0c7359cf7') + + ASSET_FLASH1 = Asset( + ('https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/' + '20240619-148232/edk2/SBSA_FLASH1.fd.xz'), + 'c6ec39374c4d79bb9e9cdeeb6db44732d90bb4a334cec92002b3f4b9cac4b5ee') + def fetch_firmware(self): """ Flash volumes generated using: @@ -44,47 +55,31 @@ def fetch_firmware(self): """ # Secure BootRom (TF-A code) - fs0_xz_url = ( - "https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/" - "20240619-148232/edk2/SBSA_FLASH0.fd.xz" - ) - fs0_xz_hash = "0c954842a590988f526984de22e21ae0ab9cb351a0c99a8a58e928f0c7359cf7" - tar_xz_path = self.fetch_asset(fs0_xz_url, asset_hash=fs0_xz_hash, - algorithm='sha256') - archive.extract(tar_xz_path, self.workdir) + fs0_xz_path = self.ASSET_FLASH0.fetch() fs0_path = os.path.join(self.workdir, "SBSA_FLASH0.fd") + lzma_uncompress(fs0_xz_path, fs0_path) # Non-secure rom (UEFI and EFI variables) - fs1_xz_url = ( - "https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/" - "20240619-148232/edk2/SBSA_FLASH1.fd.xz" - ) - fs1_xz_hash = "c6ec39374c4d79bb9e9cdeeb6db44732d90bb4a334cec92002b3f4b9cac4b5ee" - tar_xz_path = self.fetch_asset(fs1_xz_url, asset_hash=fs1_xz_hash, - algorithm='sha256') - archive.extract(tar_xz_path, self.workdir) + fs1_xz_path = self.ASSET_FLASH0.fetch() fs1_path = os.path.join(self.workdir, "SBSA_FLASH1.fd") + lzma_uncompress(fs1_xz_path, fs1_path) for path in [fs0_path, fs1_path]: with open(path, "ab+") as fd: fd.truncate(256 << 20) # Expand volumes to 256MiB + self.set_machine('sbsa-ref') self.vm.set_console() self.vm.add_args( - "-drive", - f"if=pflash,file={fs0_path},format=raw", - "-drive", - f"if=pflash,file={fs1_path},format=raw", - "-machine", - "sbsa-ref", + "-drive", f"if=pflash,file={fs0_path},format=raw", + "-drive", f"if=pflash,file={fs1_path},format=raw", ) def test_sbsaref_edk2_firmware(self): - """ - :avocado: tags=cpu:cortex-a57 - """ self.fetch_firmware() + + self.vm.add_args('-cpu', 'cortex-a57') self.vm.launch() # TF-A boot sequence: @@ -110,87 +105,62 @@ def test_sbsaref_edk2_firmware(self): wait_for_console_pattern(self, "UEFI firmware (version 1.0") interrupt_interactive_console_until_pattern(self, "QEMU SBSA-REF Machine") + + ASSET_ALPINE_ISO = Asset( + ('https://dl-cdn.alpinelinux.org/' + 'alpine/v3.17/releases/aarch64/alpine-standard-3.17.2-aarch64.iso'), + '5a36304ecf039292082d92b48152a9ec21009d3a62f459de623e19c4bd9dc027') + # This tests the whole boot chain from EFI to Userspace # We only boot a whole OS for the current top level CPU and GIC # Other test profiles should use more minimal boots def boot_alpine_linux(self, cpu): self.fetch_firmware() - iso_url = ( - "https://dl-cdn.alpinelinux.org/" - "alpine/v3.17/releases/aarch64/alpine-standard-3.17.2-aarch64.iso" - ) - - iso_hash = "5a36304ecf039292082d92b48152a9ec21009d3a62f459de623e19c4bd9dc027" - iso_path = self.fetch_asset(iso_url, algorithm="sha256", asset_hash=iso_hash) + iso_path = self.ASSET_ALPINE_ISO.fetch() self.vm.set_console() self.vm.add_args( - "-cpu", - cpu, - "-drive", - f"file={iso_path},media=cdrom,format=raw", + "-cpu", cpu, + "-drive", f"file={iso_path},media=cdrom,format=raw", ) self.vm.launch() wait_for_console_pattern(self, "Welcome to Alpine Linux 3.17") def test_sbsaref_alpine_linux_cortex_a57(self): - """ - :avocado: tags=cpu:cortex-a57 - :avocado: tags=os:linux - """ self.boot_alpine_linux("cortex-a57") def test_sbsaref_alpine_linux_neoverse_n1(self): - """ - :avocado: tags=cpu:neoverse-n1 - :avocado: tags=os:linux - """ self.boot_alpine_linux("neoverse-n1") def test_sbsaref_alpine_linux_max_pauth_off(self): - """ - :avocado: tags=cpu:max - :avocado: tags=os:linux - """ self.boot_alpine_linux("max,pauth=off") def test_sbsaref_alpine_linux_max_pauth_impdef(self): - """ - :avocado: tags=cpu:max - :avocado: tags=os:linux - """ self.boot_alpine_linux("max,pauth-impdef=on") - @skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') + @skipUnless(os.getenv('QEMU_TEST_TIMEOUT_EXPECTED'), 'Test might timeout') def test_sbsaref_alpine_linux_max(self): - """ - :avocado: tags=cpu:max - :avocado: tags=os:linux - """ self.boot_alpine_linux("max") + ASSET_OPENBSD_ISO = Asset( + ('https://cdn.openbsd.org/pub/OpenBSD/7.3/arm64/miniroot73.img'), + '7fc2c75401d6f01fbfa25f4953f72ad7d7c18650056d30755c44b9c129b707e5') + # This tests the whole boot chain from EFI to Userspace # We only boot a whole OS for the current top level CPU and GIC # Other test profiles should use more minimal boots def boot_openbsd73(self, cpu): self.fetch_firmware() - img_url = ( - "https://cdn.openbsd.org/pub/OpenBSD/7.3/arm64/miniroot73.img" - ) - - img_hash = "7fc2c75401d6f01fbfa25f4953f72ad7d7c18650056d30755c44b9c129b707e5" - img_path = self.fetch_asset(img_url, algorithm="sha256", asset_hash=img_hash) + img_path = self.ASSET_OPENBSD_ISO.fetch() self.vm.set_console() self.vm.add_args( - "-cpu", - cpu, - "-drive", - f"file={img_path},format=raw,snapshot=on", + "-cpu", cpu, + "-drive", f"file={img_path},format=raw,snapshot=on", ) self.vm.launch() @@ -199,38 +169,22 @@ def boot_openbsd73(self, cpu): " 7.3 installation program.") def test_sbsaref_openbsd73_cortex_a57(self): - """ - :avocado: tags=cpu:cortex-a57 - :avocado: tags=os:openbsd - """ self.boot_openbsd73("cortex-a57") def test_sbsaref_openbsd73_neoverse_n1(self): - """ - :avocado: tags=cpu:neoverse-n1 - :avocado: tags=os:openbsd - """ self.boot_openbsd73("neoverse-n1") def test_sbsaref_openbsd73_max_pauth_off(self): - """ - :avocado: tags=cpu:max - :avocado: tags=os:openbsd - """ self.boot_openbsd73("max,pauth=off") - @skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') + @skipUnless(os.getenv('QEMU_TEST_TIMEOUT_EXPECTED'), 'Test might timeout') def test_sbsaref_openbsd73_max_pauth_impdef(self): - """ - :avocado: tags=cpu:max - :avocado: tags=os:openbsd - """ self.boot_openbsd73("max,pauth-impdef=on") - @skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') + @skipUnless(os.getenv('QEMU_TEST_TIMEOUT_EXPECTED'), 'Test might timeout') def test_sbsaref_openbsd73_max(self): - """ - :avocado: tags=cpu:max - :avocado: tags=os:openbsd - """ self.boot_openbsd73("max") + + +if __name__ == '__main__': + QemuSystemTest.main()
Straight forward conversion. Since SBSA_FLASH files are not tarballs, use lzma_uncompress() method. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- Based-on: <20240821082748.65853-1-thuth@redhat.com> --- MAINTAINERS | 2 +- tests/functional/meson.build | 5 + .../test_aarch64_sbsaref.py} | 144 ++++++------------ 3 files changed, 55 insertions(+), 96 deletions(-) rename tests/{avocado/machine_aarch64_sbsaref.py => functional/test_aarch64_sbsaref.py} (56%) mode change 100644 => 100755