From 3411fd4db4b29a756b347c035881c5560c95a788 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 14 Aug 2018 13:50:01 +0200 Subject: [PATCH] tests: qemuxml2argv: modernize TPM passthrough tests All supported qemus support FD passing so modify the tests to test the proper code path. Signed-off-by: Peter Krempa Reviewed-by: John Ferlan --- .../qemuxml2argvdata/tpm-passthrough-crb.args | 5 +++-- tests/qemuxml2argvdata/tpm-passthrough.args | 5 +++-- tests/qemuxml2argvmock.c | 18 +++++++++++++++++- tests/qemuxml2argvtest.c | 2 ++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/tests/qemuxml2argvdata/tpm-passthrough-crb.args b/tests/qemuxml2argvdata/tpm-passthrough-crb.args index 8c73bc6706..4da8be1a73 100644 --- a/tests/qemuxml2argvdata/tpm-passthrough-crb.args +++ b/tests/qemuxml2argvdata/tpm-passthrough-crb.args @@ -21,7 +21,8 @@ server,nowait \ -no-shutdown \ -boot menu=on \ -usb \ --tpmdev passthrough,id=tpm-tpm0,path=/dev/tpm0,\ -cancel-path=/sys/class/misc/tpm0/device/cancel \ +-tpmdev passthrough,id=tpm-tpm0,path=/dev/fdset/0,cancel-path=/dev/fdset/1 \ +-add-fd set=0,fd=1730 \ +-add-fd set=1,fd=1731 \ -device tpm-crb,tpmdev=tpm-tpm0,id=tpm0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/tpm-passthrough.args b/tests/qemuxml2argvdata/tpm-passthrough.args index d4dd371f06..8ab7693009 100644 --- a/tests/qemuxml2argvdata/tpm-passthrough.args +++ b/tests/qemuxml2argvdata/tpm-passthrough.args @@ -21,7 +21,8 @@ server,nowait \ -no-shutdown \ -boot menu=on \ -usb \ --tpmdev passthrough,id=tpm-tpm0,path=/dev/tpm0,\ -cancel-path=/sys/class/misc/tpm0/device/cancel \ +-tpmdev passthrough,id=tpm-tpm0,path=/dev/fdset/0,cancel-path=/dev/fdset/1 \ +-add-fd set=0,fd=1730 \ +-add-fd set=1,fd=1731 \ -device tpm-tis,tpmdev=tpm-tpm0,id=tpm0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index 581f720227..4b4a6f764f 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -186,7 +186,7 @@ virNetDevRunEthernetScript(const char *ifname ATTRIBUTE_UNUSED, static void (*real_virCommandPassFD)(virCommandPtr cmd, int fd, unsigned int flags); -static const int testCommandPassSafeFDs[] = { -1 }; +static const int testCommandPassSafeFDs[] = { 1730, 1731 }; void virCommandPassFD(virCommandPtr cmd, @@ -247,3 +247,19 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev ATTRIBUTE_UNUSED) abort(); return 1729; } + + +int +qemuBuildTPMOpenBackendFDs(const char *tpmdev ATTRIBUTE_UNUSED, + const char *cancel_path ATTRIBUTE_UNUSED, + int *tpmfd, + int *cancelfd) +{ + if (fcntl(1730, F_GETFD) != -1 || + fcntl(1731, F_GETFD) != -1) + abort(); + + *tpmfd = 1730; + *cancelfd = 1731; + return 0; +} diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 82b5b7bbea..06b62b91ae 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2118,8 +2118,10 @@ mymain(void) QEMU_CAPS_KVM); DO_TEST("tpm-passthrough", + QEMU_CAPS_ADD_FD, QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, QEMU_CAPS_DEVICE_TPM_TIS); DO_TEST("tpm-passthrough-crb", + QEMU_CAPS_ADD_FD, QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, QEMU_CAPS_DEVICE_TPM_CRB); DO_TEST_PARSE_ERROR("tpm-no-backend-invalid", QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, QEMU_CAPS_DEVICE_TPM_TIS);