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 <th...@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 <th...@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()


Reply via email to