r19507: Merge my DSO fixes branch. Building Samba's libraries as shared libraries
[Samba/aatanasov.git] / source / script / tests / selftest.sh
blob6d9976699591d9aba858b2e91d71615cb91fc6e4
1 #!/bin/sh
2 # Bootstrap Samba and run a number of tests against it.
4 if [ $# -lt 1 ]
5 then
6 echo "$0 PREFIX TESTS"
7 exit
8 fi
10 ARG0=$0
11 ARG1=$1
12 ARG2=$2
13 ARG3=$3
15 if [ -z "$TORTURE_MAXTIME" ]; then
16 TORTURE_MAXTIME=1200
19 # disable rpc validation when using valgrind - its way too slow
20 if [ -z "$VALGRIND" ]; then
21 VALIDATE="validate";
22 else
23 VALIDATE="";
26 OLD_PWD=`pwd`
27 PREFIX=$ARG1
28 PREFIX=`echo $PREFIX | sed s+//+/+`
29 export PREFIX
31 # allow selection of the test lists
32 TESTS=$ARG2
34 if [ $TESTS = "all" ]; then
35 TLS_ENABLED="yes"
36 else
37 TLS_ENABLED="no"
39 export TLS_ENABLED
41 LD_LDB_MODULE_PATH=$OLD_PWD/bin/modules/ldb
42 export LD_LDB_MODULE_PATH
44 LD_SAMBA_MODULE_PATH=$OLD_PWD/bin/modules
45 export LD_SAMBA_MODULE_PATH
47 LD_LIBRARY_PATH=$OLD_PWD/bin:$LD_LIBRARY_PATH
48 export LD_LIBRARY_PATH
50 incdir=`dirname $ARG0`
51 echo -n "PROVISIONING..."
52 . $incdir/mktestsetup.sh $PREFIX || exit 1
53 echo "DONE"
55 PATH=bin:$PATH
56 export PATH
58 DO_SOCKET_WRAPPER=$ARG3
59 if [ x"$DO_SOCKET_WRAPPER" = x"SOCKET_WRAPPER" ];then
60 SOCKET_WRAPPER_DIR="$PREFIX/w"
61 export SOCKET_WRAPPER_DIR
62 echo "SOCKET_WRAPPER_DIR=$SOCKET_WRAPPER_DIR"
63 else
64 echo "NOT USING SOCKET_WRAPPER"
67 incdir=`dirname $ARG0`
68 . $incdir/test_functions.sh
70 #Start slapd before smbd
71 if [ x"$TEST_LDAP" = x"yes" ]; then
72 slapd_start || exit 1;
73 echo -n "LDAP PROVISIONING..."
74 $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS --ldap-backend=$LDAPI || {
75 echo "LDAP PROVISIONING failed: $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS --ldap-backend=$LDAPI"
76 exit 1;
78 #LDAP is slow
79 TORTURE_MAXTIME=`expr $TORTURE_MAXTIME '*' 2`
82 SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
83 export SMBD_TEST_FIFO
84 SMBD_TEST_LOG="$PREFIX/smbd_test.log"
85 export SMBD_TEST_LOG
87 SOCKET_WRAPPER_DEFAULT_IFACE=1
88 export SOCKET_WRAPPER_DEFAULT_IFACE
89 smbd_check_or_start
91 SOCKET_WRAPPER_DEFAULT_IFACE=6
92 export SOCKET_WRAPPER_DEFAULT_IFACE
93 TORTURE_INTERFACES='127.0.0.6/8,127.0.0.7/8,127.0.0.8/8,127.0.0.9/8,127.0.0.10/8,127.0.0.11/8'
94 TORTURE_OPTIONS="--option=interfaces=$TORTURE_INTERFACES $CONFIGURATION"
95 # ensure any one smbtorture call doesn't run too long
96 TORTURE_OPTIONS="$TORTURE_OPTIONS --maximum-runtime=$TORTURE_MAXTIME"
97 TORTURE_OPTIONS="$TORTURE_OPTIONS --target=samba4"
98 export TORTURE_OPTIONS
100 if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
101 TORTURE_OPTIONS="$TORTURE_OPTIONS --option=torture:progress=no"
104 START=`date`
106 # give time for nbt server to register its names
107 echo delaying for nbt name registration
108 sleep 4
109 # This will return quickly when things are up, but be slow if we need to wait for (eg) SSL init
110 bin/nmblookup $CONFIGURATION $SERVER
111 bin/nmblookup $CONFIGURATION -U $SERVER $SERVER
112 bin/nmblookup $CONFIGURATION $SERVER
113 bin/nmblookup $CONFIGURATION -U $SERVER $NETBIOSNAME
114 bin/nmblookup $CONFIGURATION $NETBIOSNAME
115 bin/nmblookup $CONFIGURATION -U $SERVER $NETBIOSNAME
117 # start off with 0 failures
118 failed=0
119 export failed
120 totalfailed=0
121 export totalfailed
123 . script/tests/tests_$TESTS.sh
124 exit $totalfailed
125 ) 9>$SMBD_TEST_FIFO
126 failed=$?
128 kill `cat $PIDDIR/smbd.pid`
130 if [ "$TEST_LDAP"x = "yesx" ]; then
131 kill `cat $PIDDIR/slapd.pid`
134 END=`date`
135 echo "START: $START ($ARG0)";
136 echo "END: $END ($ARG0)";
138 # if there were any valgrind failures, show them
139 count=`find $PREFIX -name 'valgrind.log*' | wc -l`
140 if [ "$count" != 0 ]; then
141 for f in $PREFIX/valgrind.log*; do
142 if [ -s $f ] && grep -v DWARF2.CFI.reader $f > /dev/null; then
143 echo "VALGRIND FAILURE";
144 failed=`expr $failed + 1`
145 cat $f
147 done
150 teststatus $ARG0 $failed