* Make some functional tests more robust
* Fix a typo in the s390x code -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmflBdQRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbVE8Q//RRi0ufAhOd9YfPYqteLvJDDl27rDMmsr Q0laGYe3ylyUQi9ALglUvfaKNRzJahURwNUqMTyGbTDh/JciQ2mgfYOu7+RsUrBp fw5HlGIYJt4p/m5MqiqqiJbQ1LMuEehs93WsywhXdrZ5dLrdeWytkddVd/wj9VG4 EDYizESc1/8Gl6qOM5ZHa7nMs8KD9SnCrzhXFO2m6sPc9hsAJYfU0NJTPBQ/VDd7 AyFq43fGNdmHbnERueSJa2CeVfIvoHwSMbVvTkBVdKm2N+09q8ZxqUcj7d5Ziz7f Dehn1DvbY3TTR7fR2PPx9EWdDkJ+s8LmJiO1/KsyQC502wCVgzucQxiuTBVs2wG3 hnkTQ90DcuCAS7ci/1PisdvJSiEiwAV2YlkEWyTmrCCZzjafzARkc8g8QZhuYCSQ giz0yMpCla9zI9T/O5NMSsOWDBhy0iNeGwMH8+rDvFraX5a1w2tRTyCa00VWItxb rRGcEa8fizEB0eX4lpSjOgY9lkzXhUseS/sQoRlI+hNc0ZqSI6CjeiDemFIIEBTd OllPnvhRG7JMdqmDcQXys7uxc/1D9ZNM92P9BhR3VZswNW7O0hy/qfrgDxHkhPIN /CrqYgvmeqc1BIcPLIEQzd9nTgpOkggptR+WFGl4VQsDSPOtji9iBzOdsIhSVZlb eK0gOrb4Vks= =2v5a -----END PGP SIGNATURE----- Merge tag 'pull-request-2025-03-27' of https://gitlab.com/thuth/qemu into staging * Make some functional tests more robust * Fix a typo in the s390x code # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmflBdQRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbVE8Q//RRi0ufAhOd9YfPYqteLvJDDl27rDMmsr # Q0laGYe3ylyUQi9ALglUvfaKNRzJahURwNUqMTyGbTDh/JciQ2mgfYOu7+RsUrBp # fw5HlGIYJt4p/m5MqiqqiJbQ1LMuEehs93WsywhXdrZ5dLrdeWytkddVd/wj9VG4 # EDYizESc1/8Gl6qOM5ZHa7nMs8KD9SnCrzhXFO2m6sPc9hsAJYfU0NJTPBQ/VDd7 # AyFq43fGNdmHbnERueSJa2CeVfIvoHwSMbVvTkBVdKm2N+09q8ZxqUcj7d5Ziz7f # Dehn1DvbY3TTR7fR2PPx9EWdDkJ+s8LmJiO1/KsyQC502wCVgzucQxiuTBVs2wG3 # hnkTQ90DcuCAS7ci/1PisdvJSiEiwAV2YlkEWyTmrCCZzjafzARkc8g8QZhuYCSQ # giz0yMpCla9zI9T/O5NMSsOWDBhy0iNeGwMH8+rDvFraX5a1w2tRTyCa00VWItxb # rRGcEa8fizEB0eX4lpSjOgY9lkzXhUseS/sQoRlI+hNc0ZqSI6CjeiDemFIIEBTd # OllPnvhRG7JMdqmDcQXys7uxc/1D9ZNM92P9BhR3VZswNW7O0hy/qfrgDxHkhPIN # /CrqYgvmeqc1BIcPLIEQzd9nTgpOkggptR+WFGl4VQsDSPOtji9iBzOdsIhSVZlb # eK0gOrb4Vks= # =2v5a # -----END PGP SIGNATURE----- # gpg: Signature made Thu 27 Mar 2025 04:01:24 EDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2025-03-27' of https://gitlab.com/thuth/qemu: tests/functional/test_vnc: Skip test if VNC support is not available tests/functional/test_aarch64_virt_gpu: Skip if "dbus" display isn't available target/s390x: Fix a typo in s390_cpu_class_init() tests/functional: Add missing require_netdev('user') statements tests/functional/meson.build: Bump arm_aspeed_bletchley timeout tests/functional/test_ppc64_replay: Mark the e500 test as flaky Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
3a0ff62431
@ -1018,7 +1018,7 @@ S: Maintained
|
||||
F: hw/arm/virt*
|
||||
F: include/hw/arm/virt.h
|
||||
F: docs/system/arm/virt.rst
|
||||
F: tests/functional/test_aarch64_virt.py
|
||||
F: tests/functional/test_aarch64_virt*.py
|
||||
F: tests/functional/test_aarch64_tuxrun.py
|
||||
F: tests/functional/test_arm_tuxrun.py
|
||||
|
||||
|
@ -377,7 +377,7 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
|
||||
resettable_class_set_parent_phases(rc, NULL, s390_cpu_reset_hold, NULL,
|
||||
&scc->parent_phases);
|
||||
|
||||
cc->class_by_name = s390_cpu_class_by_name,
|
||||
cc->class_by_name = s390_cpu_class_by_name;
|
||||
cc->mmu_index = s390x_cpu_mmu_index;
|
||||
cc->dump_state = s390_cpu_dump_state;
|
||||
cc->query_cpu_fast = s390_query_cpu_fast;
|
||||
|
@ -26,7 +26,7 @@ test_timeouts = {
|
||||
'arm_aspeed_witherspoon' : 120,
|
||||
'arm_aspeed_ast2500' : 720,
|
||||
'arm_aspeed_ast2600' : 1200,
|
||||
'arm_aspeed_bletchley' : 120,
|
||||
'arm_aspeed_bletchley' : 480,
|
||||
'arm_aspeed_rainier' : 480,
|
||||
'arm_bpim2u' : 500,
|
||||
'arm_collie' : 180,
|
||||
|
@ -33,6 +33,7 @@ class Aarch64RMESbsaRefMachine(QemuSystemTest):
|
||||
def test_aarch64_rme_sbsaref(self):
|
||||
self.set_machine('sbsa-ref')
|
||||
self.require_accelerator('tcg')
|
||||
self.require_netdev('user')
|
||||
|
||||
self.vm.set_console()
|
||||
|
||||
|
@ -60,8 +60,10 @@ class Aarch64RMEVirtMachine(QemuSystemTest):
|
||||
# and launching a nested VM using it.
|
||||
def test_aarch64_rme_virt(self):
|
||||
self.set_machine('virt')
|
||||
self.vm.set_console()
|
||||
self.require_accelerator('tcg')
|
||||
self.require_netdev('user')
|
||||
|
||||
self.vm.set_console()
|
||||
|
||||
stack_path_tar_gz = self.ASSET_RME_STACK_VIRT.fetch()
|
||||
self.archive_extract(stack_path_tar_gz, format="tar")
|
||||
|
@ -74,6 +74,8 @@ class Aarch64VirtGPUMachine(LinuxKernelTest):
|
||||
self.skipTest("Can't access host DRM render node")
|
||||
elif "'type' does not accept value 'egl-headless'" in excp.output:
|
||||
self.skipTest("egl-headless support is not available")
|
||||
elif "'type' does not accept value 'dbus'" in excp.output:
|
||||
self.skipTest("dbus display support is not available")
|
||||
else:
|
||||
self.log.info("unhandled launch failure: %s", excp.output)
|
||||
raise excp
|
||||
|
@ -140,6 +140,8 @@ class BananaPiMachine(LinuxKernelTest):
|
||||
@skipBigDataTest()
|
||||
def test_arm_bpim2u_openwrt_22_03_3(self):
|
||||
self.set_machine('bpim2u')
|
||||
self.require_netdev('user')
|
||||
|
||||
# This test download a 8.9 MiB compressed image and expand it
|
||||
# to 127 MiB.
|
||||
image_path = self.uncompress(self.ASSET_SD_IMAGE)
|
||||
|
@ -107,6 +107,8 @@ class CubieboardMachine(LinuxKernelTest):
|
||||
# This test download a 7.5 MiB compressed image and expand it
|
||||
# to 126 MiB.
|
||||
self.set_machine('cubieboard')
|
||||
self.require_netdev('user')
|
||||
|
||||
image_path = self.uncompress(self.ASSET_OPENWRT)
|
||||
image_pow2ceil_expand(image_path)
|
||||
|
||||
|
@ -147,6 +147,8 @@ class OrangePiMachine(LinuxKernelTest):
|
||||
@skipBigDataTest()
|
||||
def test_arm_orangepi_armbian(self):
|
||||
self.set_machine('orangepi-pc')
|
||||
self.require_netdev('user')
|
||||
|
||||
# This test download a 275 MiB compressed image and expand it
|
||||
# to 1036 MiB, but the underlying filesystem is 1552 MiB...
|
||||
# As we expand it to 2 GiB we are safe.
|
||||
@ -181,6 +183,8 @@ class OrangePiMachine(LinuxKernelTest):
|
||||
@skipBigDataTest()
|
||||
def test_arm_orangepi_uboot_netbsd9(self):
|
||||
self.set_machine('orangepi-pc')
|
||||
self.require_netdev('user')
|
||||
|
||||
# This test download a 304MB compressed image and expand it to 2GB
|
||||
# We use the common OrangePi PC 'plus' build of U-Boot for our secondary
|
||||
# program loader (SPL). We will then set the path to the more specific
|
||||
|
@ -125,6 +125,7 @@ class HypervisorTest(QemuSystemTest):
|
||||
|
||||
def test_hv_pseries(self):
|
||||
self.require_accelerator("tcg")
|
||||
self.require_netdev('user')
|
||||
self.set_machine('pseries')
|
||||
self.vm.add_args("-accel", "tcg,thread=multi")
|
||||
self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0')
|
||||
@ -136,6 +137,7 @@ class HypervisorTest(QemuSystemTest):
|
||||
|
||||
def test_hv_pseries_kvm(self):
|
||||
self.require_accelerator("kvm")
|
||||
self.require_netdev('user')
|
||||
self.set_machine('pseries')
|
||||
self.vm.add_args("-accel", "kvm")
|
||||
self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0')
|
||||
@ -147,6 +149,7 @@ class HypervisorTest(QemuSystemTest):
|
||||
|
||||
def test_hv_powernv(self):
|
||||
self.require_accelerator("tcg")
|
||||
self.require_netdev('user')
|
||||
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',
|
||||
|
@ -5,7 +5,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
from qemu_test import Asset
|
||||
from qemu_test import Asset, skipFlakyTest
|
||||
from replay_kernel import ReplayKernelBase
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ class Ppc64Replay(ReplayKernelBase):
|
||||
'day19.tar.xz'),
|
||||
'20b1bb5a8488c664defbb5d283addc91a05335a936c63b3f5ff7eee74b725755')
|
||||
|
||||
@skipFlakyTest('https://gitlab.com/qemu-project/qemu/-/issues/2523')
|
||||
def test_ppc64_e500(self):
|
||||
self.set_machine('ppce500')
|
||||
self.cpu = 'e5500'
|
||||
|
@ -12,6 +12,7 @@
|
||||
|
||||
import socket
|
||||
from typing import List
|
||||
from qemu.machine.machine import VMLaunchFailure
|
||||
|
||||
from qemu_test import QemuSystemTest
|
||||
from qemu_test.ports import Ports
|
||||
@ -32,7 +33,14 @@ class Vnc(QemuSystemTest):
|
||||
def test_no_vnc_change_password(self):
|
||||
self.vm.add_args('-nodefaults', '-S')
|
||||
self.vm.launch()
|
||||
self.assertFalse(self.vm.qmp('query-vnc')['return']['enabled'])
|
||||
|
||||
query_vnc_response = self.vm.qmp('query-vnc')
|
||||
if 'error' in query_vnc_response:
|
||||
self.assertEqual(query_vnc_response['error']['class'],
|
||||
'CommandNotFound')
|
||||
self.skipTest('VNC support not available')
|
||||
self.assertFalse(query_vnc_response['return']['enabled'])
|
||||
|
||||
set_password_response = self.vm.qmp('change-vnc-password',
|
||||
password='new_password')
|
||||
self.assertIn('error', set_password_response)
|
||||
@ -41,9 +49,19 @@ class Vnc(QemuSystemTest):
|
||||
self.assertEqual(set_password_response['error']['desc'],
|
||||
'Could not set password')
|
||||
|
||||
def launch_guarded(self):
|
||||
try:
|
||||
self.vm.launch()
|
||||
except VMLaunchFailure as excp:
|
||||
if "-vnc: invalid option" in excp.output:
|
||||
self.skipTest("VNC support not available")
|
||||
else:
|
||||
self.log.info("unhandled launch failure: %s", excp.output)
|
||||
raise excp
|
||||
|
||||
def test_change_password_requires_a_password(self):
|
||||
self.vm.add_args('-nodefaults', '-S', '-vnc', ':1,to=999')
|
||||
self.vm.launch()
|
||||
self.launch_guarded()
|
||||
self.assertTrue(self.vm.qmp('query-vnc')['return']['enabled'])
|
||||
set_password_response = self.vm.qmp('change-vnc-password',
|
||||
password='new_password')
|
||||
@ -55,7 +73,7 @@ class Vnc(QemuSystemTest):
|
||||
|
||||
def test_change_password(self):
|
||||
self.vm.add_args('-nodefaults', '-S', '-vnc', ':1,to=999,password=on')
|
||||
self.vm.launch()
|
||||
self.launch_guarded()
|
||||
self.assertTrue(self.vm.qmp('query-vnc')['return']['enabled'])
|
||||
self.vm.cmd('change-vnc-password',
|
||||
password='new_password')
|
||||
@ -66,7 +84,7 @@ class Vnc(QemuSystemTest):
|
||||
self.assertFalse(check_connect(c))
|
||||
|
||||
self.vm.add_args('-nodefaults', '-S', '-vnc', f'{VNC_ADDR}:{a - 5900}')
|
||||
self.vm.launch()
|
||||
self.launch_guarded()
|
||||
self.assertEqual(self.vm.qmp('query-vnc')['return']['service'], str(a))
|
||||
self.assertTrue(check_connect(a))
|
||||
self.assertFalse(check_connect(b))
|
||||
|
@ -41,6 +41,7 @@ class KVMXenGuest(QemuSystemTest):
|
||||
def common_vm_setup(self):
|
||||
# We also catch lack of KVM_XEN support if we fail to launch
|
||||
self.require_accelerator("kvm")
|
||||
self.require_netdev('user')
|
||||
|
||||
self.vm.set_console()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user