[libvirt PATCH] tests: fix compiling tests with minGW

We need to mock virQEMUCapsGetKVMSupportsSecureGuest only if compiling with QEMU otherwise compilation will fail with error: /usr/lib/gcc/i686-w64-mingw32/11.1.1/../../../../i686-w64-mingw32/bin/ld: tests/libdomaincapsmock.dll.p/domaincapsmock.c.obj: in function `virQEMUCapsGetKVMSupportsSecureGuest': /builds/libvirt/libvirt/build/../tests/domaincapsmock.c:40: undefined reference to `virQEMUCapsGet' /usr/lib/gcc/i686-w64-mingw32/11.1.1/../../../../i686-w64-mingw32/bin/ld: /builds/libvirt/libvirt/build/../tests/domaincapsmock.c:41: undefined reference to `virQEMUCapsGet' Fixes: 248a30c0c0ec2610e8fa2bbbc98da6d06978ad2e Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- tests/domaincapsmock.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/domaincapsmock.c b/tests/domaincapsmock.c index 7b02c0e890..0a6c541f77 100644 --- a/tests/domaincapsmock.c +++ b/tests/domaincapsmock.c @@ -17,8 +17,11 @@ #include <config.h> #include "virhostcpu.h" -#include "virmock.h" -#include "qemu/qemu_capabilities.h" + +#if WITH_QEMU +# include "virmock.h" +# include "qemu/qemu_capabilities.h" +#endif int virHostCPUGetKVMMaxVCPUs(void) @@ -32,6 +35,7 @@ virHostCPUGetMicrocodeVersion(virArch hostArch G_GNUC_UNUSED) return 0; } +#if WITH_QEMU static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps); bool @@ -46,3 +50,4 @@ virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps) return real_virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps); } +#endif -- 2.31.1

On 7/22/21 12:24 PM, Pavel Hrdina wrote:
We need to mock virQEMUCapsGetKVMSupportsSecureGuest only if compiling with QEMU otherwise compilation will fail with error:
/usr/lib/gcc/i686-w64-mingw32/11.1.1/../../../../i686-w64-mingw32/bin/ld: tests/libdomaincapsmock.dll.p/domaincapsmock.c.obj: in function `virQEMUCapsGetKVMSupportsSecureGuest': /builds/libvirt/libvirt/build/../tests/domaincapsmock.c:40: undefined reference to `virQEMUCapsGet' /usr/lib/gcc/i686-w64-mingw32/11.1.1/../../../../i686-w64-mingw32/bin/ld: /builds/libvirt/libvirt/build/../tests/domaincapsmock.c:41: undefined reference to `virQEMUCapsGet'
Fixes: 248a30c0c0ec2610e8fa2bbbc98da6d06978ad2e Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- tests/domaincapsmock.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/tests/domaincapsmock.c b/tests/domaincapsmock.c index 7b02c0e890..0a6c541f77 100644 --- a/tests/domaincapsmock.c +++ b/tests/domaincapsmock.c @@ -17,8 +17,11 @@ #include <config.h>
#include "virhostcpu.h" -#include "virmock.h" -#include "qemu/qemu_capabilities.h" + +#if WITH_QEMU +# include "virmock.h" +# include "qemu/qemu_capabilities.h" +#endif
int virHostCPUGetKVMMaxVCPUs(void) @@ -32,6 +35,7 @@ virHostCPUGetMicrocodeVersion(virArch hostArch G_GNUC_UNUSED) return 0; }
+#if WITH_QEMU static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps);
bool @@ -46,3 +50,4 @@ virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps)
return real_virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps); } +#endif
Reviewed-by: Michal Privoznik <mprivozn@redhat.com> However, this same code you're wrapping is in qemuxml2argvmock and I don't see much reason for that since qemuxml2argtest loads domaincapsmock too. Michal

On Thu, Jul 22, 2021 at 02:54:57PM +0200, Michal Prívozník wrote:
On 7/22/21 12:24 PM, Pavel Hrdina wrote:
We need to mock virQEMUCapsGetKVMSupportsSecureGuest only if compiling with QEMU otherwise compilation will fail with error:
/usr/lib/gcc/i686-w64-mingw32/11.1.1/../../../../i686-w64-mingw32/bin/ld: tests/libdomaincapsmock.dll.p/domaincapsmock.c.obj: in function `virQEMUCapsGetKVMSupportsSecureGuest': /builds/libvirt/libvirt/build/../tests/domaincapsmock.c:40: undefined reference to `virQEMUCapsGet' /usr/lib/gcc/i686-w64-mingw32/11.1.1/../../../../i686-w64-mingw32/bin/ld: /builds/libvirt/libvirt/build/../tests/domaincapsmock.c:41: undefined reference to `virQEMUCapsGet'
Fixes: 248a30c0c0ec2610e8fa2bbbc98da6d06978ad2e Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- tests/domaincapsmock.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/tests/domaincapsmock.c b/tests/domaincapsmock.c index 7b02c0e890..0a6c541f77 100644 --- a/tests/domaincapsmock.c +++ b/tests/domaincapsmock.c @@ -17,8 +17,11 @@ #include <config.h>
#include "virhostcpu.h" -#include "virmock.h" -#include "qemu/qemu_capabilities.h" + +#if WITH_QEMU +# include "virmock.h" +# include "qemu/qemu_capabilities.h" +#endif
int virHostCPUGetKVMMaxVCPUs(void) @@ -32,6 +35,7 @@ virHostCPUGetMicrocodeVersion(virArch hostArch G_GNUC_UNUSED) return 0; }
+#if WITH_QEMU static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps);
bool @@ -46,3 +50,4 @@ virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps)
return real_virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps); } +#endif
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
However, this same code you're wrapping is in qemuxml2argvmock and I don't see much reason for that since qemuxml2argtest loads domaincapsmock too.
Didn't know that from top of my head and to be honest did not even think about checking something like that :). Thanks for the info, I'll post a patch removing the code from qemuxml2argvmock. Pavel
participants (2)
-
Michal Prívozník
-
Pavel Hrdina