r7506: handle the case where cron does not setup $USER
[garming/samba-autobuild/.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 TMPDIR=$PREFIX/tmp
21 LIBDIR=$PREFIX/lib
22 PIDDIR=$PREFIX/pid
23 CONFFILE=$LIBDIR/smb.conf
24 PRIVATEDIR=$PREFIX/private
25 NCALRPCDIR=$PREFIX/ncalrpc
26 LOCKDIR=$PREFIX/lockdir
27
28 SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
29 export SMBD_TEST_FIFO
30 SMBD_TEST_LOG="$PREFIX/smbd_test.log"
31 export SMBD_TEST_LOG
32
33 DO_SOCKET_WRAPPER=$2
34 if [ x"$DO_SOCKET_WRAPPER" = x"SOCKET_WRAPPER" ];then
35         SOCKET_WRAPPER_DIR="$PREFIX/socket_wrapper_dir"
36         export SOCKET_WRAPPER_DIR
37         echo "SOCKET_WRAPPER_DIR=$SOCKET_WRAPPER_DIR"
38 fi
39
40 incdir=`dirname $0`
41 . $incdir/test_functions.sh
42
43 rm -rf $PREFIX/*
44 mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR
45 ./setup/provision.pl --quiet --outputdir $PRIVATEDIR --domain $DOMAIN --realm $REALM \
46     --adminpass $PASSWORD --root=$ROOT
47
48 cat >$CONFFILE<<EOF
49 [global]
50         netbios name = LOCALHOST
51         workgroup = $DOMAIN
52         realm = $REALM
53         private dir = $PRIVATEDIR
54         pid directory = $PIDDIR
55         ncalrpc dir = $NCALRPCDIR
56         lock dir = $LOCKDIR
57         sam database = tdb://$PRIVATEDIR/sam.ldb
58         name resolve order = bcast
59         interfaces = lo
60
61 [tmp]
62         path = $TMPDIR
63         read only = no
64         ntvfs handler = posix
65         posix:sharedelay = 100000
66         posix:eadb = $LOCKDIR/eadb.tdb
67 EOF
68
69 ADDARG="-s $CONFFILE"
70 if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
71         ADDARG="$ADDARG --option=\"torture:progress=no\""
72 fi
73
74 smbd_check_or_start
75
76 # ensure any one smbtorture call doesn't run too long
77 TORTURE_OPTIONS="--maximum-runtime=300"
78 export TORTURE_OPTIONS
79
80
81 START=`date`
82 (
83  # give time for nbt server to register its names
84  echo delaying for nbt name registration
85  sleep 4
86
87  failed=0
88  $SRCDIR/script/tests/test_rpc.sh localhost $USERNAME $PASSWORD $DOMAIN $ADDARG || failed=`expr $failed + $?`
89  $SRCDIR/script/tests/test_binding_string.sh localhost $USERNAME $PASSWORD $DOMAIN $ADDARG || failed=`expr $failed + $?`
90  $SRCDIR/script/tests/test_echo.sh localhost $USERNAME $PASSWORD $DOMAIN $ADDARG || failed=`expr $failed + $?`
91  $SRCDIR/script/tests/test_posix.sh //localhost/tmp $USERNAME $PASSWORD "" $ADDARG || failed=`expr $failed + $?`
92  $SRCDIR/script/tests/test_local.sh $ADDARG || failed=`expr $failed + $?`
93  exit $failed
94 ) 9>$SMBD_TEST_FIFO
95 failed=$?
96
97 END=`date`
98 echo "START: $START ($0)";
99 echo "END:   $END ($0)";
100
101 teststatus $0 $failed