Add blackbox test for provisioning code to make sure it can be run more than once...
[samba.git] / source4 / selftest / samba4_tests.sh
index 05035ddac2536f586a483fcf77308637547dbcb4..f2895304cf875acaeba1d0e92476304b5eb6d4ed 100755 (executable)
@@ -1,4 +1,23 @@
 #!/bin/sh
+# This script generates a list of testsuites that should be run as part of 
+# the Samba 4 test suite.
+
+# The output of this script is parsed by selftest.pl, which then decides 
+# which of the tests to actually run. It will, for example, skip all tests 
+# listed in samba4-skip or only run a subset during "make quicktest".
+
+# The idea is that this script outputs all of the tests of Samba 4, not 
+# just those that are known to pass, and list those that should be skipped 
+# or are known to file in samba4-skip/samba4-knownfail. This makes it 
+# very easy to see what functionality is still missing in Samba 4 and makes 
+# it possible to run the testsuite against other servers, such as Samba 3 or 
+# Windows that have a different set of features.
+
+# The syntax for a testsuite is "-- TEST --" on a single line, followed 
+# by the name of the test, the environment it needs and the command to run, all 
+# three separated by newlines. All other lines in the output are considered 
+# comments.
+
 if [ ! -n "$PERL" ]
 then
        PERL=perl
@@ -55,7 +74,7 @@ done
 # is now pretty well tested by the rest of the quick tests anyway
 LDBDIR=$samba4srcdir/lib/ldb
 export LDBDIR
-plantest "ldb" none $LDBDIR/tests/test-tdb.sh
+plantest "ldb" none TEST_DATA_PREFIX=\$PREFIX $LDBDIR/tests/test-tdb.sh
 
 plantest "js.ldap" dc $SCRIPTDIR/ldap.js $CONFIGURATION -d 10 \$SERVER -U\$USERNAME%\$PASSWORD
 
@@ -190,6 +209,11 @@ for t in $base $raw $smb2; do
     plantest "$t" dc $VALGRIND $smb4torture $ADDARGS //\$SERVER/tmp -U"\$USERNAME"%"\$PASSWORD" $t
 done
 
+rap=`$smb4torture --list | grep "^RAP-" | xargs`
+for t in $rap; do
+    plantest "$t" dc $VALGRIND $smb4torture $ADDARGS //\$SERVER/IPC\\\$ -U"\$USERNAME"%"\$PASSWORD" $t
+done
+
 # Tests against the NTVFS CIFS backend
 for t in $base $raw; do
     plantest "ntvfs.cifs.$t" dc $VALGRIND $smb4torture //\$NETBIOSNAME/cifs -U"\$USERNAME"%"\$PASSWORD" $t
@@ -227,8 +251,8 @@ bbdir=$incdir/../../testprogs/blackbox
 plantest "blackbox.smbclient" dc $bbdir/test_smbclient.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX" 
 plantest "blackbox.kinit" dc $bbdir/test_kinit.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX" 
 plantest "blackbox.cifsdd" dc $bbdir/test_cifsdd.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" 
-plantest "blackbox.nmblookup" dc $bbdir/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP" 
-plantest "blackbox.nmblookup" member $bbdir/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP"
+plantest "blackbox.nmblookup" dc $samba4srcdir/utils/tests/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP" 
+plantest "blackbox.nmblookup" member $samba4srcdir/utils/tests/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP"
 
 # Tests using the "Simple" NTVFS backend
 
@@ -238,9 +262,6 @@ done
 
 DATADIR=$samba4srcdir/../testdata
 
-plantest "parse samba3" none $samba4bindir/smbscript $DATADIR/samba3/verify $CONFIGURATION $DATADIR/samba3
-plantest "js.samba3sam" none $SCRIPTDIR/samba3sam.js $CONFIGURATION `pwd` $DATADIR/samba3/
-
 # Domain Member Tests
 
 plantest "RPC-ECHO against member server with local creds" member $VALGRIND $smb4torture ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" RPC-ECHO "$*"
@@ -296,12 +317,15 @@ then
        plantest "samba.python" none $SUBUNITRUN samba.tests
        plantest "provision.python" none $SUBUNITRUN samba.tests.provision
        plantest "samba3.python" none $SUBUNITRUN samba.tests.samba3
+       plantest "samr.python" dc $SUBUNITRUN samba.tests.dcerpc.sam
        plantest "events.python" none PYTHONPATH="$PYTHONPATH:lib/events" $SUBUNITRUN tests
        plantest "samba3sam.python" none PYTHONPATH="$PYTHONPATH:dsdb/samdb/ldb_modules/tests" $SUBUNITRUN samba3sam
-       plantest "ldap.python" dc $PYTHON $samba4srcdir/lib/ldb/tests/python/ldap.py \$SERVER -U\$USERNAME%\$PASSWORD
+       plantest "rpcecho.python" dc $SUBUNITRUN samba.tests.dcerpc.rpcecho
+       plantest "winreg.python" dc $SUBUNITRUN samba.tests.dcerpc.registry
+       plantest "ldap.python" dc $PYTHON $samba4srcdir/lib/ldb/tests/python/ldap.py $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
        plantest "blackbox.samba3dump" none $PYTHON scripting/bin/samba3dump $samba4srcdir/../testdata/samba3
        rm -rf $PREFIX/upgrade
        plantest "blackbox.upgrade" none $PYTHON setup/upgrade.py $CONFIGURATION --targetdir=$PREFIX/upgrade ../testdata/samba3 ../testdata/samba3/smb.conf
        rm -rf $PREFIX/provision
-       plantest "blackbox.provision.py" none $PYTHON ./setup/provision.py $CONFIGURATION --domain=FOO --realm=foo --targetdir=$PREFIX/provision
+       plantest "blackbox.provision.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_provision.sh "$PREFIX" "$CONFIGURATION" 
 fi