diff options
Diffstat (limited to 'source4/script/tests/selftest.sh')
-rwxr-xr-x | source4/script/tests/selftest.sh | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/source4/script/tests/selftest.sh b/source4/script/tests/selftest.sh deleted file mode 100755 index fa94412136..0000000000 --- a/source4/script/tests/selftest.sh +++ /dev/null @@ -1,290 +0,0 @@ -#!/bin/sh -# Bootstrap Samba and run a number of tests against it. - -if [ $# -lt 1 ] -then - echo "$0 PREFIX TESTS" - exit -fi - -ARG0=$0 -ARG1=$1 -ARG2=$2 -ARG3=$3 - -if [ -z "$TORTURE_MAXTIME" ]; then - TORTURE_MAXTIME=1200 -fi - -# disable rpc validation when using valgrind - its way too slow -if [ -z "$VALGRIND" ]; then - VALIDATE="validate"; -else - VALIDATE=""; -fi - -OLD_PWD=`pwd` -PREFIX=$ARG1 -PREFIX=`echo $PREFIX | sed s+//+/+` -export PREFIX - -# allow selection of the test lists -TESTS=$ARG2 - -if [ $TESTS = "all" ]; then - TLS_ENABLED="yes" -else - TLS_ENABLED="no" -fi -export TLS_ENABLED - -LD_LDB_MODULE_PATH=$OLD_PWD/bin/modules/ldb -export LD_LDB_MODULE_PATH - -LD_SAMBA_MODULE_PATH=$OLD_PWD/bin/modules -export LD_SAMBA_MODULE_PATH - -LD_LIBRARY_PATH=$OLD_PWD/bin/shared:$LD_LIBRARY_PATH -export LD_LIBRARY_PATH - -PKG_CONFIG_PATH=$OLD_PWD/bin/pkgconfig:$PKG_CONFIG_PATH -export PKG_CONFIG_PATH - -incdir=`dirname $ARG0` -echo -n "PROVISIONING..." -eval `$incdir/mktestsetup.sh $PREFIX || exit 1` -echo "DONE" - -export KRB5_CONFIG -export PREFIX_ABS -export TEST_DATA_PREFIX -export CONFIGURATION -export CONFFILE -export PIDDIR -export AUTH -export SERVER -export NETBIOSNAME - -PATH=bin:$PATH -export PATH - -DO_SOCKET_WRAPPER=$ARG3 -if [ x"$DO_SOCKET_WRAPPER" = x"SOCKET_WRAPPER" ];then - SOCKET_WRAPPER_DIR="$PREFIX/w" - export SOCKET_WRAPPER_DIR - echo "SOCKET_WRAPPER_DIR=$SOCKET_WRAPPER_DIR" -else - echo "NOT USING SOCKET_WRAPPER" -fi - -incdir=`dirname $ARG0` -. $incdir/test_functions.sh - -#Start slapd before smbd -if [ x"$TEST_LDAP" = x"yes" ]; then - if test -z "$FEDORA_DS_PREFIX"; then - slapd_start || exit 1; - else - fedora_ds_start || exit 1; - fi - echo -n "LDAP PROVISIONING..." - $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS "$PROVISION_ACI" --ldap-backend=$LDAP_URI || { - echo "LDAP PROVISIONING failed: $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS $PROVISION_ACI --ldap-backend=$LDAP_URI" - exit 1; - } - #LDAP is slow - TORTURE_MAXTIME=`expr $TORTURE_MAXTIME '*' 2` -fi - -SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo" -export SMBD_TEST_FIFO -SMBD_TEST_LOG="$PREFIX/smbd_test.log" -export SMBD_TEST_LOG - -SOCKET_WRAPPER_DEFAULT_IFACE=1 -export SOCKET_WRAPPER_DEFAULT_IFACE -smbd_check_or_start - -SOCKET_WRAPPER_DEFAULT_IFACE=6 -export SOCKET_WRAPPER_DEFAULT_IFACE -TORTURE_INTERFACES='127.0.0.6/8,127.0.0.7/8,127.0.0.8/8,127.0.0.9/8,127.0.0.10/8,127.0.0.11/8' -TORTURE_OPTIONS="--option=interfaces=$TORTURE_INTERFACES $CONFIGURATION" -# ensure any one smbtorture call doesn't run too long -TORTURE_OPTIONS="$TORTURE_OPTIONS --maximum-runtime=$TORTURE_MAXTIME" -TORTURE_OPTIONS="$TORTURE_OPTIONS --target=samba4" -export TORTURE_OPTIONS - -if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then - TORTURE_OPTIONS="$TORTURE_OPTIONS --option=torture:progress=no" -fi - - runtest() { - if [ -z "$PREFIX" ]; then - PREFIX=test_prefix - mkdir -p $PREFIX - fi - name=$1 - shift 1 - cmdline="$*" - - SMBD_IS_UP="no" - - shname=`echo $name | \ - sed -e 's%[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\-]%_%g'` - - UNIQUE_PID=`/bin/sh -c 'echo $$'` - TEST_LOG="$PREFIX/test_log.${UNIQUE_PID}" - TEST_PCAP="$PREFIX/test_${shname}_${UNIQUE_PID}.pcap" - trap "rm -f $TEST_LOG $TEST_PCAP" EXIT - - if [ -n "$SMBD_TEST_LOG" -a -z "$smbd_log_size" ]; then - smbd_log_size=`wc -l < $SMBD_TEST_LOG`; - fi - - if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then - echo "--==--==--==--==--==--==--==--==--==--==--" - echo "Running test $name (level 0 stdout)" - echo "--==--==--==--==--==--==--==--==--==--==--" - date - echo "Testing $name" - else - nf="`expr $failed + $totalfailed`"; - if [ "$nf" = "0" ]; then - echo "[$current/$total] Testing $name" - else - echo "[$current/$total, $nf failures] Testing $name" - fi - fi - - smbd_check_only && SMBD_IS_UP="yes" - if [ x"$SMBD_IS_UP" != x"yes" ];then - if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then - echo "SMBD is down! Skipping: $cmdline" - echo "==========================================" - echo "TEST SKIPPED: $name (reason SMBD is down)" - echo "==========================================" - else - echo "TEST SKIPPED: $name (reason SMBD is down)" - fi - return 1 - fi - - if [ x"$MAKE_TEST_ENABLE_PCAP" = x"yes" ];then - SOCKET_WRAPPER_PCAP_FILE=$TEST_PCAP - export SOCKET_WRAPPER_PCAP_FILE - fi - - ( $cmdline > $TEST_LOG 2>&1 ) - status=$? - # show any additional output from smbd that has happened in this test - smbd_have_test_log && { - new_log_size=`wc -l < $SMBD_TEST_LOG`; - test "$new_log_size" = "$smbd_log_size" || { - echo "SMBD OUTPUT:"; - incr_log_size=`expr $new_log_size - $smbd_log_size`; - tail -$incr_log_size $SMBD_TEST_LOG; - smbd_log_size=$new_log_size; - } - } - if [ x"$status" != x"0" ]; then - echo "TEST OUTPUT:" - cat $TEST_LOG; - rm -f $TEST_LOG; - if [ x"$MAKE_TEST_ENABLE_PCAP" = x"yes" ];then - echo "TEST PCAP: $TEST_PCAP" - fi - if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then - echo "==========================================" - echo "TEST FAILED: $name (status $status)" - echo "==========================================" - else - echo "TEST FAILED: $cmdline (status $status)" - fi - trap "" EXIT - return 1; - fi - rm -f $TEST_LOG; - if [ x"$MAKE_TEST_KEEP_PCAP" = x"yes" ];then - echo "TEST PCAP: $TEST_PCAP" - else - rm -f $TEST_PCAP; - fi - if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then - echo "ALL OK: $cmdline" - echo "==========================================" - echo "TEST PASSED: $name" - echo "==========================================" - fi - trap "" EXIT - return 0; -} - -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 $SERVER - bin/nmblookup $CONFIGURATION -U $SERVER $SERVER - bin/nmblookup $CONFIGURATION $SERVER - bin/nmblookup $CONFIGURATION -U $SERVER $NETBIOSNAME - bin/nmblookup $CONFIGURATION $NETBIOSNAME - bin/nmblookup $CONFIGURATION -U $SERVER $NETBIOSNAME - -# start off with 0 failures -totalfailed=0 -export totalfailed - -. script/tests/tests_$TESTS.sh > $PREFIX/recipe -total=`grep "TEST --" $PREFIX/recipe | wc -l` -current=0 -cat $PREFIX/recipe | ( - while read LINE - do - if [ "$LINE" = "-- TEST --" ]; then - read NAME - read CMDLINE - current=`expr $current + 1` - runtest "$NAME" "$CMDLINE" || totalfailed=`expr $totalfailed + $?` - else - echo "$LINE" - fi - done - exit $totalfailed -) -exit $? -) 9>$SMBD_TEST_FIFO -totalfailed=$? - -smbd_PID=`cat $PIDDIR/smbd.pid` -waitforpid $smbd_PID 20 || { - echo "smbd process $1 took more than 20 seconds to exit, killing" - kill -9 $smbd_PID -} - -if [ "$TEST_LDAP"x = "yesx" ]; then - if test -z "$FEDORA_DS_PREFIX"; then - kill `cat $PIDDIR/slapd.pid` - else - $LDAPDIR/slapd-samba4/stop-slapd - fi -fi - -END=`date` -echo "START: $START ($ARG0)"; -echo "END: $END ($ARG0)"; - -# 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 ] && grep -v DWARF2.CFI.reader $f > /dev/null; then - echo "VALGRIND FAILURE"; - totalfailed=`expr $totalfailed + 1` - cat $f - fi - done -fi - -teststatus $ARG0 $totalfailed |