qemu/tests/avocado
Peter Maydell cc45d25c65 tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping
The avocado test
 tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_initrd
finishes with

    exec_command(self, 'halt')
    # Wait for VM to shut down gracefully
    self.vm.wait()

In theory this should be fine. In practice it runs into two bugs:

 * when the test calls self.vm.wait() Avocado closes the socket
   connection to the guest serial console immediately, so the
   avocado logs don't have the last part of the guest output:
   https://gitlab.com/qemu-project/qemu/-/issues/1265
 * when the socket is closed, a bug in the QEMU socket chardev
   means that it loses any data that the guest UART has not
   yet consumed. This means that the guest doesn't always read
   the full 'halt' command string, so the test intermittently
   fails with a timeout:
   https://gitlab.com/qemu-project/qemu/-/issues/1264

Work around both of these by waiting for the guest to print the
string that means it has completed the shutdown process.  This fixes
a very long standing intermittent failure in this test.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/636
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20221020102012.3015662-1-peter.maydell@linaro.org>
Message-Id: <20221027183637.2772968-20-alex.bennee@linaro.org>
2022-10-31 20:37:59 +00:00
..
avocado_qemu tests/avocado: reduce the default timeout to 120s 2022-09-20 16:27:04 +01:00
virtiofs_submounts.py.data
boot_linux_console.py tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping 2022-10-31 20:37:59 +00:00
boot_linux.py tests/avocado: extend the timeout for x86_64 tcg tests 2022-10-31 20:37:58 +00:00
boot_xen.py
cpu_queries.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
empty_cpu_model.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
hotplug_cpu.py
info_usernet.py tests/avocado: set -machine none for userfwd and vnc tests 2022-10-31 20:37:59 +00:00
intel_iommu.py
linux_initrd.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
linux_ssh_mips_malta.py tests/avocado/linux_ssh_mips_malta.py: add missing accel (tcg) tag 2022-03-08 19:38:17 +01:00
load_bflt.py tests/avocado: Add bFLT loader linux-user test 2021-11-08 17:00:22 +01:00
machine_aarch64_virt.py tests/avocado: update aarch64_virt test to exercise -cpu max 2022-04-20 16:04:16 +01:00
machine_arm_canona1100.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_arm_integratorcp.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_arm_n8x0.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_aspeed.py tests/avocado/machine_aspeed.py: Fix typos on buildroot 2022-10-24 11:20:15 +02:00
machine_avr6.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_m68k_nextcube.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_microblaze.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_mips_fuloong2e.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_mips_loongson3v.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_mips_malta.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_rx_gdbsim.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
machine_s390_ccw_virtio.py target/s390x: support PRNO_TRNG instruction 2022-09-26 17:23:11 +02:00
machine_sparc64_sun4u.py
machine_sparc_leon3.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
migration.py tests/avocado/migration: Get find_free_port() from the ports 2022-08-30 07:55:43 +02:00
multiprocess.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
pc_cpu_hotplug_props.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
ppc_74xx.py avocado/ppc_74xx.py: check TCG accel for all tests 2022-03-14 15:57:17 +01:00
ppc_405.py avocado/ppc_405.py: check TCG accel in test_ppc_ref405ep() 2022-03-14 15:57:17 +01:00
ppc_bamboo.py tests/avocado: Add missing require_netdev('user') checks 2022-10-11 17:25:50 +02:00
ppc_mpc8544ds.py avocado/ppc_mpc8544ds.py: check TCG accel in test_ppc_mpc8544ds() 2022-03-14 15:57:17 +01:00
ppc_prep_40p.py avocado/ppc_prep_40p.py: check TCG accel in all tests 2022-03-14 15:57:17 +01:00
ppc_pseries.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
ppc_virtex_ml507.py avocado/ppc_virtex_ml507.py: check TCG accel in test_ppc_virtex_ml507() 2022-03-14 15:57:17 +01:00
README.rst
replay_kernel.py avocado/replay_kernel.py: make tcg-icount check in run_vm() 2022-03-14 15:57:17 +01:00
replay_linux.py tests/avocado: Do not run tests that require libslirp if it is not available 2022-08-29 15:28:51 +02:00
reverse_debugging.py
smmu.py
tcg_plugins.py tests/avocado: fix tcg_plugin mem access count test 2021-11-29 15:12:56 +00:00
tesseract_utils.py
version.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
virtio_check_params.py tests: install "qemu" namespace package into venv 2022-06-06 09:26:54 +02:00
virtio_version.py tests: install "qemu" namespace package into venv 2022-06-06 09:26:54 +02:00
virtio-gpu.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00
virtiofs_submounts.py tests/avocado: Share useful helpers from virtiofs_submounts test 2021-11-08 17:00:22 +01:00
vnc.py tests/avocado: set -machine none for userfwd and vnc tests 2022-10-31 20:37:59 +00:00
x86_cpu_model_versions.py tests/avocado: Rename avocado_qemu.Test -> QemuSystemTest 2021-11-08 17:00:22 +01:00

=============================================
Integration tests using the Avocado Framework
=============================================

This directory contains integration tests. They're usually higher
level, and may interact with external resources and with various
guest operating systems.

For more information, please refer to ``docs/devel/testing.rst``,
section "Integration tests using the Avocado Framework".