summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-05-02 20:26:43 +0200
committerChristian Breunig <christian@breunig.cc>2026-05-06 19:21:40 +0200
commitce83cb947e4e9c0b47b192676b36dc61986bd32a (patch)
treecbff220b05dc58b4000ebcb13540dd5353eef084
parentd31e13e275baeb780a462b24030999edc878ecf6 (diff)
downloadvyos-build-ce83cb947e4e9c0b47b192676b36dc61986bd32a.tar.gz
vyos-build-ce83cb947e4e9c0b47b192676b36dc61986bd32a.zip
Testsuite: T8147: use common clearTPM() handler
Avoid duplicated code when working with TPM
-rwxr-xr-xscripts/check-qemu-install25
1 files changed, 13 insertions, 12 deletions
diff --git a/scripts/check-qemu-install b/scripts/check-qemu-install
index a938c3e9..0cbb3674 100755
--- a/scripts/check-qemu-install
+++ b/scripts/check-qemu-install
@@ -47,6 +47,7 @@ import platform
from io import BytesIO
from datetime import datetime
+from glob import glob
import tomli
import pexpect
@@ -62,6 +63,7 @@ CI_CONFIG_ARGS = {
}
tpm_folder = '/tmp/vyos_tpm_test'
+tpm_sock = f'{tpm_folder}/swtpm-sock'
qemu_name = 'VyOS-QEMU'
test_timeout = 5 *3600 # 5 hours (in seconds) to complete individual testcases
@@ -267,7 +269,7 @@ def get_qemu_cmd(name, enable_uefi, disk_img, raid=None, iso_img=None, tpm=False
f' -device scsi-hd,bus=scsi0.0,drive=drive-hd2,id=hd2,bootindex=2'
if tpm:
- cmd += f' -chardev socket,id=chrtpm,path={tpm_folder}/swtpm-sock' \
+ cmd += f' -chardev socket,id=chrtpm,path={tpm_sock}' \
' -tpmdev emulator,id=tpm0,chardev=chrtpm' \
' -device tpm-tis,tpmdev=tpm0'
@@ -306,6 +308,10 @@ def loginVM(c, log):
c.expect(op_mode_prompt)
log.info('Logged in!')
+def clearTPM():
+ for f in glob(f'{tpm_folder}/*'):
+ os.remove(f)
+
# Setting up logger
log = logging.getLogger()
log.setLevel(logging.DEBUG)
@@ -375,7 +381,9 @@ if args.raid:
# must be called after the raid disk as args.disk name is altered in the RAID path
gen_disk(args.disk)
-# Create software emulated TPM
+# Create software emulated TPM - clear existing TPM data first - might be a
+# leftover from a previous run
+clearTPM()
def start_swtpm():
if not os.path.exists(tpm_folder):
os.mkdir(tpm_folder)
@@ -383,7 +391,7 @@ def start_swtpm():
def swtpm_thread():
subprocess.check_output([
'swtpm', 'socket', '--tpmstate', f'dir={tpm_folder}',
- '--ctrl', f'type=unixio,path={tpm_folder}/swtpm-sock', '--tpm2', '--log', 'level=1'
+ '--ctrl', f'type=unixio,path={tpm_sock}', '--tpm2', '--log', 'level=1'
])
from multiprocessing import Process
@@ -884,7 +892,6 @@ try:
c.expect(op_mode_prompt)
log.info('Running TPM encrypted config tests')
-
tpm_timeout = 600 # Give it 10 mins to encrypt
# Verify TPM is loaded
@@ -948,9 +955,7 @@ try:
shutdownVM(c, log, 'Shutdown VM for TPM fail test')
# Clear swtpm
- from glob import glob
- for f in glob(f'{tpm_folder}/*'):
- os.remove(f)
+ clearTPM()
# Shutdown kills swtpm
tpm_process.join()
@@ -998,11 +1003,7 @@ try:
# Shutdown VM
shutdownVM(c, log, 'Shutdown VM for non-TPM backed test')
-
- # Clear swtpm
- from glob import glob
- for f in glob(f'{tpm_folder}/*'):
- os.remove(f)
+ clearTPM()
# Shutdown kills swtpm
tpm_process.join()