* [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping
@ 2022-10-20 10:20 Peter Maydell
2022-10-20 10:25 ` Thomas Huth
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Peter Maydell @ 2022-10-20 10:20 UTC (permalink / raw)
To: qemu-arm, qemu-devel; +Cc: Thomas Huth, John Snow
The avocado test
tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_initrd
finishes wiith
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>
---
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 ca9d09b0d7c..eed4b49e6e4 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.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping
2022-10-20 10:20 [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping Peter Maydell
@ 2022-10-20 10:25 ` Thomas Huth
2022-10-20 10:51 ` Alex Bennée
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Thomas Huth @ 2022-10-20 10:25 UTC (permalink / raw)
To: Peter Maydell, qemu-arm, qemu-devel; +Cc: John Snow
On 20/10/2022 12.20, Peter Maydell wrote:
> The avocado test
> tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_initrd
> finishes wiith
>
> 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>
> ---
> 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 ca9d09b0d7c..eed4b49e6e4 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()
>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping
2022-10-20 10:20 [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping Peter Maydell
2022-10-20 10:25 ` Thomas Huth
@ 2022-10-20 10:51 ` Alex Bennée
2022-10-20 10:57 ` Philippe Mathieu-Daudé
2022-10-20 11:10 ` Richard Henderson
3 siblings, 0 replies; 5+ messages in thread
From: Alex Bennée @ 2022-10-20 10:51 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel, Thomas Huth, John Snow, qemu-arm
Peter Maydell <peter.maydell@linaro.org> writes:
> The avocado test
> tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_initrd
> finishes wiith
>
> 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>
Queued to testing/next, thanks.
--
Alex Bennée
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping
2022-10-20 10:20 [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping Peter Maydell
2022-10-20 10:25 ` Thomas Huth
2022-10-20 10:51 ` Alex Bennée
@ 2022-10-20 10:57 ` Philippe Mathieu-Daudé
2022-10-20 11:10 ` Richard Henderson
3 siblings, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-10-20 10:57 UTC (permalink / raw)
To: Peter Maydell, qemu-arm, qemu-devel; +Cc: Thomas Huth, John Snow
On 20/10/22 12:20, Peter Maydell wrote:
> The avocado test
> tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_initrd
> finishes wiith
Typo "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>
> ---
> 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 ca9d09b0d7c..eed4b49e6e4 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')
Yeah :(
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping
2022-10-20 10:20 [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping Peter Maydell
` (2 preceding siblings ...)
2022-10-20 10:57 ` Philippe Mathieu-Daudé
@ 2022-10-20 11:10 ` Richard Henderson
3 siblings, 0 replies; 5+ messages in thread
From: Richard Henderson @ 2022-10-20 11:10 UTC (permalink / raw)
To: Peter Maydell, qemu-arm, qemu-devel; +Cc: Thomas Huth, John Snow
On 10/20/22 20:20, Peter Maydell wrote:
> The avocado test
> tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_initrd
> finishes wiith
>
> 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>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-10-20 12:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-20 10:20 [PATCH] tests/avocado: raspi2_initrd: Wait for guest shutdown message before stopping Peter Maydell
2022-10-20 10:25 ` Thomas Huth
2022-10-20 10:51 ` Alex Bennée
2022-10-20 10:57 ` Philippe Mathieu-Daudé
2022-10-20 11:10 ` Richard Henderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).