tests/functional: add tests for SCLP event CPI

Add tests for SCLP event type Control-Program Identification.

Signed-off-by: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Suggested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Reviewed-by Thomas Huth <thuth@redhat.com>
Message-ID: <20251016121708.334133-2-shalini@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Shalini Chellathurai Saroja 2025-10-16 14:17:08 +02:00 committed by Thomas Huth
parent 0ce63280dc
commit bc436b739c

View file

@ -15,6 +15,7 @@ import os
import tempfile
from qemu_test import QemuSystemTest, Asset
from qemu_test import exec_command
from qemu_test import exec_command_and_wait_for_pattern
from qemu_test import wait_for_console_pattern
@ -270,5 +271,30 @@ class S390CCWVirtioMachine(QemuSystemTest):
'while ! (dmesg -c | grep Start.virtcrypto_remove) ; do'
' sleep 1 ; done', 'Start virtcrypto_remove.')
# Test SCLP event Control-Program Identification (CPI)
cpi = '/sys/firmware/cpi/'
sclpcpi = '/machine/sclp/s390-sclp-event-facility/sclpcpi'
self.log.info("Test SCLP event CPI")
exec_command(self, 'echo TESTVM > ' + cpi + 'system_name')
exec_command(self, 'echo LINUX > ' + cpi + 'system_type')
exec_command(self, 'echo TESTPLEX > ' + cpi + 'sysplex_name')
exec_command(self, 'echo 0x001a000000060b00 > ' + cpi + 'system_level')
exec_command_and_wait_for_pattern(self,
'echo 1 > ' + cpi + 'set', ':/#')
try:
event = self.vm.event_wait('SCLP_CPI_INFO_AVAILABLE')
except TimeoutError:
self.fail('Timed out waiting for the SCLP_CPI_INFO_AVAILABLE event')
ts = self.vm.cmd('qom-get', path=sclpcpi, property='timestamp')
self.assertNotEqual(ts, 0)
name = self.vm.cmd('qom-get', path=sclpcpi, property='system_name')
self.assertEqual(name.strip(), 'TESTVM')
typ = self.vm.cmd('qom-get', path=sclpcpi, property='system_type')
self.assertEqual(typ.strip(), 'LINUX')
sysplex = self.vm.cmd('qom-get', path=sclpcpi, property='sysplex_name')
self.assertEqual(sysplex.strip(), 'TESTPLEX')
level = self.vm.cmd('qom-get', path=sclpcpi, property='system_level')
self.assertEqual(level, 0x001a000000060b00)
if __name__ == '__main__':
QemuSystemTest.main()