]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2916. [func] Add framework to use IPv6 in tests.
authorMark Andrews <marka@isc.org>
Thu, 10 Jun 2010 06:19:52 +0000 (06:19 +0000)
committerMark Andrews <marka@isc.org>
Thu, 10 Jun 2010 06:19:52 +0000 (06:19 +0000)
                        fd92:7065:b8e:ffff::1 ... fd92:7065:b8e:ffff::7

CHANGES
bin/tests/system/conf.sh.in
bin/tests/system/ifconfig.sh
bin/tests/system/testsock6.pl [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index c23c920a93ca934529453ea9a276331e3a489364..10970f4b776222c1c2853e41d515d506ef724f0f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2916.  [func]          Add framework to use IPv6 in tests.
+                       fd92:7065:b8e:ffff::1 ... fd92:7065:b8e:ffff::7
+
 2915.  [cleanup]       Be smarter about which objects we attempt to compile
                        based on configure options. [RT #21444]
 
index 8da20c84c8406f65fe52a577838e9dc91fbcd3dc..4eabc3736605ec8661c8f8ea771115e937acc773 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: conf.sh.in,v 1.47 2010/06/07 03:42:37 marka Exp $
+# $Id: conf.sh.in,v 1.48 2010/06/10 06:19:52 marka Exp $
 
 #
 # Common configuration data for system tests, to be sourced into
@@ -58,6 +58,17 @@ SUBDIRS="acl autosign cacheclean checkconf checknames dlv dnssec forward glue
 
 # PERL will be an empty string if no perl interpreter was found.
 PERL=@PERL@
+if test -n "$PERL"
+then
+       if $PERL -e "use IO::Socket::INET6;" 2> /dev/null
+       then
+               TESTSOCK6="$PERL $TOP/bin/tests/system/testsock6.pl"
+       else
+               TESTSOCK6=false
+       fi
+else
+       TESTSOCK6=false
+fi
 
 export NAMED LWRESD DIG NSUPDATE KEYGEN KEYFRLAB SIGNER KEYSIGNER KEYSETTOOL \
-       PERL SUBDIRS RNDC CHECKZONE PK11GEN PK11LIST PK11DEL
+    SUBDIRS RNDC CHECKZONE TESTSOCK6
index 3812d10dac839dd3cb60718d3cdb09720b8f4067..f15df4c27a6f82b4c3cd79f94c90617d7d7bb4dd 100644 (file)
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: ifconfig.sh,v 1.57 2009/06/26 23:47:58 tbox Exp $
+# $Id: ifconfig.sh,v 1.58 2010/06/10 06:19:52 marka Exp $
 
 #
 # Set up interface aliases for bind9 system tests.
 #
+# IPv4: 10.53.0.{1..7}                         RFC 1918
+# IPv6: fd92:7065:b8e:ffff::{1..7}             ULA
+#
 
 config_guess=""
 for f in ./config.guess ../../../config.guess
@@ -54,6 +57,11 @@ case "$2" in
 *) base=""
 esac
 
+case "$3" in
+[0-9]|[1-9][0-9]|[1-9][0-9][0-9]) base6=$2;;
+*) base6=""
+esac
+
 case "$1" in
 
     start|up)
@@ -65,6 +73,12 @@ case "$1" in
                else
                        int=$ns
                fi
+               if test -n "$base6"
+               then
+                       int6=`expr $ns + $base6 - 1`
+               else
+                       int6=$ns
+               fi
                case "$sys" in
                    *-pc-solaris2.5.1)
                        ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up
@@ -75,18 +89,28 @@ case "$1" in
                    *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
                        /sbin/ifconfig lo0:$int plumb
                        /sbin/ifconfig lo0:$int 10.53.0.$ns up
+                       if test -n "$int6"
+                       then
+                               /sbin/ifconfig lo0:$int6 inet6 plumb
+                               /sbin/ifconfig lo0:$int6 \
+                                       inet6 fd92:7065:b8e:ffff::$ns up
+                       fi
                        ;;
                    *-*-linux*)
                        ifconfig lo:$int 10.53.0.$ns up netmask 255.255.255.0
+                       ifconfig lo inet6 add fd92:7065:b8e:ffff::$ns/64
                        ;;
                    *-unknown-freebsd*)
                        ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
                        ;;
                    *-unknown-netbsd*)
                        ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
                        ;;
                    *-unknown-openbsd*)
                        ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
                        ;;
                    *-*-bsdi[3-5].*)
                        ifconfig lo0 add 10.53.0.$ns netmask 255.255.255.0
@@ -102,15 +126,18 @@ case "$1" in
                        ;;
                    *-ibm-aix4.*|*-ibm-aix5.*)
                        ifconfig lo0 alias 10.53.0.$ns
+                       ifconfig lo0 inet6 alias -dad fd92:7065:b8e:ffff::$ns/64
                        ;;
                    hpux)
-                       ifconfig lo0:$int 10.53.0.$ns up
+                       ifconfig lo0:$int 10.53.0.$ns netmask 255.255.255.0 up
+                       ifconfig lo0:$int inet6 fd92:7065:b8e:ffff::$ns up
                        ;;
                    *-sco3.2v*)
                        ifconfig lo0 alias 10.53.0.$ns
                        ;;
                    *-darwin*)
                        ifconfig lo0 alias 10.53.0.$ns
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
                        ;;
                    *)
                        echo "Don't know how to set up interface.  Giving up."
@@ -138,18 +165,27 @@ case "$1" in
                    *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
                        ifconfig lo0:$int 10.53.0.$ns down
                        ifconfig lo0:$int 10.53.0.$ns unplumb
+                       if test -n "$int6"
+                       then
+                               ifconfig lo0:$int6 inet6 down
+                               ifconfig lo0:$int6 inet6 unplumb
+                       fi
                        ;;
                    *-*-linux*)
                        ifconfig lo:$int 10.53.0.$ns down
+                       ifconfig lo inet6 del fd92:7065:b8e:ffff::$ns/64
                        ;;
                    *-unknown-freebsd*)
                        ifconfig lo0 10.53.0.$ns delete
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
                        ;;
                    *-unknown-netbsd*)
                        ifconfig lo0 10.53.0.$ns delete
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
                        ;;
                    *-unknown-openbsd*)
                        ifconfig lo0 10.53.0.$ns delete
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
                        ;;
                    *-*-bsdi[3-5].*)
                        ifconfig lo0 remove 10.53.0.$ns
@@ -165,15 +201,18 @@ case "$1" in
                        ;;
                    *-ibm-aix4.*|*-ibm-aix5.*)
                        ifconfig lo0 delete 10.53.0.$ns
+                       ifconfig lo0 delete inet6 fd92:7065:b8e:ffff::$ns/64
                        ;;
                    hpux)
-                       ifconfig lo0:$int 10.53.0.$ns down
+                       ifconfig lo0:$int 0.0.0.0
+                       ifconfig lo0:$int inet6 ::
                        ;;
                    *-sco3.2v*)
                        ifconfig lo0 -alias 10.53.0.$ns
                        ;;
                    *darwin*)
                        ifconfig lo0 -alias 10.53.0.$ns
+                       ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
                        ;;
                    *)
                        echo "Don't know how to destroy interface.  Giving up."
diff --git a/bin/tests/system/testsock6.pl b/bin/tests/system/testsock6.pl
new file mode 100644 (file)
index 0000000..64a013e
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2000, 2001  Internet Software Consortium.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# $Id: testsock6.pl,v 1.2 2010/06/10 06:19:52 marka Exp $
+
+# Test whether the interfaces on 10.53.0.* are up.
+
+require 5.001;
+
+use IO::Socket::INET6;
+
+foreach $addr ($ARGV) {
+       my $sock;
+       $sock = IO::Socket::INET6->new(LocalAddr => $addr,
+                                       LocalPort => 0,
+                                       Proto     => tcp)
+                             or die "Can't bind : $@\n";
+       close($sock);
+}