Message ID | 20241121165806.476008-17-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | maintainer updates for -rc2 pre-PR | expand |
On 21/11/2024 17.57, Alex Bennée wrote: > From: Daniel P. Berrangé <berrange@redhat.com> > > The tuxrun tests send a series of strings to the guest to login > and then run commands. Since we have been unable to match on > console output that isn't followed by a newline, the test used > many time.sleep() statements to pretend to synchronize with > the guest. > > This has proved to be unreliable for the aarch64be instance of > the tuxrun tests, with the test often hanging. The hang is a > very subtle timing problem, and it is suspected that some > (otherwise apparently harmless) I/O error messages could be > resulting in full FIFO buffers, stalling interaction with > the guest. > > With the newly rewritten console interaction able to match > strings that don't have a following newline, the tux run > tests can now match directly on the login prompt, and/or > shell PS1 prompt. > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2689 > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > Message-Id: <20241121154218.1423005-17-berrange@redhat.com> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > tests/functional/qemu_test/tuxruntest.py | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/tests/functional/qemu_test/tuxruntest.py b/tests/functional/qemu_test/tuxruntest.py index ed2b238c92..ab3b27da43 100644 --- a/tests/functional/qemu_test/tuxruntest.py +++ b/tests/functional/qemu_test/tuxruntest.py @@ -124,16 +124,12 @@ def run_tuxtest_tests(self, haltmsg): then do a few things on the console. Trigger a shutdown and wait to exit cleanly. """ - self.wait_for_console_pattern("Welcome to TuxTest") - time.sleep(0.2) - exec_command(self, 'root') - time.sleep(0.2) - exec_command(self, 'cat /proc/interrupts') - time.sleep(0.1) - exec_command(self, 'cat /proc/self/maps') - time.sleep(0.1) - exec_command(self, 'uname -a') - time.sleep(0.1) + ps1='root@tuxtest:~#' + self.wait_for_console_pattern('tuxtest login:') + exec_command_and_wait_for_pattern(self, 'root', ps1) + exec_command_and_wait_for_pattern(self, 'cat /proc/interrupts', ps1) + exec_command_and_wait_for_pattern(self, 'cat /proc/self/maps', ps1) + exec_command_and_wait_for_pattern(self, 'uname -a', ps1) exec_command_and_wait_for_pattern(self, 'halt', haltmsg) # Wait for VM to shut down gracefully if it can