blob: 48f034cf1d318b65d62185129c2dfc208c1232cd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
#!/bin/sh
if [ $# != 3 ]; then
echo "$0 <directory> <all | quick> <smbtorture4>"
exit 1
fi
SMBTORTURE4=$3
TESTS=$2
##
## create the test directory
##
PREFIX=`echo $1 | sed s+//+/+`
mkdir -p $PREFIX || exit $?
OLD_PWD=`pwd`
cd $PREFIX || exit $?
PREFIX_ABS=`pwd`
cd $OLD_PWD
if [ -z "$TORTURE_MAXTIME" ]; then
TORTURE_MAXTIME=300
fi
export TORTURE_MAXTIME
##
## setup the various environment variables we need
##
SERVER=localhost2
SERVER_IP=127.0.0.2
USERNAME=`PATH=/usr/ucb:$PATH whoami`
PASSWORD=test
SRCDIR="`dirname $0`/../.."
BINDIR="`pwd`/bin"
SCRIPTDIR=$SRCDIR/script/tests
SHRDIR=$PREFIX_ABS/tmp
LIBDIR=$PREFIX_ABS/lib
PIDDIR=$PREFIX_ABS/pid
CONFFILE=$LIBDIR/client.conf
SAMBA4CONFFILE=$LIBDIR/samba4client.conf
SERVERCONFFILE=$LIBDIR/server.conf
COMMONCONFFILE=$LIBDIR/common.conf
PRIVATEDIR=$PREFIX_ABS/private
LOCKDIR=$PREFIX_ABS/lockdir
LOGDIR=$PREFIX_ABS/logs
SOCKET_WRAPPER_DIR=$PREFIX/sw
CONFIGURATION="-s $CONFFILE"
SAMBA4CONFIGURATION="-s $SAMBA4CONFFILE"
export PREFIX PREFIX_ABS
export CONFIGURATION CONFFILE SAMBA4CONFIGURATION SAMBA4CONFFILE
export PATH SOCKET_WRAPPER_DIR DOMAIN
export PRIVATEDIR LIBDIR PIDDIR LOCKDIR LOGDIR SERVERCONFFILE
export SRCDIR SCRIPTDIR BINDIR
export USERNAME PASSWORD
export SMBTORTURE4
export SERVER SERVER_IP
PATH=bin:$PATH
export PATH
##
## verify that we were built with --enable-socket-wrapper
##
if test "x`smbd -b | grep SOCKET_WRAPPER`" = "x"; then
echo "***"
echo "*** You must include --enable-socket-wrapper when compiling Samba"
echo "*** in order to execute 'make test'. Exiting...."
echo "***"
exit 1
fi
##
## create the test directory layout
##
echo -n "CREATE TEST ENVIRONMENT IN '$PREFIX'"...
/bin/rm -rf $PREFIX/*
mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $LOCKDIR $LOGDIR $SOCKET_WRAPPER_DIR
mkdir -p $PREFIX_ABS/tmp
chmod 777 $PREFIX_ABS/tmp
##
## Create the common config include file with the basic settings
##
cat >$COMMONCONFFILE<<EOF
workgroup = SAMBA-TEST
private dir = $PRIVATEDIR
pid directory = $PIDDIR
lock directory = $LOCKDIR
log file = $LOGDIR/log.%m
log level = 0
passdb backend = tdbsam
name resolve order = bcast
EOF
cat >$CONFFILE<<EOF
[global]
netbios name = TORTURE26
interfaces = 127.0.0.26/8
panic action = $SCRIPTDIR/gdb_backtrace %d
include = $COMMONCONFFILE
EOF
cat >$SAMBA4CONFFILE<<EOF
[global]
netbios name = TORTURE26
interfaces = 127.0.0.26/8
panic action = $SCRIPTDIR/gdb_backtrace %PID% %PROG%
include = $COMMONCONFFILE
EOF
cat >$SERVERCONFFILE<<EOF
[global]
netbios name = $SERVER
interfaces = $SERVER_IP/8
bind interfaces only = yes
panic action = $SCRIPTDIR/gdb_backtrace %d
include = $COMMONCONFFILE
; Necessary to add the build farm hacks
add user script = /bin/false
add machine script = /bin/false
kernel oplocks = no
printing = bsd
printcap name = /dev/null
[tmp]
path = $PREFIX_ABS/tmp
read only = no
smbd:sharedelay = 100000
[hideunread]
copy = tmp
hide unreadable = yes
[hideunwrite]
copy = tmp
hide unwriteable files = yes
EOF
##
## create a test account
##
(echo $PASSWORD; echo $PASSWORD) | \
smbpasswd -c $CONFFILE -L -s -a $USERNAME >/dev/null || exit 1
echo "DONE";
SERVER_TEST_FIFO="$PREFIX/server_test.fifo"
export SERVER_TEST_FIFO
NMBD_TEST_LOG="$PREFIX/nmbd_test.log"
export NMBD_TEST_LOG
SMBD_TEST_LOG="$PREFIX/smbd_test.log"
export SMBD_TEST_LOG
# start off with 0 failures
failed=0
export failed
. $SCRIPTDIR/test_functions.sh
SOCKET_WRAPPER_DEFAULT_IFACE=2
export SOCKET_WRAPPER_DEFAULT_IFACE
samba3_check_or_start
# ensure any one smbtorture call doesn't run too long
# and smbtorture will use 127.0.0.26 as source address by default
SOCKET_WRAPPER_DEFAULT_IFACE=26
export SOCKET_WRAPPER_DEFAULT_IFACE
TORTURE4_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'
TORTURE4_OPTIONS="--option=interfaces=$TORTURE4_INTERFACES $SAMBA4CONFIGURATION"
TORTURE4_OPTIONS="$TORTURE4_OPTIONS --maximum-runtime=$TORTURE_MAXTIME"
TORTURE4_OPTIONS="$TORTURE4_OPTIONS --target=samba3"
export TORTURE4_OPTIONS
if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=torture:progress=no"
fi
##
## ready to go...now loop through the tests
##
START=`date`
(
# give time for nbt server to register its names
echo "delaying for nbt name registration"
sleep 4
# This will return quickly when things are up, but be slow if we need to wait for (eg) SSL init
bin/nmblookup $CONFIGURATION -U $SERVER_IP __SAMBA__
bin/nmblookup $CONFIGURATION __SAMBA__
bin/nmblookup $CONFIGURATION -U 127.255.255.255 __SAMBA__
bin/nmblookup $CONFIGURATION -U $SERVER_IP $SERVER
bin/nmblookup $CONFIGURATION $SERVER
# make sure smbd is also up set
echo "wait for smbd"
bin/smbclient $CONFIGURATION -L $SERVER_IP -U% -p 139 | head -2
bin/smbclient $CONFIGURATION -L $SERVER_IP -U% -p 139 | head -2
failed=0
. $SCRIPTDIR/tests_$TESTS.sh
exit $failed
)
failed=$?
samba3_stop_sig_term
END=`date`
echo "START: $START ($0)";
echo "END: $END ($0)";
# if there were any valgrind failures, show them
count=`find $PREFIX -name 'valgrind.log*' | wc -l`
if [ "$count" != 0 ]; then
for f in $PREFIX/valgrind.log*; do
if [ -s $f ]; then
echo "VALGRIND FAILURE";
failed=`expr $failed + 1`
cat $f
fi
done
fi
sleep 2
samba3_stop_sig_kill
teststatus $0 $failed
|