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

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@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

On Fri, 2016-02-12 at 14:15 +0100, Michal Privoznik wrote:
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@redhat.com> --- tests/virportallocatormock.c | 6 ++++-- tests/virportallocatortest.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-)
Not a proper solution by any stretch of the imagination, but I'm afraid that we're currently limiting a bunch of other tests to Linux only while they would work on other platforms as well... Let's get the mingw build working again for now: going through the tests to decide which one should be build for which OS is another day's job. ACK -- Andrea Bolognani Software Engineer - Virtualization Team
participants (2)
-
Andrea Bolognani
-
Michal Privoznik