testing: load-testconfig script loads config from source dir
authorTobias Brunner <tobias@strongswan.org>
Thu, 2 Mar 2017 08:50:34 +0000 (09:50 +0100)
committerTobias Brunner <tobias@strongswan.org>
Thu, 2 Mar 2017 10:54:39 +0000 (11:54 +0100)
It now does replace the IPs too. This way it's easier to play around
with a config (otherwise a do-tests run was required to build the
config files in the build dir).

testing/do-tests
testing/scripts/load-testconfig

index fd5cfe6..60c34c7 100755 (executable)
@@ -298,63 +298,6 @@ do
        touch $CONSOLE_LOG
 
        TESTDIR=$TESTSDIR/${testname}
-       rm -rf $TESTDIR
-       mkdir -p $TESTDIR
-       cp -rfp $DEFAULTTESTSDIR/${testname}/* $TESTDIR
-
-
-       ##############################################################################
-       # replace IP wildcards with actual IPv4 and IPv6 addresses
-       #
-
-       for host in $STRONGSWANHOSTS
-       do
-           case $host in
-           moon)
-               searchandreplace PH_IP_MOON1     $ipv4_moon1 $TESTDIR
-               searchandreplace PH_IP_MOON      $ipv4_moon  $TESTDIR
-               searchandreplace PH_IP6_MOON1    $ipv6_moon1 $TESTDIR
-               searchandreplace PH_IP6_MOON     $ipv6_moon  $TESTDIR
-               ;;
-           sun)
-               searchandreplace PH_IP_SUN1      $ipv4_sun1 $TESTDIR
-               searchandreplace PH_IP_SUN       $ipv4_sun  $TESTDIR
-               searchandreplace PH_IP6_SUN1     $ipv6_sun1 $TESTDIR
-               searchandreplace PH_IP6_SUN      $ipv6_sun  $TESTDIR
-               ;;
-           alice)
-               searchandreplace PH_IP_ALICE1    $ipv4_alice1 $TESTDIR
-               searchandreplace PH_IP_ALICE     $ipv4_alice  $TESTDIR
-               searchandreplace PH_IP6_ALICE1   $ipv6_alice1 $TESTDIR
-               searchandreplace PH_IP6_ALICE    $ipv6_alice  $TESTDIR
-               ;;
-           venus)
-               searchandreplace PH_IP_VENUS     $ipv4_venus $TESTDIR
-               searchandreplace PH_IP6_VENUS    $ipv6_venus $TESTDIR
-               ;;
-           bob)
-               searchandreplace PH_IP_BOB       $ipv4_bob $TESTDIR
-               searchandreplace PH_IPV6_BOB     $ipv6_bob $TESTDIR
-               ;;
-           carol)
-               searchandreplace PH_IP_CAROL1    $ipv4_carol1 $TESTDIR
-               searchandreplace PH_IP_CAROL     $ipv4_carol  $TESTDIR
-               searchandreplace PH_IP6_CAROL1   $ipv6_carol1 $TESTDIR
-               searchandreplace PH_IP6_CAROL    $ipv6_carol  $TESTDIR
-               ;;
-           dave)
-               searchandreplace PH_IP_DAVE1     $ipv4_dave1 $TESTDIR
-               searchandreplace PH_IP_DAVE      $ipv4_dave  $TESTDIR
-               searchandreplace PH_IP6_DAVE1    $ipv6_dave1 $TESTDIR
-               searchandreplace PH_IP6_DAVE     $ipv6_dave  $TESTDIR
-               ;;
-           winnetou)
-               searchandreplace PH_IP_WINNETOU  $ipv4_winnetou $TESTDIR
-               searchandreplace PH_IP6_WINNETOU $ipv6_winnetou $TESTDIR
-               ;;
-           esac
-       done
-
 
        ##########################################################################
        # copy test specific configurations to hosts and clear log files
index 5f35c12..a1a0f98 100755 (executable)
@@ -25,24 +25,123 @@ SSHCONF="-F $DIR/../ssh_config"
 
 testname=$1
 
+DEFAULTTESTSDIR=$DIR/../tests
+
+[ -d $DEFAULTTESTSDIR ] || die "Directory 'tests' not found"
+[ -d $DEFAULTTESTSDIR/$testname ] || die "Test '$testname' not found"
+[ -f $DEFAULTTESTSDIR/$testname/test.conf ] || die "File 'test.conf' is missing"
+
 TESTSDIR=$BUILDDIR/tests
+[ -d $TESTSDIR ] || mkdir $TESTSDIR
+
+TESTDIR=$TESTSDIR/${testname}
+rm -rf $TESTDIR
+mkdir -p $TESTDIR
+cp -rfp $DEFAULTTESTSDIR/${testname}/* $TESTDIR
+
+##############################################################################
+# assign IP for each host to hostname
+#
+
+for host in $STRONGSWANHOSTS
+do
+    eval ipv4_${host}="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
+    eval ipv6_${host}="`echo $HOSTNAMEIPV6 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
 
-[ -d $TESTSDIR ] || die "Directory '$TESTSDIR' not found"
-[ -d $TESTSDIR/$testname ] || die "Test '$testname' not found"
-[ -f $TESTSDIR/$testname/test.conf ] || die "File 'test.conf' is missing"
+    case $host in
+    moon)
+        eval ipv4_moon1="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        eval ipv6_moon1="`echo $HOSTNAMEIPV6 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        ;;
+    sun)
+        eval ipv4_sun1="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        eval ipv6_sun1="`echo $HOSTNAMEIPV6 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        ;;
+    alice)
+        eval ipv4_alice1="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        eval ipv6_alice1="`echo $HOSTNAMEIPV6 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        ;;
+    venus)
+        ;;
+    bob)
+        ;;
+    carol)
+        eval ipv4_carol1="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        eval ipv6_carol1="`echo $HOSTNAMEIPV6 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+         ;;
+    dave)
+        eval ipv4_dave1="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        eval ipv6_dave1="`echo $HOSTNAMEIPV6 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $2 }' | awk '{ print $1 }'`"
+        ;;
+    winnetou)
+        ;;
+    esac
+done
+
+##############################################################################
+# replace IP wildcards with actual IPv4 and IPv6 addresses
+#
+
+for host in $STRONGSWANHOSTS
+do
+    case $host in
+    moon)
+    searchandreplace PH_IP_MOON1     $ipv4_moon1 $TESTDIR
+    searchandreplace PH_IP_MOON      $ipv4_moon  $TESTDIR
+    searchandreplace PH_IP6_MOON1    $ipv6_moon1 $TESTDIR
+    searchandreplace PH_IP6_MOON     $ipv6_moon  $TESTDIR
+    ;;
+    sun)
+    searchandreplace PH_IP_SUN1      $ipv4_sun1 $TESTDIR
+    searchandreplace PH_IP_SUN       $ipv4_sun  $TESTDIR
+    searchandreplace PH_IP6_SUN1     $ipv6_sun1 $TESTDIR
+    searchandreplace PH_IP6_SUN      $ipv6_sun  $TESTDIR
+    ;;
+    alice)
+    searchandreplace PH_IP_ALICE1    $ipv4_alice1 $TESTDIR
+    searchandreplace PH_IP_ALICE     $ipv4_alice  $TESTDIR
+    searchandreplace PH_IP6_ALICE1   $ipv6_alice1 $TESTDIR
+    searchandreplace PH_IP6_ALICE    $ipv6_alice  $TESTDIR
+    ;;
+    venus)
+    searchandreplace PH_IP_VENUS     $ipv4_venus $TESTDIR
+    searchandreplace PH_IP6_VENUS    $ipv6_venus $TESTDIR
+    ;;
+    bob)
+    searchandreplace PH_IP_BOB       $ipv4_bob $TESTDIR
+    searchandreplace PH_IPV6_BOB     $ipv6_bob $TESTDIR
+    ;;
+    carol)
+    searchandreplace PH_IP_CAROL1    $ipv4_carol1 $TESTDIR
+    searchandreplace PH_IP_CAROL     $ipv4_carol  $TESTDIR
+    searchandreplace PH_IP6_CAROL1   $ipv6_carol1 $TESTDIR
+    searchandreplace PH_IP6_CAROL    $ipv6_carol  $TESTDIR
+    ;;
+    dave)
+    searchandreplace PH_IP_DAVE1     $ipv4_dave1 $TESTDIR
+    searchandreplace PH_IP_DAVE      $ipv4_dave  $TESTDIR
+    searchandreplace PH_IP6_DAVE1    $ipv6_dave1 $TESTDIR
+    searchandreplace PH_IP6_DAVE     $ipv6_dave  $TESTDIR
+    ;;
+    winnetou)
+    searchandreplace PH_IP_WINNETOU  $ipv4_winnetou $TESTDIR
+    searchandreplace PH_IP6_WINNETOU $ipv6_winnetou $TESTDIR
+    ;;
+    esac
+done
 
-source $TESTSDIR/$testname/test.conf
+source $TESTDIR/test.conf
 
 ##########################################################################
 # copy test specific configurations to uml hosts
 #
 
-if [ -d $TESTSDIR/$testname/hosts ]
+if [ -d $TESTDIR/hosts ]
 then
-    for host in `ls $TESTSDIR/$testname/hosts`
+    for host in `ls $TESTDIR/hosts`
     do
-       eval HOSTLOGIN="root@`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
-       scp $SSHCONF -r $TESTSDIR/$testname/hosts/$host/etc $HOSTLOGIN:/ > /dev/null 2>&1
+       eval HOSTLOGIN=root@\$ipv4_${host}
+       scp $SSHCONF -r $TESTDIR/hosts/$host/etc $HOSTLOGIN:/ > /dev/null 2>&1
     done
 fi
 
@@ -53,7 +152,7 @@ fi
 
 for host in $IPSECHOSTS
 do
-    eval HOSTLOGIN="root@`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
+    eval HOSTLOGIN=root@\$ipv4_${host}
     ssh $SSHCONF $HOSTLOGIN 'rm -f /var/log/auth.log /var/log/daemon.log; \
                    kill -SIGHUP `cat /var/run/rsyslogd.pid`' > /dev/null 2>&1
 done
@@ -65,7 +164,7 @@ done
 
 for host in $RADIUSHOSTS
 do
-    eval HOSTLOGIN="root@`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
+    eval HOSTLOGIN=root@\$ipv4_${host}
     ssh $SSHCONF $HOSTLOGIN 'rm -f /var/log/daemon.log /var/log/freeradius/radius.log; \
                    kill -SIGHUP `cat /var/run/rsyslogd.pid`' > /dev/null 2>&1
 done