aboutsummaryrefslogtreecommitdiffstats
path: root/testing/scripts
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2017-03-02 09:50:34 +0100
committerTobias Brunner <tobias@strongswan.org>2017-03-02 11:54:39 +0100
commit3fb68ac211578ec2c5125f7a89df05ab3b7f10cb (patch)
tree13332c88bf778cf1d16acdab0bf9dcc262b5c098 /testing/scripts
parent9d8192bfcd74912600abc9417e392a0cb469260e (diff)
downloadstrongswan-3fb68ac211578ec2c5125f7a89df05ab3b7f10cb.tar.bz2
strongswan-3fb68ac211578ec2c5125f7a89df05ab3b7f10cb.tar.xz
testing: load-testconfig script loads config from source dir
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).
Diffstat (limited to 'testing/scripts')
-rwxr-xr-xtesting/scripts/load-testconfig119
1 files changed, 109 insertions, 10 deletions
diff --git a/testing/scripts/load-testconfig b/testing/scripts/load-testconfig
index 5f35c129e..a1a0f987d 100755
--- a/testing/scripts/load-testconfig
+++ b/testing/scripts/load-testconfig
@@ -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