tests/acceptance: wait() instead of shutdown() where appropriate

When issuing 'reboot' to a VM with the no-reboot option, that VM will
exit. When then issuing a shutdown command, the cleanup may race.

Add calls to vm.wait() which will gracefully mark the VM as having
exited. Subsequent vm.shutdown() calls in generic tearDown code will not
race when called after completion of the call.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20200710050649.32434-9-jsnow@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
John Snow 2020-07-10 01:06:45 -04:00 committed by Philippe Mathieu-Daudé
parent 8952805931
commit a0690c3900
2 changed files with 12 additions and 0 deletions

View File

@ -191,6 +191,8 @@ class BootLinuxConsole(LinuxKernelTest):
'Debian') 'Debian')
exec_command_and_wait_for_pattern(self, 'reboot', exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system') 'reboot: Restarting system')
# Wait for VM to shut down gracefully
self.vm.wait()
@skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
def test_mips64el_malta_5KEc_cpio(self): def test_mips64el_malta_5KEc_cpio(self):
@ -231,6 +233,8 @@ class BootLinuxConsole(LinuxKernelTest):
'3.19.3.mtoman.20150408') '3.19.3.mtoman.20150408')
exec_command_and_wait_for_pattern(self, 'reboot', exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system') 'reboot: Restarting system')
# Wait for VM to shut down gracefully
self.vm.wait()
def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash): def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash):
kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash) kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
@ -506,6 +510,7 @@ class BootLinuxConsole(LinuxKernelTest):
'system-control@1c00000') 'system-control@1c00000')
exec_command_and_wait_for_pattern(self, 'reboot', exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system') 'reboot: Restarting system')
# NB: Do not issue vm.wait() here, cubieboard's reboot does not exit!
def test_arm_cubieboard_sata(self): def test_arm_cubieboard_sata(self):
""" """
@ -550,6 +555,7 @@ class BootLinuxConsole(LinuxKernelTest):
'sda') 'sda')
exec_command_and_wait_for_pattern(self, 'reboot', exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system') 'reboot: Restarting system')
# NB: Do not issue vm.wait() here, cubieboard's reboot does not exit!
def test_arm_orangepi(self): def test_arm_orangepi(self):
""" """
@ -615,6 +621,8 @@ class BootLinuxConsole(LinuxKernelTest):
'system-control@1c00000') 'system-control@1c00000')
exec_command_and_wait_for_pattern(self, 'reboot', exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system') 'reboot: Restarting system')
# Wait for VM to shut down gracefully
self.vm.wait()
def test_arm_orangepi_sd(self): def test_arm_orangepi_sd(self):
""" """
@ -662,6 +670,8 @@ class BootLinuxConsole(LinuxKernelTest):
'3 packets transmitted, 3 packets received, 0% packet loss') '3 packets transmitted, 3 packets received, 0% packet loss')
exec_command_and_wait_for_pattern(self, 'reboot', exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system') 'reboot: Restarting system')
# Wait for VM to shut down gracefully
self.vm.wait()
@skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited') @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited')
@skipUnless(P7ZIP_AVAILABLE, '7z not installed') @skipUnless(P7ZIP_AVAILABLE, '7z not installed')

View File

@ -212,6 +212,8 @@ class LinuxSSH(Test):
self.run_common_commands(wordsize) self.run_common_commands(wordsize)
self.shutdown_via_ssh() self.shutdown_via_ssh()
# Wait for VM to shut down gracefully
self.vm.wait()
def test_mips_malta32eb_kernel3_2_0(self): def test_mips_malta32eb_kernel3_2_0(self):
""" """