[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 19/30] tests/avocado: raspi2_initrd: Wait for guest shutdown m
From: |
Alex Bennée |
Subject: |
[PATCH v4 19/30] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping |
Date: |
Thu, 27 Oct 2022 19:36:25 +0100 |
From: Peter Maydell <peter.maydell@linaro.org>
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>
---
tests/avocado/boot_linux_console.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/avocado/boot_linux_console.py
b/tests/avocado/boot_linux_console.py
index ca9d09b0d7..eed4b49e6e 100644
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -489,7 +489,7 @@ def test_arm_raspi2_initrd(self):
'BCM2835')
exec_command_and_wait_for_pattern(self, 'cat /proc/iomem',
'/soc/cprman@7e101000')
- exec_command(self, 'halt')
+ exec_command_and_wait_for_pattern(self, 'halt', 'reboot: System
halted')
# Wait for VM to shut down gracefully
self.vm.wait()
--
2.34.1
- [PATCH v4 20/30] tests/avocado: disable sh4 rd2 tests on Gitlab, (continued)
- [PATCH v4 20/30] tests/avocado: disable sh4 rd2 tests on Gitlab, Alex Bennée, 2022/10/27
- [PATCH v4 15/30] MAINTAINERS: add entries for the key build bits, Alex Bennée, 2022/10/27
- [PATCH v4 18/30] tests/avocado: set -machine none for userfwd and vnc tests, Alex Bennée, 2022/10/27
- [PATCH v4 17/30] MAINTAINERS: fix-up for check-tcg Makefile changes, Alex Bennée, 2022/10/27
- [PATCH v4 28/30] contrib/plugins: protect execlog's last_exec expansion, Alex Bennée, 2022/10/27
- [PATCH v4 25/30] target/s390x: fake instruction loading when handling 'ex', Alex Bennée, 2022/10/27
- [PATCH v4 27/30] contrib/plugins: enable debug on CONFIG_DEBUG_TCG, Alex Bennée, 2022/10/27
- [PATCH v4 29/30] tests/unit: cleanups for test-io-channel-command, Alex Bennée, 2022/10/27
- [PATCH v4 24/30] target/s390x: don't probe next pc for EXecuted insns, Alex Bennée, 2022/10/27
- [PATCH v4 30/30] tests/vm: use -o IdentitiesOnly=yes for ssh, Alex Bennée, 2022/10/27
- [PATCH v4 19/30] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping,
Alex Bennée <=