2 # Bootstrap Samba and run a number of tests against it.
6 REALM=SAMBA.EXAMPLE.COM
12 if test -z "$ROOT"; then
15 if test -z "$ROOT"; then
25 if [ -z "$TORTURE_MAXTIME" ]; then
31 PREFIX=`echo $PREFIX | sed s+//+/+`
34 # allow selection of the test lists
37 if [ $TESTS = "all" ]; then
43 mkdir -p $PREFIX || exit $?
50 TEST_DATA_PREFIX=$PREFIX_ABS
51 export TEST_DATA_PREFIX
53 LD_LIBRARY_PATH=$OLD_PWD/bin:$LD_LIBRARY_PATH
54 export LD_LIBRARY_PATH
56 TMPDIR=$PREFIX_ABS/tmp
57 LIBDIR=$PREFIX_ABS/lib
58 ETCDIR=$PREFIX_ABS/etc
59 PIDDIR=$PREFIX_ABS/pid
60 CONFFILE=$ETCDIR/smb.conf
61 KRB5_CONFIG=$ETCDIR/krb5.conf
62 PRIVATEDIR=$PREFIX_ABS/private
63 NCALRPCDIR=$PREFIX_ABS/ncalrpc
64 LOCKDIR=$PREFIX_ABS/lockdir
65 TLSDIR=$PRIVATEDIR/tls
66 WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket
67 CONFIGURATION="--configfile=$CONFFILE"
71 SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
73 SMBD_TEST_LOG="$PREFIX/smbd_test.log"
77 if [ x"$DO_SOCKET_WRAPPER" = x"SOCKET_WRAPPER" ];then
78 SOCKET_WRAPPER_DIR="$PREFIX/sw"
79 export SOCKET_WRAPPER_DIR
80 echo "SOCKET_WRAPPER_DIR=$SOCKET_WRAPPER_DIR"
83 # start off with 0 failures
88 . $incdir/test_functions.sh
94 mkdir -p $PRIVATEDIR $ETCDIR $LIBDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $TLSDIR
96 cat >$PRIVATEDIR/wins_config.ldif<<EOF
97 dn: name=TORTURE_26,CN=PARTNERS
98 objectClass: wreplPartner
108 netbios name = $NETBIOSNAME
109 netbios aliases = $SERVER
112 private dir = $PRIVATEDIR
113 pid directory = $PIDDIR
114 ncalrpc dir = $NCALRPCDIR
116 setup directory = $SRCDIR/setup
117 js include = $SRCDIR/scripting/libjs
118 winbindd socket directory = $WINBINDD_SOCKET_DIR
119 name resolve order = bcast
120 interfaces = 127.0.0.1/8
121 tls enabled = $TLS_ENABLED
122 panic action = $SRCDIR/script/gdb_backtrace %PID% %PROG%
130 ntvfs handler = posix
131 posix:sharedelay = 100000
132 posix:eadb = $LOCKDIR/eadb.tdb
137 cifs:server = $SERVER
138 cifs:user = $USERNAME
139 cifs:password = $PASSWORD
140 cifs:domain = $DOMAIN
144 cat >$KRB5_CONFIG<<EOF
146 default_realm = SAMBA.EXAMPLE.COM
147 dns_lookup_realm = false
148 dns_lookup_kdc = false
149 ticket_lifetime = 24h
153 SAMBA.EXAMPLE.COM = {
155 admin_server = 127.0.0.1
156 default_domain = samba.example.com
159 .samba.example.com = SAMBA.EXAMPLE.COM
164 echo -n "PROVISIONING..."
166 ./setup/provision $CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1 \
167 --quiet --domain $DOMAIN --realm $REALM \
168 --adminpass $PASSWORD --root=$ROOT || exit 1
170 ./bin/ldbadd -H $PRIVATEDIR/wins_config.ldb < $PRIVATEDIR/wins_config.ldif >/dev/null || exit 1
174 if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
175 CONFIGURATION="$CONFIGURATION --option=torture:progress=no"
178 SOCKET_WRAPPER_DEFAULT_IFACE=1
179 export SOCKET_WRAPPER_DEFAULT_IFACE
182 # ensure any one smbtorture call doesn't run too long
183 SOCKET_WRAPPER_DEFAULT_IFACE=26
184 export SOCKET_WRAPPER_DEFAULT_IFACE
185 TORTURE_INTERFACES='127.0.0.26/8,127.0.0.27/8,127.0.0.28/8,127.0.0.29/8,127.0.0.30/8,127.0.0.31/8'
186 TORTURE_OPTIONS="--maximum-runtime=$TORTURE_MAXTIME --option=interfaces=$TORTURE_INTERFACES $CONFIGURATION"
187 export TORTURE_OPTIONS
189 TORTURE_OPTIONS="$TORTURE_OPTIONS --option=target:samba4=yes"
193 # give time for nbt server to register its names
194 echo delaying for nbt name registration
196 # This will return quickly when things are up, but be slow if we need to wait for (eg) SSL init
197 bin/nmblookup $CONFIGURATION $SERVER
198 bin/nmblookup $CONFIGURATION -U $SERVER $SERVER
199 bin/nmblookup $CONFIGURATION $SERVER
200 bin/nmblookup $CONFIGURATION -U $SERVER $NETBIOSNAME
201 bin/nmblookup $CONFIGURATION $NETBIOSNAME
202 bin/nmblookup $CONFIGURATION -U $SERVER $NETBIOSNAME
206 . script/tests/tests_$TESTS.sh
211 kill `cat $PIDDIR/smbd.pid`
214 echo "START: $START ($0)";
215 echo "END: $END ($0)";
217 # if there were any valgrind failures, show them
218 count=`find $PREFIX -name 'valgrind.log*' | wc -l`
219 if [ "$count" != 0 ]; then
220 for f in $PREFIX/valgrind.log*; do
222 echo "VALGRIND FAILURE";
223 failed=`expr $failed + 1`
229 teststatus $0 $failed