tests/acceptance: Extract the code to clear dmesg and wait for CRW reports
We will use this in more spots soon, so it's easier to put this into a separate function. Reviewed-by: Willian Rampazzo <willianr@redhat.com> Tested-by: Willian Rampazzo <willianr@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <20201215183623.110128-2-thuth@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
parent
44637c4b2b
commit
09d4455e42
|
@ -17,12 +17,24 @@ from avocado_qemu import wait_for_console_pattern
|
|||
class S390CCWVirtioMachine(Test):
|
||||
KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
|
||||
|
||||
timeout = 120
|
||||
|
||||
def wait_for_console_pattern(self, success_message, vm=None):
|
||||
wait_for_console_pattern(self, success_message,
|
||||
failure_message='Kernel panic - not syncing',
|
||||
vm=vm)
|
||||
|
||||
timeout = 120
|
||||
def wait_for_crw_reports(self):
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'while ! (dmesg -c | grep CRW) ; do sleep 1 ; done',
|
||||
'CRW reports')
|
||||
|
||||
dmesg_clear_count = 1
|
||||
def clear_guest_dmesg(self):
|
||||
exec_command_and_wait_for_pattern(self, 'dmesg -c > /dev/null; '
|
||||
'echo dm_clear\ ' + str(self.dmesg_clear_count),
|
||||
'dm_clear ' + str(self.dmesg_clear_count))
|
||||
self.dmesg_clear_count += 1
|
||||
|
||||
def test_s390x_devices(self):
|
||||
|
||||
|
@ -100,26 +112,18 @@ class S390CCWVirtioMachine(Test):
|
|||
'cat /sys/bus/pci/devices/000a\:00\:00.0/function_id',
|
||||
'0x0000000c')
|
||||
# add another device
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'dmesg -c > /dev/null; echo dm_clear\ 1',
|
||||
'dm_clear 1')
|
||||
self.clear_guest_dmesg()
|
||||
self.vm.command('device_add', driver='virtio-net-ccw',
|
||||
devno='fe.0.4711', id='net_4711')
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'while ! (dmesg -c | grep CRW) ; do sleep 1 ; done',
|
||||
'CRW reports')
|
||||
self.wait_for_crw_reports()
|
||||
exec_command_and_wait_for_pattern(self, 'ls /sys/bus/ccw/devices/',
|
||||
'0.0.4711')
|
||||
# and detach it again
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'dmesg -c > /dev/null; echo dm_clear\ 2',
|
||||
'dm_clear 2')
|
||||
self.clear_guest_dmesg()
|
||||
self.vm.command('device_del', id='net_4711')
|
||||
self.vm.event_wait(name='DEVICE_DELETED',
|
||||
match={'data': {'device': 'net_4711'}})
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'while ! (dmesg -c | grep CRW) ; do sleep 1 ; done',
|
||||
'CRW reports')
|
||||
self.wait_for_crw_reports()
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'ls /sys/bus/ccw/devices/0.0.4711',
|
||||
'No such file or directory')
|
||||
|
|
Loading…
Reference in a new issue