On Thu, Sep 05, 2024 at 05:55:53PM +0100, Peter Maydell wrote: > In the dm163-test and stm32l4x5_usart-test, a couple of subtests are > missing the qtest_quit() call. The effect of this is that on hosts > other than Linux and FreeBSD the test will timeout after executing > all the tests: > > 242/845 qemu:qtest+qtest-arm / qtest-arm/dm163-test > TIMEOUT 60.04s 3 subtests passed > 100/845 qemu:qtest+qtest-arm / qtest-arm/stm32l4x5_usart-test > TIMEOUT 600.02s 5 subtests passed > > This happens because the qemu-system-arm binary which the test > starts does not exit, and because it shares the stdout with the > test binary, the overall meson test harness thinks the test is > still running. On Linux and FreeBSD we have an extra safety net > set up in qtest_spawn_qemu() which kills off any QEMU binary that > ends up without a parent. This is intended for the case where > QEMU crashed and didn't respond to a SIGTERM or polite request > to quit, but it also sidestepped the problem in this case. > However, OpenBSD doesn't have a PDEATHSIG equivalent, so we > see the timeouts when running a 'make vm-build-openbsd' run. > > Add the missing qtest_quit() calls. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > Many thanks to Dan Berrangé for diagnosing the cause of this hang... > Dan also suggested on IRC that we should support g_autoptr for > the QTestState, so you don't need to manually qtest_quit(). But > for the immediate fix, I just add the missing calls. > --- > tests/qtest/dm163-test.c | 2 ++ > tests/qtest/stm32l4x5_usart-test.c | 2 ++ > 2 files changed, 4 insertions(+)
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|