From: Peter Krempa Date: Tue, 14 Aug 2018 11:50:01 +0000 (+0200) Subject: tests: qemuxml2argv: modernize TPM passthrough tests X-Git-Tag: v4.7.0-rc1~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3411fd4db4b29a756b347c035881c5560c95a788;p=thirdparty%2Flibvirt.git 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 --- 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);