Message ID | 20240730170347.4103919-21-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | Convert avocado tests to normal Python unittests | expand |
Thanks for doing this. I have a fix for this problem, it's a bug with the test harness code but was not merged yet. I'll re-send it. Thanks, Nick On Wed Jul 31, 2024 at 3:03 AM AEST, Daniel P. Berrangé wrote: > From: Thomas Huth <thuth@redhat.com> > > Note: The original Avocado test seems currently to be broken, it hangs > when the guest is trying to install additional packages. So mark it as > broken for now until it gets fixed. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > .../test_ppc64_hv.py} | 48 ++++++++----------- > 1 file changed, 20 insertions(+), 28 deletions(-) > rename tests/{avocado/ppc_hv_tests.py => functional/test_ppc64_hv.py} (88%) > mode change 100644 => 100755 > > diff --git a/tests/avocado/ppc_hv_tests.py b/tests/functional/test_ppc64_hv.py > old mode 100644 > new mode 100755 > similarity index 88% > rename from tests/avocado/ppc_hv_tests.py > rename to tests/functional/test_ppc64_hv.py > index bf8822bb97..a45657c87e > --- a/tests/avocado/ppc_hv_tests.py > +++ b/tests/functional/test_ppc64_hv.py > @@ -1,3 +1,5 @@ > +#!/usr/bin/env python3 > +# > # Tests that specifically try to exercise hypervisor features of the > # target machines. powernv supports the Power hypervisor ISA, and > # pseries supports the nested-HV hypervisor spec. > @@ -7,10 +9,10 @@ > # 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 avocado import skipIf, skipUnless > -from avocado.utils import archive > -from avocado_qemu import QemuSystemTest > -from avocado_qemu import wait_for_console_pattern, exec_command > +from unittest import skipIf, skipUnless > +from qemu_test.utils import archive_extract > +from qemu_test import QemuSystemTest, Asset > +from qemu_test import wait_for_console_pattern, exec_command > import os > import time > import subprocess > @@ -47,7 +49,7 @@ def missing_deps(): > @skipIf(missing_deps(), 'dependencies (%s) not installed' % ','.join(deps)) > @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test sometimes gets stuck due to console handling problem') > @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited') > -@skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited') > +@skip('broken test - guest fails to install packages') > class HypervisorTest(QemuSystemTest): > > timeout = 1000 > @@ -55,6 +57,12 @@ class HypervisorTest(QemuSystemTest): > panic_message = 'Kernel panic - not syncing' > good_message = 'VFS: Cannot open root device' > > + # Alpine use sha256 so I recalculated this myself > + ASSET_ISO = Asset( > + ('https://dl-cdn.alpinelinux.org/alpine/v3.18/' > + 'releases/ppc64le/alpine-standard-3.18.4-ppc64le.iso'), > + 'c26b8d3e17c2f3f0fed02b4b1296589c2390e6d5548610099af75300edd7b3ff') > + > def extract_from_iso(self, iso, path): > """ > Extracts a file from an iso file into the test workdir > @@ -84,14 +92,7 @@ def extract_from_iso(self, iso, path): > def setUp(self): > super().setUp() > > - iso_url = ('https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/ppc64le/alpine-standard-3.18.4-ppc64le.iso') > - > - # Alpine use sha256 so I recalculated this myself > - iso_sha256 = 'c26b8d3e17c2f3f0fed02b4b1296589c2390e6d5548610099af75300edd7b3ff' > - iso_path = self.fetch_asset(iso_url, asset_hash=iso_sha256, > - algorithm = "sha256") > - > - self.iso_path = iso_path > + self.iso_path = self.ASSET_ISO.fetch() > self.vmlinuz = self.extract_from_iso(iso_path, '/boot/vmlinuz-lts') > self.initramfs = self.extract_from_iso(iso_path, '/boot/initramfs-lts') > > @@ -159,12 +160,8 @@ def do_test_kvm(self, hpt=False): > wait_for_console_pattern(self, 'alpine:~#') > > def test_hv_pseries(self): > - """ > - :avocado: tags=arch:ppc64 > - :avocado: tags=machine:pseries > - :avocado: tags=accel:tcg > - """ > self.require_accelerator("tcg") > + self.set_machine('pseries') > self.vm.add_args("-accel", "tcg,thread=multi") > self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0') > self.vm.add_args("-machine", "x-vof=on,cap-nested-hv=on") > @@ -174,12 +171,8 @@ def test_hv_pseries(self): > self.do_stop_alpine() > > def test_hv_pseries_kvm(self): > - """ > - :avocado: tags=arch:ppc64 > - :avocado: tags=machine:pseries > - :avocado: tags=accel:kvm > - """ > self.require_accelerator("kvm") > + self.set_machine('pseries') > self.vm.add_args("-accel", "kvm") > self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0') > self.vm.add_args("-machine", "x-vof=on,cap-nested-hv=on,cap-ccf-assist=off") > @@ -189,12 +182,8 @@ def test_hv_pseries_kvm(self): > self.do_stop_alpine() > > def test_hv_powernv(self): > - """ > - :avocado: tags=arch:ppc64 > - :avocado: tags=machine:powernv > - :avocado: tags=accel:tcg > - """ > self.require_accelerator("tcg") > + self.set_machine('powernv') > self.vm.add_args("-accel", "tcg,thread=multi") > self.vm.add_args('-device', 'nvme,bus=pcie.2,addr=0x0,serial=1234,drive=drive0', > '-device', 'e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=pcie.0,addr=0x0', > @@ -204,3 +193,6 @@ def test_hv_powernv(self): > self.do_test_kvm() > self.do_test_kvm(True) > self.do_stop_alpine() > + > +if __name__ == '__main__': > + QemuSystemTest.main()
diff --git a/tests/avocado/ppc_hv_tests.py b/tests/functional/test_ppc64_hv.py old mode 100644 new mode 100755 similarity index 88% rename from tests/avocado/ppc_hv_tests.py rename to tests/functional/test_ppc64_hv.py index bf8822bb97..a45657c87e --- a/tests/avocado/ppc_hv_tests.py +++ b/tests/functional/test_ppc64_hv.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 +# # Tests that specifically try to exercise hypervisor features of the # target machines. powernv supports the Power hypervisor ISA, and # pseries supports the nested-HV hypervisor spec. @@ -7,10 +9,10 @@ # 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 avocado import skipIf, skipUnless -from avocado.utils import archive -from avocado_qemu import QemuSystemTest -from avocado_qemu import wait_for_console_pattern, exec_command +from unittest import skipIf, skipUnless +from qemu_test.utils import archive_extract +from qemu_test import QemuSystemTest, Asset +from qemu_test import wait_for_console_pattern, exec_command import os import time import subprocess @@ -47,7 +49,7 @@ def missing_deps(): @skipIf(missing_deps(), 'dependencies (%s) not installed' % ','.join(deps)) @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test sometimes gets stuck due to console handling problem') @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited') -@skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited') +@skip('broken test - guest fails to install packages') class HypervisorTest(QemuSystemTest): timeout = 1000 @@ -55,6 +57,12 @@ class HypervisorTest(QemuSystemTest): panic_message = 'Kernel panic - not syncing' good_message = 'VFS: Cannot open root device' + # Alpine use sha256 so I recalculated this myself + ASSET_ISO = Asset( + ('https://dl-cdn.alpinelinux.org/alpine/v3.18/' + 'releases/ppc64le/alpine-standard-3.18.4-ppc64le.iso'), + 'c26b8d3e17c2f3f0fed02b4b1296589c2390e6d5548610099af75300edd7b3ff') + def extract_from_iso(self, iso, path): """ Extracts a file from an iso file into the test workdir @@ -84,14 +92,7 @@ def extract_from_iso(self, iso, path): def setUp(self): super().setUp() - iso_url = ('https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/ppc64le/alpine-standard-3.18.4-ppc64le.iso') - - # Alpine use sha256 so I recalculated this myself - iso_sha256 = 'c26b8d3e17c2f3f0fed02b4b1296589c2390e6d5548610099af75300edd7b3ff' - iso_path = self.fetch_asset(iso_url, asset_hash=iso_sha256, - algorithm = "sha256") - - self.iso_path = iso_path + self.iso_path = self.ASSET_ISO.fetch() self.vmlinuz = self.extract_from_iso(iso_path, '/boot/vmlinuz-lts') self.initramfs = self.extract_from_iso(iso_path, '/boot/initramfs-lts') @@ -159,12 +160,8 @@ def do_test_kvm(self, hpt=False): wait_for_console_pattern(self, 'alpine:~#') def test_hv_pseries(self): - """ - :avocado: tags=arch:ppc64 - :avocado: tags=machine:pseries - :avocado: tags=accel:tcg - """ self.require_accelerator("tcg") + self.set_machine('pseries') self.vm.add_args("-accel", "tcg,thread=multi") self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0') self.vm.add_args("-machine", "x-vof=on,cap-nested-hv=on") @@ -174,12 +171,8 @@ def test_hv_pseries(self): self.do_stop_alpine() def test_hv_pseries_kvm(self): - """ - :avocado: tags=arch:ppc64 - :avocado: tags=machine:pseries - :avocado: tags=accel:kvm - """ self.require_accelerator("kvm") + self.set_machine('pseries') self.vm.add_args("-accel", "kvm") self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0') self.vm.add_args("-machine", "x-vof=on,cap-nested-hv=on,cap-ccf-assist=off") @@ -189,12 +182,8 @@ def test_hv_pseries_kvm(self): self.do_stop_alpine() def test_hv_powernv(self): - """ - :avocado: tags=arch:ppc64 - :avocado: tags=machine:powernv - :avocado: tags=accel:tcg - """ self.require_accelerator("tcg") + self.set_machine('powernv') self.vm.add_args("-accel", "tcg,thread=multi") self.vm.add_args('-device', 'nvme,bus=pcie.2,addr=0x0,serial=1234,drive=drive0', '-device', 'e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=pcie.0,addr=0x0', @@ -204,3 +193,6 @@ def test_hv_powernv(self): self.do_test_kvm() self.do_test_kvm(True) self.do_stop_alpine() + +if __name__ == '__main__': + QemuSystemTest.main()