2cd886811c49b448d33d560cb2a53b0ae3f63318
[kai/samba-autobuild/.git] / source4 / selftest / tests.sh
1 #!/bin/sh
2 # This script generates a list of testsuites that should be run as part of 
3 # the Samba 4 test suite.
4
5 # The output of this script is parsed by selftest.pl, which then decides 
6 # which of the tests to actually run. It will, for example, skip all tests 
7 # listed in selftest/skip or only run a subset during "make quicktest".
8
9 # The idea is that this script outputs all of the tests of Samba 4, not 
10 # just those that are known to pass, and list those that should be skipped 
11 # or are known to fail in selftest/skip or selftest/knownfail. This makes it 
12 # very easy to see what functionality is still missing in Samba 4 and makes 
13 # it possible to run the testsuite against other servers, such as Samba 3 or 
14 # Windows that have a different set of features.
15
16 # The syntax for a testsuite is "-- TEST --" on a single line, followed 
17 # by the name of the test, the environment it needs and the command to run, all 
18 # three separated by newlines. All other lines in the output are considered 
19 # comments.
20
21 if [ ! -n "$PERL" ]
22 then
23         PERL=perl
24 fi
25
26 if [ ! -n "$PYTHON" ]
27 then
28         PYTHON=python
29 fi
30
31 plantestsuite() {
32         name=$1
33         env=$2
34         shift 2
35         cmdline="$*"
36         echo "-- TEST --"
37         echo $name
38         echo $env
39         echo "$cmdline 2>&1 | ../selftest/filter-subunit --prefix=\"$name.\""
40 }
41
42 plantestsuite_loadlist() {
43         name=$1
44         env=$2
45         shift 2
46         cmdline="$*"
47         echo "-- TEST-LOADLIST --"
48         if [ "$env" = "none" ]; then
49                 fullname="$name"
50         else
51                 fullname="$name ($env)"
52         fi
53         echo $fullname
54         echo $env
55         echo "$cmdline \$LOADLIST 2>&1 | ../selftest/filter-subunit --prefix=\"$fullname.\""
56 }
57
58 plantestsuite_idlist() {
59         name=$1
60         env=$2
61         shift 2
62         cmdline="$*"
63         echo "-- TEST-IDLIST --"
64         echo $name
65         echo $env
66         echo $cmdline
67 }
68
69 skiptestsuite() {
70         name=$1
71         reason=$2
72         shift 2
73         # FIXME: Report this using subunit, but re-adjust the testsuite count somehow
74         echo "skipping $name ($reason)"
75 }
76
77 normalize_testname() {
78         name=$1
79         shift 1
80         echo $name | tr "A-Z- " "a-z._"
81 }
82
83 planperltestsuite() {
84         name=$1
85         shift 1
86         cmdline="$*"
87         if $PERL -e 'eval require Test::More;' > /dev/null 2>&1; then
88                 plantestsuite "$name" "none" $PERL $cmdline "|" $TAP2SUBUNIT 
89         else
90                 skiptestsuite "$name" "Test::More not available"
91         fi
92 }
93
94 planpythontestsuite() {
95         env=$1
96         module=$2
97         shift 2
98         plantestsuite_idlist "$module" "$env" PYTHONPATH=$PYTHONPATH:$samba4srcdir/../lib/subunit/python:$samba4srcdir/../lib/testtools $PYTHON -m subunit.run $module
99 }
100
101 plansmbtorturetestsuite() {
102         name=$1
103         env=$2
104         shift 2
105         other_args="$*"
106         modname="samba4.`normalize_testname $name`"
107         cmdline="$VALGRIND $smb4torture $other_args $name"
108         plantestsuite_loadlist "$modname" "$env" $cmdline
109 }
110
111 samba4srcdir="`dirname $0`/.."
112 if [ -z "$BUILDDIR" ]; then
113         BUILDDIR="$samba4srcdir"
114 fi
115 samba4bindir="$BUILDDIR/bin"
116 smb4torture="$samba4bindir/smbtorture${EXEEXT}"
117 if which tap2subunit 2>/dev/null; then
118         TAP2SUBUNIT=tap2subunit
119 else
120         TAP2SUBUNIT="PYTHONPATH=$samba4srcdir/../lib/subunit/python:$samba4srcdir/../lib/testtools $PYTHON $samba4srcdir/../lib/subunit/filters/tap2subunit"
121 fi
122 $smb4torture -V
123
124 bbdir=../testprogs/blackbox
125
126 CONFIGURATION="--configfile=\$SMB_CONF_PATH"
127
128 rm -rf $SELFTEST_PREFIX/s4client
129 mkdir -p $SELFTEST_PREFIX/s4client
130
131 TORTURE_OPTIONS=""
132 TORTURE_OPTIONS="$TORTURE_OPTIONS $CONFIGURATION"
133 TORTURE_OPTIONS="$TORTURE_OPTIONS --maximum-runtime=$SELFTEST_MAXTIME"
134 TORTURE_OPTIONS="$TORTURE_OPTIONS --target=$SELFTEST_TARGET"
135 TORTURE_OPTIONS="$TORTURE_OPTIONS --basedir=$SELFTEST_PREFIX/s4client"
136 if [ -z "$SELFTEST_VERBOSE" ]; then
137         TORTURE_OPTIONS="$TORTURE_OPTIONS --option=torture:progress=no"
138 fi
139 TORTURE_OPTIONS="$TORTURE_OPTIONS --format=subunit"
140 if [ -n "$SELFTEST_QUICK" ]; then
141         TORTURE_OPTIONS="$TORTURE_OPTIONS --option=torture:quick=yes"
142 fi
143 smb4torture="$smb4torture $TORTURE_OPTIONS"
144
145 echo "OPTIONS $TORTURE_OPTIONS"
146
147 # Simple tests for LDAP and CLDAP
148
149 for options in "" "--option=socket:testnonblock=true" "-U\$USERNAME%\$PASSWORD --option=socket:testnonblock=true" "-U\$USERNAME%\$PASSWORD" "-U\$USERNAME%\$PASSWORD -k yes" "-U\$USERNAME%\$PASSWORD -k no" "-U\$USERNAME%\$PASSWORD -k no --sign" "-U\$USERNAME%\$PASSWORD -k no --encrypt" "-U\$USERNAME%\$PASSWORD -k yes --encrypt" "-U\$USERNAME%\$PASSWORD -k yes --sign"; do
150         plantestsuite "ldb.ldap with options $options (dc)" dc $bbdir/test_ldb.sh ldap \$SERVER $options
151 done
152 # see if we support ldaps
153 [ -n "$CONFIG_H" ] || {
154         CONFIG_H="$samba4bindir/default/source4/include/config.h"
155 }
156 if grep ENABLE_GNUTLS.1 $CONFIG_H > /dev/null; then
157         for options in "" "-U\$USERNAME%\$PASSWORD"; do
158                 plantestsuite "ldb.ldaps with options $options (dc)" dc $bbdir/test_ldb.sh ldaps \$SERVER_IP $options
159         done
160 fi
161 for options in "" "-U\$USERNAME%\$PASSWORD"; do
162         plantestsuite "ldb.ldapi with options $options (dc:local)" dc:local $bbdir/test_ldb.sh ldapi \$PREFIX_ABS/dc/private/ldapi $options
163 done
164 for t in `$smb4torture --list | grep "^LDAP-"`
165 do
166         plansmbtorturetestsuite "$t" dc "-U\$USERNAME%\$PASSWORD" //\$SERVER_IP/_none_
167 done
168
169 LDBDIR=$samba4srcdir/lib/ldb
170 export LDBDIR
171 # Don't run LDB tests when using system ldb, as we won't have ldbtest installed
172 if [ -f $samba4bindir/ldbtest ]; then
173         plantestsuite "ldbbase" none TEST_DATA_PREFIX=\$PREFIX $LDBDIR/tests/test-tdb.sh
174 else
175         skiptestsuite "ldbbase" "Using system LDB, ldbtest not available"
176 fi
177
178 # Tests for RPC
179
180 # add tests to this list as they start passing, so we test
181 # that they stay passing
182 ncacn_np_tests="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-HANDLES RPC-SAMSYNC RPC-SAMBA3-SESSIONKEY RPC-SAMBA3-GETUSERNAME RPC-SAMBA3-LSA RPC-SAMBA3-BIND RPC-SAMBA3-NETLOGON RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
183 ncalrpc_tests="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-DRSUAPI RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
184 drs_rpc_tests=`$smb4torture --list | grep '^DRS-RPC'`
185 ncacn_ip_tcp_tests="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-HANDLES RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT RPC-OBJECTUUID $drs_rpc_tests"
186 slow_ncacn_np_tests="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-LARGE-DC RPC-SAMR-USERS-PRIVILEGES RPC-SAMR-PASSWORDS RPC-SAMR-PASSWORDS-PWDLASTSET"
187 slow_ncalrpc_tests="RPC-SAMR RPC-SAMR-PASSWORDS"
188 slow_ncacn_ip_tcp_tests="RPC-SAMR RPC-SAMR-PASSWORDS RPC-CRACKNAMES"
189
190 all_tests="$ncalrpc_tests $ncacn_np_tests $ncacn_ip_tcp_tests $slow_ncalrpc_tests $slow_ncacn_np_tests $slow_ncacn_ip_tcp_tests RPC-LSA-SECRETS RPC-SAMBA3-SHARESEC RPC-COUNTCALLS"
191
192 # Make sure all tests get run
193 rpc_tests=`$smb4torture --list | grep '^RPC-'`
194 rpc_tests_list="${rpc_tests}"
195 for t in $rpc_tests_list
196 do
197         echo $all_tests | grep "$t"  > /dev/null
198         if [ $? -ne 0 ]
199         then
200                 auto_rpc_tests="$auto_rpc_tests $t"
201         fi
202 done
203
204 for bindoptions in seal,padcheck $VALIDATE bigendian; do
205         for transport in ncalrpc ncacn_np ncacn_ip_tcp; do
206                 env="dc"
207                 case $transport in
208                          ncalrpc) tests=$ncalrpc_tests;env="dc:local" ;;
209                          ncacn_np) tests=$ncacn_np_tests ;;
210                          ncacn_ip_tcp) tests=$ncacn_ip_tcp_tests ;;
211                 esac
212                 for t in $tests; do
213                         plantestsuite_loadlist "samba4.`normalize_testname $t` on $transport with $bindoptions" $env $VALGRIND $smb4torture $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
214                 done
215                 plantestsuite_loadlist "samba4.rpc.samba3.sharesec on $transport with $bindoptions" $env $VALGRIND $smb4torture $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN --option=torture:share=tmp RPC-SAMBA3-SHARESEC "$*"
216         done
217 done
218
219 for bindoptions in "" $VALIDATE bigendian; do
220         for t in $auto_rpc_tests; do
221                 plantestsuite_loadlist "samba4.`normalize_testname $t` with $bindoptions" dc $VALGRIND $smb4torture "\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
222         done
223 done
224
225 t="RPC-COUNTCALLS"
226 plantestsuite_loadlist "samba4.`normalize_testname $t`" dc:local $VALGRIND $smb4torture "\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
227
228 for bindoptions in connect $VALIDATE ; do
229         for transport in ncalrpc ncacn_np ncacn_ip_tcp; do
230                 env="dc"
231                 case $transport in
232                         ncalrpc) tests=$slow_ncalrpc_tests; env="dc:local" ;;
233                         ncacn_np) tests=$slow_ncacn_np_tests ;;
234                         ncacn_ip_tcp) tests=$slow_ncacn_ip_tcp_tests ;;
235                 esac
236                 for t in $tests; do
237                         plantestsuite_loadlist "samba4.`normalize_testname $t` on $transport with $bindoptions" $env $VALGRIND $smb4torture $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
238                 done
239         done
240 done
241 # Tests for the DFS referral calls implementation
242
243 dfsc=`$smb4torture --list | grep "^DFS-" | xargs`
244
245 for t in $dfsc; do
246         plansmbtorturetestsuite "$t" dc $ADDARGS //\$SERVER/ipc$ -U"\$USERNAME"%"\$PASSWORD"
247 done
248
249 # Tests for the NET API (NET-API-BECOME-DC tested below against all the roles)
250
251 net=`$smb4torture --list | grep "^NET-" | grep -v NET-API-BECOME-DC`
252
253 for t in $net; do
254         plansmbtorturetestsuite "$t" dc "\$SERVER[$VALIDATE]" -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "$*"
255 done
256
257 # Tests for session keys and encryption of RPC pipes
258 # FIXME: Integrate these into a single smbtorture test
259
260 bindoptions=""
261 transport="ncacn_np"
262 for ntlmoptions in \
263     "-k no --option=usespnego=yes" \
264     "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no" \
265     "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=yes" \
266     "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=no" \
267     "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=yes" \
268     "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=no" \
269     "-k no --option=usespnego=yes --option=clientntlmv2auth=yes" \
270     "-k no --option=usespnego=yes --option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no" \
271     "-k no --option=usespnego=yes --option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=yes" \
272     "-k no --option=usespnego=no --option=clientntlmv2auth=yes" \
273     "-k no --option=gensec:spnego=no --option=clientntlmv2auth=yes" \
274     "-k no --option=usespnego=no"; do
275     name="rpc.lsa.secrets on $transport with $bindoptions with $ntlmoptions"
276         plantestsuite_loadlist "samba4.$name" dc $smb4torture $transport:"\$SERVER[$bindoptions]"  $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN --option=gensec:target_hostname=\$NETBIOSNAME RPC-LSA-SECRETS "$*"
277 done
278
279 transports="ncacn_np ncacn_ip_tcp"
280
281 #Kerberos varies between functional levels, so it is important to check this on all of them
282 for env in dc fl2000dc fl2003dc fl2008r2dc; do
283         for transport in $transports; do
284                 plantestsuite_loadlist "samba4.rpc.lsa.secrets on $transport with $bindoptions with Kerberos" $env $smb4torture $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-LSA-SECRETS "$*"
285                 plantestsuite_loadlist "samba4.rpc.lsa.secrets on $transport with $bindoptions with Kerberos - use target principal" $env $smb4torture $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN "--option=clientusespnegoprincipal=yes" "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-LSA-SECRETS "$*"
286                 plantestsuite_loadlist "samba4.rpc.lsa.secrets on $transport with Kerberos - use Samba3 style login" $env $smb4torture $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" "RPC-LSA-SECRETS-none*" "$*"
287                 plantestsuite_loadlist "samba4.rpc.lsa.secrets on $transport with Kerberos - use Samba3 style login, use target principal" $env $smb4torture $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=clientusespnegoprincipal=yes" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" "RPC-LSA-SECRETS-none*" "$*"
288                 plansmbtorturetestsuite NET-API-BECOME-DC $env "\$SERVER[$VALIDATE]" -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "$*"
289                 plantestsuite_loadlist "samba4.rpc.echo on $transport with $bindoptions and $echooptions" $env $smb4torture $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" RPC-ECHO "$*"
290
291                 # Echo tests test bulk Kerberos encryption of DCE/RPC
292                 for bindoptions in connect spnego spnego,sign spnego,seal $VALIDATE padcheck bigendian bigendian,seal; do
293                         echooptions="--option=socket:testnonblock=True --option=torture:quick=yes -k yes"
294                         plantestsuite_loadlist "samba4.rpc.echo on $transport with $bindoptions and $echooptions" $env $smb4torture $transport:"\$SERVER[$bindoptions]" $echooptions -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" RPC-ECHO "$*"
295                 done
296         done
297 done
298
299 for transport in $transports; do
300         for bindoptions in sign seal; do
301         for ntlmoptions in \
302         "--option=ntlmssp_client:ntlm2=yes --option=torture:quick=yes" \
303         "--option=ntlmssp_client:ntlm2=no --option=torture:quick=yes" \
304         "--option=ntlmssp_client:ntlm2=yes --option=ntlmssp_client:128bit=no --option=torture:quick=yes" \
305         "--option=ntlmssp_client:ntlm2=no --option=ntlmssp_client:128bit=no --option=torture:quick=yes" \
306         "--option=ntlmssp_client:ntlm2=yes --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes" \
307         "--option=ntlmssp_client:ntlm2=no --option=ntlmssp_client:keyexchange=no  --option=torture:quick=yes" \
308         "--option=clientntlmv2auth=yes --option=ntlmssp_client:keyexchange=no  --option=torture:quick=yes" \
309         "--option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=yes --option=torture:quick=yes" \
310         "--option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes" \
311     ; do
312                         env="dc"
313                         if test x"$transport" = x"ncalrpc"; then
314                                 env="dc:local"
315                         fi
316                         plantestsuite_loadlist "samba4.rpc.echo on $transport with $bindoptions and $ntlmoptions" $env $smb4torture $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*"
317                 done
318         done
319 done
320
321 plantestsuite_loadlist "samba4.rpc.echo on ncacn_np over smb2" dc $smb4torture ncacn_np:"\$SERVER[smb2]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*"
322
323 plantestsuite_loadlist "samba4.ntp.signd" dc:local $smb4torture ncacn_np:"\$SERVER" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN NTP-SIGND "$*"
324
325 # Tests against the NTVFS POSIX backend
326 NTVFSARGS=""
327 NTVFSARGS="${NTVFSARGS} --option=torture:sharedelay=10000"
328 NTVFSARGS="${NTVFSARGS} --option=torture:oplocktimeout=3"
329 NTVFSARGS="${NTVFSARGS} --option=torture:writetimeupdatedelay=50000"
330
331 smb2=`$smb4torture --list | grep "^SMB2-" | xargs`
332 #The QFILEINFO-IPC test needs to be on ipc$
333 raw=`$smb4torture --list | grep "^RAW-" | grep -v "RAW-QFILEINFO-IPC"| xargs`
334 base=`$smb4torture --list | grep "^BASE-" | xargs`
335
336 for t in $base $raw $smb2; do
337         plansmbtorturetestsuite "$t" dc $ADDARGS //\$SERVER/tmp -U"\$USERNAME"%"\$PASSWORD" $NTVFSARGS
338 done
339
340 plansmbtorturetestsuite "RAW-QFILEINFO-IPC" dc $ADDARGS //\$SERVER/ipc$ -U"\$USERNAME"%"\$PASSWORD"
341
342 rap=`$smb4torture --list | grep "^RAP-" | xargs`
343 for t in $rap; do
344         plansmbtorturetestsuite "$t" dc $ADDARGS //\$SERVER/IPC\\\$ -U"\$USERNAME"%"\$PASSWORD"
345 done
346
347 # Tests against the NTVFS CIFS backend
348 for t in $base $raw; do
349     plantestsuite_loadlist "samba4.ntvfs.cifs.`normalize_testname $t`" dc $VALGRIND $smb4torture //\$NETBIOSNAME/cifs -U"\$USERNAME"%"\$PASSWORD" $NTVFSARGS $t
350 done
351
352 # Local tests
353
354 for t in `$smb4torture --list | grep "^LOCAL-" | xargs`; do
355         plansmbtorturetestsuite "$t" none ncalrpc: "$*"
356 done
357
358 tdbtorture4="$samba4bindir/tdbtorture${EXEEXT}"
359 if test -f $tdbtorture4
360 then
361         plantestsuite "tdb.stress" none $VALGRIND $tdbtorture4
362 else
363         skiptestsuite "tdb.stress" "Using system TDB, tdbtorture not available"
364 fi
365
366 plansmbtorturetestsuite "DRS-UNIT" none ncalrpc: "$*"
367
368 # Pidl tests
369 for f in $samba4srcdir/../pidl/tests/*.pl; do
370         planperltestsuite "pidl.`basename $f .pl`" $f
371 done
372 planperltestsuite "selftest.samba4" $samba4srcdir/../selftest/test_samba4.pl
373
374 # Blackbox Tests:
375 # tests that interact directly with the command-line tools rather than using 
376 # the API. These mainly test that the various command-line options of commands 
377 # work correctly.
378
379 planpythontestsuite none samba.tests.blackbox.ndrdump
380 plantestsuite "samba4.blackbox.net (dc:local)" dc:local $samba4srcdir/utils/tests/test_net.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN"
381 plantestsuite "samba4.blackbox.pkinit (dc:local)" dc:local $bbdir/test_pkinit.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX" aes256-cts-hmac-sha1-96 $CONFIGURATION 
382 plantestsuite "samba4.blackbox.kinit (dc:local)" dc:local $bbdir/test_kinit.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX" aes256-cts-hmac-sha1-96 $CONFIGURATION
383 plantestsuite "samba4.blackbox.kinit (fl2000dc:local)" fl2000dc:local $bbdir/test_kinit.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX" arcfour-hmac-md5 $CONFIGURATION
384 plantestsuite "samba4.blackbox.kinit (fl2008r2dc:local)" fl2008r2dc:local $bbdir/test_kinit.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX" aes256-cts-hmac-sha1-96 $CONFIGURATION
385 plantestsuite "samba4.blackbox.ktpass (dc)" dc $bbdir/test_ktpass.sh $PREFIX
386 plantestsuite "samba4.blackbox.passwords (dc:local)" dc:local $bbdir/test_passwords.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX"
387 plantestsuite "samba4.blackbox.export.keytab (dc:local)" dc:local $bbdir/test_export_keytab.sh "\$SERVER" "\$USERNAME" "\$REALM" "\$DOMAIN" "$PREFIX"
388 plantestsuite "samba4.blackbox.cifsdd (dc)" dc $samba4srcdir/client/tests/test_cifsdd.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" 
389 plantestsuite "samba4.blackbox.nmblookup (dc)" dc $samba4srcdir/utils/tests/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP" 
390 plantestsuite "samba4.blackbox.nmblookup (member)" member $samba4srcdir/utils/tests/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP"
391 plantestsuite "samba4.blackbox.locktest (dc)" dc $samba4srcdir/torture/tests/test_locktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
392 plantestsuite "samba4.blackbox.masktest (masktest)" dc $samba4srcdir/torture/tests/test_masktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
393 plantestsuite "samba4.blackbox.gentest (dc)" dc $samba4srcdir/torture/tests/test_gentest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
394 plantestsuite "samba4.blackbox.wbinfo (dc:local)" dc:local $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$USERNAME" "\$PASSWORD" "dc"
395 plantestsuite "samba4.blackbox.wbinfo (member:local)" member:local $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$DC_USERNAME" "\$DC_PASSWORD" "member"
396 plantestsuite "samba4.blackbox.chgdcpass (dc)" dc $bbdir/test_chgdcpass.sh "\$SERVER" "LOCALDC\\\$" "\$REALM" "\$DOMAIN" "$PREFIX" aes256-cts-hmac-sha1-96 $SELFTEST_PREFIX/dc
397
398 # Tests using the "Simple" NTVFS backend
399 for t in "BASE-RW1"; do
400         plantestsuite_loadlist "samba4.ntvfs.simple.`normalize_testname $t`" dc $VALGRIND $smb4torture $ADDARGS //\$SERVER/simple -U"\$USERNAME"%"\$PASSWORD" $t
401 done
402
403 # Domain Member Tests
404 plantestsuite_loadlist "samba4.rpc.echo against member server with local creds" member $VALGRIND $smb4torture ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" RPC-ECHO "$*"
405 plantestsuite_loadlist "samba4.rpc.echo against member server with domain creds" member $VALGRIND $smb4torture ncacn_np:"\$NETBIOSNAME" -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD" RPC-ECHO "$*"
406 plantestsuite_loadlist "samba4.rpc.samr against member server with local creds" member $VALGRIND $smb4torture ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR" "$*"
407 plantestsuite_loadlist "samba4.rpc.samr.users against member server with local creds" member $VALGRIND $smb4torture ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR-USERS" "$*"
408 plantestsuite_loadlist "samba4.rpc.samr.passwords against member server with local creds" member $VALGRIND $smb4torture ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR-PASSWORDS" "$*"
409 plantestsuite "samba4.blackbox.smbclient against member server with local creds" member $samba4srcdir/client/tests/test_smbclient.sh "\$NETBIOSNAME" "\$USERNAME" "\$PASSWORD" "\$NETBIOSNAME" "$PREFIX" 
410
411 # RPC Proxy
412 plantestsuite_loadlist "samba4.rpc.echo against rpc proxy with domain creds" rpc_proxy $VALGRIND $smb4torture ncacn_ip_tcp:"\$NETBIOSNAME" -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD" RPC-ECHO "$*"
413
414 # Tests SMB signing
415 for mech in \
416         "-k no" \
417         "-k no --option=usespnego=no" \
418         "-k no --option=gensec:spengo=no" \
419         "-k yes" \
420         "-k yes --option=gensec:fake_gssapi_krb5=yes --option=gensec:gssapi_krb5=no"; do
421    for signing in \
422         "--signing=on" \
423         "--signing=required"; do
424
425         signoptions="$mech $signing"
426         name="smb.signing on with $signoptions"
427         plantestsuite_loadlist "samba4.$name" dc $VALGRIND $smb4torture //"\$NETBIOSNAME"/tmp $signoptions -U"\$USERNAME"%"\$PASSWORD" BASE-XCOPY "$*"
428    done
429 done
430
431 for mech in \
432         "-k no" \
433         "-k no --option=usespnego=no" \
434         "-k no --option=gensec:spengo=no" \
435         "-k yes" \
436         "-k yes --option=gensec:fake_gssapi_krb5=yes --option=gensec:gssapi_krb5=no"; do
437         signoptions="$mech --signing=off"
438         name="smb.signing on with $signoptions"
439         plantestsuite_loadlist "samba4.$name domain-creds" member $VALGRIND $smb4torture //"\$NETBIOSNAME"/tmp $signoptions -U"\$DC_USERNAME"%"\$DC_PASSWORD" BASE-XCOPY "$*"
440 done
441 for mech in \
442         "-k no" \
443         "-k no --option=usespnego=no" \
444         "-k no --option=gensec:spengo=no"; do
445         signoptions="$mech --signing=off"
446         name="smb.signing on with $signoptions"
447         plantestsuite_loadlist "samba4.$name local-creds" member $VALGRIND $smb4torture //"\$NETBIOSNAME"/tmp $signoptions -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" BASE-XCOPY "$*"
448 done
449 plantestsuite_loadlist "samba4.smb.signing --signing=yes anon" dc $VALGRIND $smb4torture //"\$NETBIOSNAME"/tmp -k no --signing=yes -U% BASE-XCOPY "$*"
450 plantestsuite_loadlist "samba4.smb.signing --signing=required anon" dc $VALGRIND $smb4torture //"\$NETBIOSNAME"/tmp -k no --signing=required -U% BASE-XCOPY "$*"
451 plantestsuite_loadlist "samba4.smb.signing --signing=no anon" member $VALGRIND $smb4torture //"\$NETBIOSNAME"/tmp -k no --signing=no -U% BASE-XCOPY "$*"
452
453 NBT_TESTS=`$smb4torture --list | grep "^NBT-" | xargs`
454 for t in $NBT_TESTS; do
455         plansmbtorturetestsuite "$t" dc //\$SERVER/_none_ -U\$USERNAME%\$PASSWORD 
456 done
457
458 WB_OPTS="--option=\"torture:strict mode=no\""
459 WB_OPTS="${WB_OPTS} --option=\"torture:timelimit=1\""
460 WB_OPTS="${WB_OPTS} --option=\"torture:winbindd_separator=/\""
461 WB_OPTS="${WB_OPTS} --option=\"torture:winbindd_netbios_name=\$SERVER\""
462 WB_OPTS="${WB_OPTS} --option=\"torture:winbindd_netbios_domain=\$DOMAIN\""
463
464 WINBIND_STRUCT_TESTS=`$smb4torture --list | grep "^WINBIND-STRUCT" | xargs`
465 WINBIND_NDR_TESTS=`$smb4torture --list | grep "^WINBIND-NDR" | xargs`
466 for env in dc member; do
467         for t in $WINBIND_STRUCT_TESTS; do
468                 plansmbtorturetestsuite $t $env $WB_OPTS //_none_/_none_
469         done
470
471         for t in $WINBIND_NDR_TESTS; do
472                 plansmbtorturetestsuite $t $env $WB_OPTS //_none_/_none_
473         done
474 done
475
476 nsstest4="$samba4bindir/nsstest${EXEEXT}"
477 if test -f $nsstest4
478 then
479         plantestsuite "samba4.nss.test using winbind (member)" member $VALGRIND $nsstest4 $samba4bindir/shared/libnss_winbind.so
480 fi
481
482 SUBUNITRUN="$VALGRIND $PYTHON $samba4srcdir/scripting/bin/subunitrun"
483 plantestsuite "ldb.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/lib/ldb/tests/python/" $PYTHON $samba4srcdir/lib/ldb/tests/python/api.py
484 plantestsuite "samba4.credentials.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/auth/credentials/tests" $SUBUNITRUN bindings
485 planpythontestsuite none samba.tests.gensec
486 planpythontestsuite none samba.tests.registry
487 plantestsuite "tdb.python" none PYTHONPATH="$PYTHONPATH:../lib/tdb/python/tests" $SUBUNITRUN simple
488 planpythontestsuite none samba.tests.auth
489 planpythontestsuite none samba.tests.security
490 planpythontestsuite none samba.tests.dcerpc.misc
491 planpythontestsuite none samba.tests.param
492 planpythontestsuite none samba.tests.upgrade
493 planpythontestsuite none samba.tests
494 planpythontestsuite none samba.tests.provision
495 planpythontestsuite none samba.tests.samba3
496 planpythontestsuite dc:local samba.tests.dcerpc.sam
497 planpythontestsuite dc:local samba.tests.dsdb
498 planpythontestsuite none samba.tests.netcmd
499 planpythontestsuite dc:local samba.tests.dcerpc.bare
500 planpythontestsuite dc:local samba.tests.dcerpc.unix
501 planpythontestsuite none samba.tests.dcerpc.rpc_talloc
502 planpythontestsuite none samba.tests.samdb
503 planpythontestsuite none samba.tests.shares
504 planpythontestsuite none samba.tests.messaging
505 plantestsuite "samba4.samba3sam.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/dsdb/samdb/ldb_modules/tests" $SUBUNITRUN samba3sam
506 planpythontestsuite none subunit
507 planpythontestsuite dc:local samba.tests.dcerpc.rpcecho
508 plantestsuite "samba4.winreg.python (dc:local)" dc:local $SUBUNITRUN -U\$USERNAME%\$PASSWORD samba.tests.dcerpc.registry
509 plantestsuite "samba4.ldap.python (dc)" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/ldap.py \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
510 plantestsuite "samba4.schemaInfo.python (dc)" dc PYTHONPATH="$PYTHONPATH:$samba4srcdir/dsdb/tests/python/" $SUBUNITRUN dsdb_schema_info -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
511 plantestsuite "samba4.urgent_replication.python (dc)" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/urgent_replication.py \$PREFIX_ABS/dc/private/sam.ldb
512 for env in "dc" "fl2000dc" "fl2003dc" "fl2008r2dc"; do
513         plantestsuite "samba4.ldap_schema.python ($env)" $env PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/ldap_schema.py \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
514         plantestsuite "samba4.ldap.possibleInferiors.python ($env)" $env $PYTHON $samba4srcdir/dsdb/samdb/ldb_modules/tests/possibleinferiors.py ldap://\$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
515         plantestsuite "samba4.ldap.secdesc.python ($env)" $env PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/sec_descriptor.py \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
516         plantestsuite "samba4.ldap.acl.python ($env)" $env PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/acl.py \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
517         plantestsuite "samba4.ldap.passwords.python ($env)" $env PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/passwords.py \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
518 done
519 planpythontestsuite dc:local samba.tests.upgradeprovisionneeddc
520 planpythontestsuite none samba.tests.upgradeprovision
521 planpythontestsuite none samba.tests.xattr
522 planpythontestsuite none samba.tests.ntacls
523 plantestsuite "samba4.deletetest.python (dc)" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python:../lib/testtools" $PYTHON $samba4srcdir/dsdb/tests/python/deletetest.py \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
524 plantestsuite "samba4.policy.python" none PYTHONPATH="$PYTHONPATH:lib/policy/tests/python" $SUBUNITRUN bindings
525 plantestsuite "samba4.blackbox.samba3dump" none $PYTHON $samba4srcdir/scripting/bin/samba3dump $samba4srcdir/../testdata/samba3
526 rm -rf $PREFIX/upgrade
527 plantestsuite "samba4.blackbox.upgrade" none $PYTHON $samba4srcdir/setup/upgrade_from_s3 --targetdir=$PREFIX/upgrade $samba4srcdir/../testdata/samba3 ../testdata/samba3/smb.conf
528 rm -rf $PREFIX/provision
529 mkdir $PREFIX/provision
530 plantestsuite "samba4.blackbox.provision.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_provision.sh "$PREFIX/provision"
531 plantestsuite "samba4.blackbox.provision-backend.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_provision-backend.sh "$PREFIX/provision"
532 plantestsuite "samba4.blackbox.upgradeprovision.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_upgradeprovision.sh "$PREFIX/provision"
533 plantestsuite "samba4.blackbox.setpassword.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_setpassword.sh "$PREFIX/provision"
534 plantestsuite "samba4.blackbox.newuser.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_newuser.sh "$PREFIX/provision"
535 plantestsuite "samba4.blackbox.group.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_group.sh "$PREFIX/provision"
536 plantestsuite "samba4.blackbox.spn.py (dc:local)" dc:local PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_spn.sh "$PREFIX/dc"
537
538 # DRS python tests
539 plantestsuite "samba4.drs_delete_object.python (vampire_dc)" vampire_dc PYTHONPATH="$PYTHONPATH:$samba4srcdir/torture/drs/python" DC1=\$DC_SERVER DC2=\$VAMPIRE_DC_SERVER $SUBUNITRUN delete_object -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
540 plantestsuite "samba4.drs_fsmo.python (vampire_dc)" vampire_dc PYTHONPATH="$PYTHONPATH:$samba4srcdir/torture/drs/python" DC1=\$DC_SERVER DC2=\$VAMPIRE_DC_SERVER $SUBUNITRUN fsmo -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
541
542 # This makes sure we test the rid allocation code
543 t="RPC-SAMR-LARGE-DC"
544 plantestsuite_loadlist "samba4.`normalize_testname $t.one`" vampire_dc $VALGRIND $smb4torture "\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
545 plantestsuite_loadlist "samba4.`normalize_testname $t.two`" vampire_dc $VALGRIND $smb4torture "\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
546
547 # some RODC testing
548 plantestsuite_loadlist "samba4.rpc.echo to RODC" "rodc" $smb4torture ncacn_np:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" RPC-ECHO "$*"