[libvirt] [PATCH] virportallocatortest: Run on linux only

Michal Privoznik mprivozn at redhat.com
Fri Feb 12 13:15:53 UTC 2016


After the rework of mocking of our tests there's the
virportallocator test failing to link on mingw. Well, it's the
mocking library actually:

../gnulib/lib/.libs/libgnu.a(bind.o): In function `rpl_bind':
/home/jenkins/libvirt-mingw/build32/gnulib/lib/../../../gnulib/lib/bind.c:33: multiple definition of `rpl_bind'
.libs/virportallocatormock_la-virportallocatormock.o:/home/jenkins/libvirt-mingw/build32/tests/../../tests/virportallocatormock.c:79: first defined here

I've no idea why this matters to mingw and does not to others.
Nevertheless, if we make the test linux only the problem goes
away.

Apparently, our test for RTLD_NEXT is not sufficient because
mingw32 defines it. Lets put aside for a while fact that it has
the same value as RTLD_DEFAULT which by description has different
meaning, shall we?

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 tests/virportallocatormock.c | 6 ++++--
 tests/virportallocatortest.c | 5 +++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/tests/virportallocatormock.c b/tests/virportallocatormock.c
index e44191e..fa6e75b 100644
--- a/tests/virportallocatormock.c
+++ b/tests/virportallocatormock.c
@@ -25,7 +25,7 @@
 # include <dlfcn.h>
 #endif
 
-#if defined(RTLD_NEXT)
+#if defined(__linux__) && defined(RTLD_NEXT)
 # include "internal.h"
 # include <sys/socket.h>
 # include <errno.h>
@@ -105,4 +105,6 @@ int bind(int sockfd ATTRIBUTE_UNUSED,
     return 0;
 }
 
-#endif /* ! defined(RTLD_NEXT) */
+#else /* defined(__linux__) && defined(RTLD_NEXT) */
+/* Nothing to override on other platforms. */
+#endif
diff --git a/tests/virportallocatortest.c b/tests/virportallocatortest.c
index 1a5d759..4574215 100644
--- a/tests/virportallocatortest.c
+++ b/tests/virportallocatortest.c
@@ -27,7 +27,8 @@
 # include <dlfcn.h>
 #endif
 
-#if defined(RTLD_NEXT)
+#if defined(__linux__) && defined(RTLD_NEXT)
+
 # include "virutil.h"
 # include "virerror.h"
 # include "viralloc.h"
@@ -174,7 +175,7 @@ mymain(void)
 }
 
 VIRT_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virportallocatormock.so")
-#else /* ! defined(RTLD_NEXT) */
+#else /* defined(__linux__) && defined(RTLD_NEXT) */
 int
 main(void)
 {
-- 
2.4.10




More information about the libvir-list mailing list