[ovs-dev] [PATCH] tests: Try harder to figure out whether IPv6 is supported.

Ben Pfaff blp at ovn.org
Tue Nov 14 00:58:47 UTC 2017


Until now, the tests have tried to create an IPv6 socket to figure out
whether the system under test supports IPv6.  Recently we've seen test
failures on Travis which appear to be because, although the system supports
IPv6, test programs are not allowed to connect or bind IPv6 addresses.
This commit refines the test for IPv6 to also try to bind the IPv6
localhost address, which should convert the test failures to "skip"s.

CC: William Tu <u9012063 at gmail.com>
CC: Greg Rose <gvrose8192 at gmail.com>
Reported-at: https://github.com/travis-ci/travis-ci/issues/8711
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
 tests/atlocal.in | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tests/atlocal.in b/tests/atlocal.in
index 95f98f4dc845..bdf5bd0ca97e 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -108,7 +108,12 @@ FreeBSD|NetBSD)
 esac
 
 # Check whether to run IPv6 tests.
-if perl -e 'use Socket; socket(FH, PF_INET6, SOCK_STREAM, 0) || exit 1;'; then
+if perl -e '
+    use Socket qw(PF_INET6 SOCK_STREAM pack_sockaddr_in6 IN6ADDR_LOOPBACK);
+
+    socket(S, PF_INET6, SOCK_STREAM, 0) || exit 1;
+    bind(S, pack_sockaddr_in6(0, IN6ADDR_LOOPBACK)) || exit 1;
+'; then
     HAVE_IPV6=yes
 else
     HAVE_IPV6=no
-- 
2.10.2



More information about the dev mailing list