aboutsummaryrefslogtreecommitdiff
path: root/external/unbound/testcode/testbed.sh
diff options
context:
space:
mode:
Diffstat (limited to 'external/unbound/testcode/testbed.sh')
-rwxr-xr-xexternal/unbound/testcode/testbed.sh133
1 files changed, 133 insertions, 0 deletions
diff --git a/external/unbound/testcode/testbed.sh b/external/unbound/testcode/testbed.sh
new file mode 100755
index 000000000..62ce2059b
--- /dev/null
+++ b/external/unbound/testcode/testbed.sh
@@ -0,0 +1,133 @@
+#!/usr/bin/env bash
+# Testbed for NSD.
+# By Wouter Wijngaards, NLnet Labs, 2006.
+# BSD License.
+
+# this version prefers gmake if available.
+# adds variable LDNS for the LDNS path to use.
+
+# global settings
+CONFIGURE_FLAGS=""
+REPORT_FILE=testdata/testbed.report
+LOG_FILE=testdata/testbed.log
+HOST_FILE=testdata/host_file.$USER
+
+if test ! -f $HOST_FILE; then
+ echo "No such file: $HOST_FILE"
+ exit 1
+fi
+
+function echossh() # like ssh but echos.
+{
+ echo "> ssh $*"
+ ssh $*
+}
+
+# Compile and run NSD on platforms
+function dotest()
+# parameters: <host> <dir>
+# host is name of ssh host
+# dir is directory of nsd trunk on host
+{
+ echo "$1 begin on "`date` | tee -a $REPORT_FILE
+
+ DISABLE=""
+ if test $IP6 = no; then
+ DISABLE="--disable-ipv6"
+ fi
+ if test x$LDNS != x; then
+ DISABLE="--with-ldns=$LDNS $DISABLE"
+ fi
+ if test x$LIBEVENT != x; then
+ DISABLE="--with-libevent=$LIBEVENT $DISABLE"
+ fi
+
+ cat >makeconf.mak.$$ << EOF
+#configure: configure.ac
+# $AC_CMD
+# touch configure
+Makefile: Makefile.in #configure
+ ./configure $CONFIGURE_FLAGS $DISABLE
+ touch Makefile
+EOF
+ scp makeconf.mak.$$ $1:$2
+ # determine make to use
+ tempx=`ssh $1 "cd $2; which gmake"`
+ MAKE_CMD=`ssh $1 "cd $2; if test -f '$tempx'; then echo $tempx; else echo $MAKE_CMD; fi"`
+
+ if test $SVN = yes; then
+ echossh $1 "cd $2; svn up"
+ echossh $1 "cd $2; $MAKE_CMD -f makeconf.mak.$$ configure"
+ else
+ # svn and autoconf locally
+ echo "fake svn via svnexport, tar, autoconf, bison, flex."
+ svn export svn+ssh://open.nlnetlabs.nl/svn/nsd/trunk unbound_ttt
+ (cd unbound_ttt; $AC_CMD; rm -r autom4te* .c-mode-rc.el .cvsignore)
+ if test $FIXCONFIGURE = yes; then
+ echo fixing up configure length test.
+ (cd unbound_ttt; mv configure oldconf; sed -e 's?while (test "X"?lt_cv_sys_max_cmd_len=65500; echo skip || while (test "X"?' <oldconf >configure; chmod +x ./configure)
+ fi
+ du unbound_ttt
+ rsync -vrcpz --rsync-path=/home/wouter/bin/rsync unbound_ttt $1:unbound_ttt
+ # tar czf unbound_ttt.tgz unbound_ttt
+ rm -rf unbound_ttt
+ # ls -al unbound_ttt.tgz
+ # scp unbound_ttt.tgz $1:unbound_ttt.tar.gz
+ # rm unbound_ttt.tgz
+ # echossh $1 "gtar xzf unbound_ttt.tar.gz && rm unbound_ttt.tar.gz"
+ fi
+ echossh $1 "cd $2; $MAKE_CMD -f makeconf.mak.$$ Makefile"
+ echossh $1 "cd $2; $MAKE_CMD all tests"
+ echossh $1 "cd $2; $MAKE_CMD doc"
+ if test $RUN_TEST = yes; then
+ echossh $1 "cd $2; bash testcode/do-tests.sh"
+ echossh $1 "cd $2/testdata; sh ../testcode/mini_tpkg.sh -q report" | tee -a $REPORT_FILE
+ fi
+ echossh $1 "cd $2; rm -f makeconf.mak.$$"
+ rm -f makeconf.mak.$$
+ echo "$1 end on "`date` | tee -a $REPORT_FILE
+}
+
+echo "on "`date`" by $USER." > $REPORT_FILE
+echo "on "`date`" by $USER." > $LOG_FILE
+
+# read host names
+declare -a hostname desc dir vars
+IFS=' '
+i=0
+while read a b c d; do
+ if echo $a | grep "^#" >/dev/null; then
+ continue # skip it
+ fi
+ # append after arrays
+ hostname[$i]=$a
+ desc[$i]=$b
+ dir[$i]=$c
+ vars[$i]=$d
+ i=$(($i+1))
+done <$HOST_FILE
+echo "testing on $i hosts"
+
+# do the test
+for((i=0; i<${#hostname[*]}; i=$i+1)); do
+ if echo ${hostname[$i]} | grep "^#" >/dev/null; then
+ continue # skip it
+ fi
+ # echo "hostname=[${hostname[$i]}]"
+ # echo "desc=[${desc[$i]}]"
+ # echo "dir=[${dir[$i]}]"
+ # echo "vars=[${vars[$i]}]"
+ AC_CMD="libtoolize -c --force; autoconf && autoheader"
+ MAKE_CMD="make"
+ SVN=yes
+ IP6=yes
+ FIXCONFIGURE=no
+ RUN_TEST=yes
+ LDNS=
+ LIBEVENT=
+ eval ${vars[$i]}
+ echo "*** ${hostname[$i]} ${desc[$i]} ***" | tee -a $LOG_FILE | tee -a $REPORT_FILE
+ dotest ${hostname[$i]} ${dir[$i]} 2>&1 | tee -a $LOG_FILE
+done
+
+echo "done"