s3:test: add the failure blackbox test as samba3.blackbox.failure
[nivanova/samba-autobuild/.git] / source3 / selftest / tests.sh
index 3ded5686c28358ffae05b73247d7714f613e4519..42085f8838e356bd2b8e25e8adcec5383d4ee55d 100755 (executable)
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash
+###   ^^^FIXME -> sh ... breaks testing on *BSD etc. ... see FIXME's below
 # This script generates a list of testsuites that should be run as part of 
 # the Samba 3 test suite.
 
@@ -30,23 +31,171 @@ plantest() {
        cmdline="$*"
        echo "-- TEST --"
        if [ "$env" = "none" ]; then
-               echo "samba3.$name"
+               fullname="samba3.$name"
        else
-               echo "samba3.$name ($env)"
+               fullname="samba3.$name ($env)"
        fi
+       echo $fullname
        echo $env
-       echo $cmdline
+       echo $cmdline "2>&1" "| ../selftest/filter-subunit --prefix \"$fullname.\""
 }
 
-normalize_testname() {
+TEST_FUNCTIONS_SH="INCLUDED"
+testit() {
        name=$1
        shift 1
-       echo $name | tr "A-Z-" "a-z."
+       cmdline="$*"
+
+       plantest "$testitprefix$name" $testitenv $cmdline
+       return
+}
+
+testok() {
+       true
+       return
 }
 
 BINDIR=`dirname $0`/../bin
+export BINDIR
+
+SCRIPTDIR=`dirname $0`/../script/tests
+export SCRIPTDIR
+
+CONFIGURATION="--configfile \$SMB_CONF_PATH"
+export CONFIGURATION
+
+CONFFILE="\$SMB_CONF_PATH"
+export CONFFILE
+
+SERVER="\$SERVER"
+export SERVER
+
+USERNAME="\$USERNAME"
+export USERNAME
+
+PASSWORD="\$PASSWORD"
+export PASSWORD
+
+LOCAL_PATH="\$LOCAL_PATH"
+export LOCAL_PATH
+
+plantest "blackbox.success" dc:local LOCAL_PATH="$LOCAL_PATH" BINDIR="$BINDIR" SCRIPTDIR="$SCRIPTDIR" SERVERCONFFILE="\$SMB_CONF_PATH" script/tests/test_success.sh
+plantest "blackbox.failure" dc:local LOCAL_PATH="$LOCAL_PATH" BINDIR="$BINDIR" SCRIPTDIR="$SCRIPTDIR" SERVERCONFFILE="\$SMB_CONF_PATH" script/tests/test_failure.sh
+
+(
+       shift $#
+       testitprefix="local_s3."
+       testitenv="none"
+       . $SCRIPTDIR/test_local_s3.sh
+)
+
+(
+       shift $#
+       testitprefix="smbtorture_s3.plain."
+       testitenv="dc"
+#FIXME: shell sourcing with ARGS is just supported by bash but bash isn't everywhere.
+       . $SCRIPTDIR/test_smbtorture_s3.sh //\$SERVER_IP/tmp \$USERNAME \$PASSWORD "" "" "-l \$LOCAL_PATH"
+)
+
+(
+       shift $#
+       testitprefix="smbtorture_s3.crypt."
+       testitenv="dc"
+#FIXME: shell sourcing with ARGS is just supported by bash but bash isn't everywhere.
+       . $SCRIPTDIR/test_smbtorture_s3.sh //\$SERVER_IP/tmp \$USERNAME \$PASSWORD "" "-e" "-l \$LOCAL_PATH"
+)
+
+(
+       shift $#
+       testitprefix="wbinfo_s3."
+       testitenv="dc:local"
+#FIXME: shell sourcing with ARGS is just supported by bash but bash isn't everywhere.
+       . $SCRIPTDIR/test_wbinfo_s3.sh \$DOMAIN \$SERVER \$USERNAME \$PASSWORD
+)
+
+(
+       shift $#
+       testitprefix="wbinfo_s3."
+       testitenv="dc:local"
+#FIXME: shell sourcing with ARGS is just supported by bash but bash isn't everywhere.
+       . $SCRIPTDIR/test_wbinfo_s3.sh \$DOMAIN \$SERVER \$DOMAIN\\\\\$USERNAME \$PASSWORD
+)
+
+(
+       shift $#
+       testitprefix="wbinfo_s3."
+       testitenv="member:local"
+#FIXME: shell sourcing with ARGS is just supported by bash but bash isn't everywhere.
+       . $SCRIPTDIR/test_wbinfo_s3.sh \$DOMAIN \$SERVER \$DOMAIN\\\\\$USERNAME \$PASSWORD
+)
+
+(
+       shift $#
+       testitprefix="ntlm_auth_s3."
+       testitenv="dc:local"
+       . $SCRIPTDIR/test_ntlm_auth_s3.sh
+)
+
+# plain
+plantest "blackbox.smbclient_s3.plain" dc BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$USERNAME \$PASSWORD \$USERID \$LOCAL_PATH
+plantest "blackbox.smbclient_s3.plain member creds" member BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$SERVER\\\\\$USERNAME \$PASSWORD \$USERID \$LOCAL_PATH
+#plantest "blackbox.smbclient_s3.plain domain creds" member BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$DOMAIN\\\\\$DC_USERNAME \$DC_PASSWORD \$USERID \$LOCAL_PATH
+
+# sign, only the member server allows signing
+plantest "blackbox.smbclient_s3.sign member creds" member BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$SERVER\\\\\$USERNAME \$PASSWORD \$USERID \$LOCAL_PATH "--signing=required"
+#plantest "blackbox.smbclient_s3.sign domain creds" member BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$DOMAIN\\\\\$DC_USERNAME \$DC_PASSWORD \$USERID \$LOCAL_PATH "--signing=required"
+
+# encrypted
+plantest "blackbox.smbclient_s3.crypt" dc BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$USERNAME \$PASSWORD \$USERID \$LOCAL_PATH "-e"
+
+# these don't work yet
+#plantest "blackbox.smbclient_s3.crypt member creds" member BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$SERVER\\\\\$USERNAME \$PASSWORD "-e"
+#plantest "blackbox.smbclient_s3.crypt domain creds" member BINDIR="$BINDIR" script/tests/test_smbclient_s3.sh \$SERVER \$SERVER_IP \$DOMAIN\\\\\$DC_USERNAME \$DC_PASSWORD "-e"
+
+plantest "blackbox.net_s3_misc" dc:local BINDIR="$BINDIR" SCRIPTDIR="$SCRIPTDIR" SERVERCONFFILE="\$SMB_CONF_PATH" script/tests/test_net_misc.sh
+plantest "blackbox.net_s3_registry" dc:local BINDIR="$BINDIR" SCRIPTDIR="$SCRIPTDIR" SERVERCONFFILE="\$SMB_CONF_PATH" script/tests/test_net_registry.sh
+plantest "blackbox.net_s3_registry_rpc" dc:local BINDIR="$BINDIR" SCRIPTDIR="$SCRIPTDIR" SERVERCONFFILE="\$SMB_CONF_PATH" script/tests/test_net_registry.sh rpc
+plantest "blackbox.testparm_s3" dc:local LOCAL_PATH="$LOCAL_PATH" BINDIR="$BINDIR" SCRIPTDIR="$SCRIPTDIR" SERVERCONFFILE="\$SMB_CONF_PATH" script/tests/test_testparm_s3.sh
+
+(
+       shift $#
+       testitprefix="posix_s3."
+       testitenv="dc"
+
+       SMBTORTURE4BINARY=$SMBTORTURE4
+       TORTURE4_OPTIONS=""
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --configfile=\$SMB_CONF_PATH"
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --maximum-runtime=$SELFTEST_MAXTIME"
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --target=$SELFTEST_TARGET"
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --basedir=$SELFTEST_PREFIX"
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=\"torture:winbindd_netbios_name=\$SERVER\""
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=\"torture:winbindd_netbios_domain=\$DOMAIN\""
+       if [ -n "$SELFTEST_VERBOSE" ]; then
+               TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=torture:progress=no"
+       fi
+       TORTURE_OPTIONS="$TORTURE4_OPTIONS --format=subunit"
+       if [ -n "$SELFTEST_QUICK" ]; then
+               TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=torture:quick=yes"
+       fi
+
+       # This is an ugly hack...
+       TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=torture:localdir=$SELFTEST_PREFIX/dc/share"
+
+       if [ -x "$SMBTORTURE4" ]; then
+               LIB_PATH_VAR_VAR="\$`echo $LIB_PATH_VAR`"
+               S4_LIB_PREFIX=`eval echo "$LIB_PATH_VAR=\"$SAMBA4SHAREDDIR:$LIB_PATH_VAR_VAR\""`
+               SMBTORTURE4="$S4_LIB_PREFIX $SMBTORTURE4"
+               SMBTORTURE4VERSION=`eval $SMBTORTURE4 --version`
+       fi
+       if [ -n "$SMBTORTURE4" -a -n "$SMBTORTURE4VERSION" ];then
+               echo "Using SMBTORTURE4: $SMBTORTURE4BINARY"
+               echo "Version: $SMBTORTURE4VERSION"
+#FIXME: shell sourcing with ARGS is just supported by bash but bash isn't everywhere.
+               . $SCRIPTDIR/test_posix_s3.sh //\$SERVER_IP/tmp \$USERNAME \$PASSWORD "" ""
+       else
+               echo "Skip Tests with Samba4's smbtorture"
+               echo "Try to compile with --with-smbtorture4-path=PATH to enable"
+       fi
+
+)
 
-plantest "talloctort" none $VALGRIND $BINDIR/talloctort 
-plantest "replacetort" none $VALGRIND $BINDIR/replacetort
-plantest "tdbtorture" none $VALGRIND $BINDIR/tdbtorture
-plantest "smbconftort" none $VALGRIND $BINDIR/smbconftort $CONFIGURATION