r8269: added automatic testing of rpc calls from ejs in 'make test'
[kai/samba.git] / source4 / script / tests / selftest.sh
1 #!/bin/sh
2 DOMAIN=SAMBADOMAIN
3 USERNAME=administrator
4 REALM=$DOMAIN
5 PASSWORD=penguin
6 SRCDIR=`pwd`
7 ROOT=$USER
8 if test -z "$ROOT"; then
9     ROOT=`whoami`
10 fi
11
12 if [ $# -lt 1 ]
13 then
14         echo "$0 PREFIX"
15         exit
16 fi
17
18 PREFIX=$1
19 export PREFIX
20 mkdir -p $PREFIX || exit $?
21 OLD_PWD=`pwd`
22 cd $PREFIX || exit $?
23 PREFIX_ABS=`pwd`
24 export PREFIX_ABS
25 cd $OLD_PWD
26
27 TMPDIR=$PREFIX_ABS/tmp
28 LIBDIR=$PREFIX_ABS/lib
29 PIDDIR=$PREFIX_ABS/pid
30 CONFFILE=$LIBDIR/smb.conf
31 PRIVATEDIR=$PREFIX_ABS/private
32 NCALRPCDIR=$PREFIX_ABS/ncalrpc
33 LOCKDIR=$PREFIX_ABS/lockdir
34 TLSDIR=$PRIVATEDIR/tls
35 CONFIGURATION="--configfile=$CONFFILE"
36 export CONFIGURATION
37
38 SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
39 export SMBD_TEST_FIFO
40 SMBD_TEST_LOG="$PREFIX/smbd_test.log"
41 export SMBD_TEST_LOG
42
43 DO_SOCKET_WRAPPER=$2
44 if [ x"$DO_SOCKET_WRAPPER" = x"SOCKET_WRAPPER" ];then
45         SOCKET_WRAPPER_DIR="$PREFIX/socket_wrapper_dir"
46         export SOCKET_WRAPPER_DIR
47         echo "SOCKET_WRAPPER_DIR=$SOCKET_WRAPPER_DIR"
48 fi
49
50 # start off with 0 failures
51 failed=0
52 export failed
53
54 incdir=`dirname $0`
55 . $incdir/test_functions.sh
56
57 rm -rf $PREFIX/*
58 mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $TLSDIR
59 ./setup/provision.pl --quiet --outputdir $PRIVATEDIR --domain $DOMAIN --realm $REALM \
60     --adminpass $PASSWORD --root=$ROOT
61
62 cat >$CONFFILE<<EOF
63 [global]
64         netbios name = LOCALHOST
65         workgroup = $DOMAIN
66         realm = $REALM
67         private dir = $PRIVATEDIR
68         pid directory = $PIDDIR
69         ncalrpc dir = $NCALRPCDIR
70         lock dir = $LOCKDIR
71         name resolve order = bcast
72         interfaces = lo*
73
74 [tmp]
75         path = $TMPDIR
76         read only = no
77         ntvfs handler = posix
78         posix:sharedelay = 100000
79         posix:eadb = $LOCKDIR/eadb.tdb
80
81 [cifs]
82         read only = no
83         ntvfs handler = cifs
84         cifs:server = localhost
85         cifs:user = $USERNAME
86         cifs:password = $PASSWORD
87         cifs:domain = $DOMAIN
88         cifs:share = tmp
89 EOF
90
91 if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
92         CONFIGURATION="$CONFIGURATION --option=\"torture:progress=no\""
93 fi
94
95 smbd_check_or_start
96
97 # ensure any one smbtorture call doesn't run too long
98 TORTURE_OPTIONS="--maximum-runtime=300 $CONFIGURATION"
99 export TORTURE_OPTIONS
100
101
102 START=`date`
103 (
104  # give time for nbt server to register its names
105  echo delaying for nbt name registration
106  sleep 4
107  bin/nmblookup -U localhost localhost 
108
109  failed=0
110  $SRCDIR/script/tests/test_ejs.sh localhost $USERNAME $PASSWORD || failed=`expr $failed + $?`
111  $SRCDIR/script/tests/test_ldap.sh localhost $USERNAME $PASSWORD || failed=`expr $failed + $?`
112  $SRCDIR/script/tests/test_quick.sh //localhost/cifs $USERNAME $PASSWORD "" || failed=`expr $failed + $?`
113  $SRCDIR/script/tests/test_rpc.sh localhost $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
114  $SRCDIR/script/tests/test_session_key.sh localhost $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
115  $SRCDIR/script/tests/test_binding_string.sh localhost $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
116  $SRCDIR/script/tests/test_echo.sh localhost $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
117  $SRCDIR/script/tests/test_posix.sh //localhost/tmp $USERNAME $PASSWORD "" || failed=`expr $failed + $?`
118  $SRCDIR/script/tests/test_local.sh || failed=`expr $failed + $?`
119  exit $failed
120 ) 9>$SMBD_TEST_FIFO
121 failed=$?
122
123 END=`date`
124 echo "START: $START ($0)";
125 echo "END:   $END ($0)";
126
127 teststatus $0 $failed