summaryrefslogtreecommitdiff
path: root/source3/script/tests/selftest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'source3/script/tests/selftest.sh')
-rwxr-xr-xsource3/script/tests/selftest.sh513
1 files changed, 0 insertions, 513 deletions
diff --git a/source3/script/tests/selftest.sh b/source3/script/tests/selftest.sh
deleted file mode 100755
index 3da4fac8ff..0000000000
--- a/source3/script/tests/selftest.sh
+++ /dev/null
@@ -1,513 +0,0 @@
-#!/bin/sh
-
-if [ $# -lt 2 ]; then
- echo "$0 <directory> <all | quick> [-t <smbtorture4>] [-s <shrdir>] " \
- "[-c <custom conf>]"
- exit 1
-fi
-
-##
-## Setup the required args
-##
-DIRECTORY=$1; shift;
-SUBTESTS=$1; shift;
-
-##
-## Parse oprtional args
-##
-while getopts s:c:t: f
-do
- case $f in
- t) SMBTORTURE4=$OPTARG;;
- s) ALT_SHRDIR_ARG=$OPTARG;;
- c) CUSTOM_CONF_ARG=$OPTARG;;
- esac
-done
-
-echo "Running selftest with the following"
-echo "Selftest Directory: $DIRECTORY"
-echo "Subtests to Run: $SUBTESTS"
-echo "smbtorture4 Path: $SMBTORTURE4"
-echo "Alternative Share Dir: $ALT_SHRDIR_ARG"
-echo "Custom Configuration: $CUSTOM_CONF_ARG"
-
-if [ $CUSTOM_CONF_ARG ]; then
- INCLUDE_CUSTOM_CONF="include = $CUSTOM_CONF_ARG"
-fi
-
-##
-## create the test directory layout
-##
-PREFIX=`echo $DIRECTORY | sed s+//+/+`
-printf "%s" "CREATE TEST ENVIRONMENT IN '$PREFIX'"...
-/bin/rm -rf $PREFIX
-if [ -e "$PREFIX" ]; then
- echo "***"
- echo "*** Failed to delete test environment $PREFIX"
- echo "*** Was a previous run done as root ?"
- echo "***"
- exit 1
-fi
-
-##
-## create the test directory
-##
-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
-##
-
-WORKGROUP=SAMBA-TEST
-SERVER=localhost2
-SERVER_IP=127.0.0.2
-if [ ! "x$USER" = "x" ]; then
- USERNAME=$USER
-else
- if [ ! "x$LOGNAME" = "x" ]; then
- USERNAME=$LOGNAME
- else
- USERNAME=`PATH=/usr/ucb:$PATH whoami || id -un`
- fi
-fi
-USERID=`PATH=/usr/ucb:$PATH id | cut -d ' ' -f1 | sed -e 's/uid=\([0-9]*\).*/\1/g'`
-GROUPID=`PATH=/usr/ucb:$PATH id | cut -d ' ' -f2 | sed -e 's/gid=\([0-9]*\).*/\1/g'`
-PASSWORD=testPw
-
-SRCDIR="`dirname $0`/../.."
-BINDIR="`pwd`/bin"
-SCRIPTDIR=$SRCDIR/script/tests
-LIBDIR=$PREFIX_ABS/lib
-VFS_MODULESDIR=$BINDIR
-PIDDIR=$PREFIX_ABS/pid
-CONFFILE=$LIBDIR/client.conf
-SAMBA4CONFFILE=$LIBDIR/samba4client.conf
-SERVERCONFFILE=$LIBDIR/server.conf
-COMMONCONFFILE=$LIBDIR/common.conf
-PRIVATEDIR=$PREFIX_ABS/private
-NCALRPCDIR=$PREFIX_ABS/ncalrpc
-LOCKDIR=$PREFIX_ABS/lockdir
-EVENTLOGDIR=$LOCKDIR/eventlog
-LOGDIR=$PREFIX_ABS/logs
-SOCKET_WRAPPER_DIR=$PREFIX_ABS/sw
-CONFIGURATION="--configfile $CONFFILE"
-SAMBA4CONFIGURATION="-s $SAMBA4CONFFILE"
-NSS_WRAPPER_PASSWD="$PRIVATEDIR/passwd"
-NSS_WRAPPER_GROUP="$PRIVATEDIR/group"
-WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbindd
-WINBINDD_PRIV_PIPE_DIR=$LOCKDIR/winbindd_privileged
-TEST_DIRECTORY=$DIRECTORY
-
-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 WORKGROUP SERVER SERVER_IP
-export NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP
-export WINBINDD_SOCKET_DIR WINBINDD_PRIV_PIPE_DIR
-export TEST_DIRECTORY
-
-PATH=bin:$PATH
-export PATH
-
-if [ $SMBTORTURE4 ]; then
- SAMBA4BINDIR=`dirname $SMBTORTURE4`
-fi
-
-SAMBA4SHAREDDIR="$SAMBA4BINDIR/shared"
-
-export SAMBA4SHAREDDIR
-export SMBTORTURE4
-
-if [ -z "$LIB_PATH_VAR" ] ; then
- echo "Warning: LIB_PATH_VAR not set. Using best guess LD_LIBRARY_PATH." >&2
- LIB_PATH_VAR=LD_LIBRARY_PATH
- export LIB_PATH_VAR
-fi
-
-eval $LIB_PATH_VAR=$BINDIR:$SAMBA4SHAREDDIR:\$$LIB_PATH_VAR
-export $LIB_PATH_VAR
-
-##
-## 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
-
-if test "x`smbd -b | grep NSS_WRAPPER`" = "x"; then
- echo "***"
- echo "*** You must include --enable-nss-wrapper when compiling Samba"
- echo "*** in order to execute 'make test'. Exiting...."
- echo "***"
- exit 1
-fi
-
-
-mkdir -p $PRIVATEDIR $NCALRPCDIR $LIBDIR $PIDDIR $LOCKDIR $LOGDIR $EVENTLOGDIR
-mkdir -p $SOCKET_WRAPPER_DIR
-mkdir -p $WINBINDD_SOCKET_DIR
-chmod 755 $WINBINDD_SOCKET_DIR
-
-##
-## Create an alternate shrdir if one was specified.
-##
-if [ $ALT_SHRDIR_ARG ]; then
- ALT_SHRDIR=`echo $ALT_SHRDIR_ARG | sed s+//+/+`
- mkdir -p $ALT_SHRDIR || exit $?
- OLD_PWD=`pwd`
- cd $ALT_SHRDIR || exit $?
- SHRDIR=`pwd`
- cd $OLD_PWD
- /bin/rm -rf $SHRDIR/*
-else
- SHRDIR=$PREFIX_ABS/tmp
- mkdir -p $SHRDIR
-fi
-chmod 777 $SHRDIR
-
-LOCAL_PATH=$SHRDIR
-export LOCAL_PATH
-
-##
-## Create driver share dirs
-##
-mkdir $SHRDIR/W32X86
-mkdir $SHRDIR/x64
-mkdir $SHRDIR/WIN40
-
-##
-## Create a read-only directory.
-##
-RO_SHRDIR=`echo $SHRDIR | sed -e 's:/[^/]*$::'`
-RO_SHRDIR=$RO_SHRDIR/root-tmp
-mkdir -p $RO_SHRDIR
-chmod 755 $RO_SHRDIR
-touch $RO_SHRDIR/unreadable_file
-chmod 600 $RO_SHRDIR/unreadable_file
-##
-## Create an MS-DFS root share.
-##
-MSDFS_SHRDIR=`echo $SHRDIR | sed -e 's:/[^/]*$::'`
-MSDFS_SHRDIR=$MSDFS_SHRDIR/msdfsshare
-mkdir -p $MSDFS_SHRDIR
-chmod 777 $MSDFS_SHRDIR
-mkdir -p $MSDFS_SHRDIR/deeppath
-chmod 777 $MSDFS_SHRDIR/deeppath
-## Create something visible in the target.
-touch $RO_SHRDIR/msdfs-target
-chmod 666 $RO_SHRDIR/msdfs-target
-ln -s msdfs:$SERVER_IP\\ro-tmp $MSDFS_SHRDIR/msdfs-src1
-ln -s msdfs:$SERVER_IP\\ro-tmp $MSDFS_SHRDIR/deeppath/msdfs-src2
-
-##
-## Create the common config include file with the basic settings
-##
-
-cat >$COMMONCONFFILE<<EOF
- workgroup = $WORKGROUP
-
- private dir = $PRIVATEDIR
- pid directory = $PIDDIR
- lock directory = $LOCKDIR
- log file = $LOGDIR/log.%m
- log level = 0
-
- name resolve order = bcast
-EOF
-
-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'
-
-cat >$CONFFILE<<EOF
-[global]
- netbios name = TORTURE_6
- interfaces = $TORTURE_INTERFACES
- panic action = $SCRIPTDIR/gdb_backtrace %d %\$(MAKE_TEST_BINARY)
- include = $COMMONCONFFILE
-
- passdb backend = tdbsam
-EOF
-
-cat >$SAMBA4CONFFILE<<EOF
-[global]
- netbios name = TORTURE_6
- interfaces = $TORTURE_INTERFACES
- panic action = $SCRIPTDIR/gdb_backtrace %PID% %PROG%
- include = $COMMONCONFFILE
- modules dir = $SRCDIR/bin/modules
- ncalrpc dir = $NCALRPCDIR
-EOF
-
-##
-## calculate uids and gids
-##
-
-if [ $USERID -lt $(( 0xffff - 2 )) ]; then
- MAXUID=0xffff
-else
- MAXUID=$USERID
-fi
-
-UID_ROOT=$(( $MAXUID - 1 ))
-UID_NOBODY=$(( MAXUID - 2 ))
-
-if [ $GROUPID -lt $(( 0xffff - 3 )) ]; then
- MAXGID=0xffff
-else
- MAXGID=$GROUPID
-fi
-
-GID_NOBODY=$(( $MAXGID - 3 ))
-GID_NOGROUP=$(( $MAXGID - 2 ))
-GID_ROOT=$(( $MAXGID - 1 ))
-
-cat >$SERVERCONFFILE<<EOF
-[global]
- netbios name = $SERVER
- interfaces = $SERVER_IP/8
- bind interfaces only = yes
- panic action = $SCRIPTDIR/gdb_backtrace %d %\$(MAKE_TEST_BINARY)
- include = $COMMONCONFFILE
-
- state directory = $LOCKDIR
- cache directory = $LOCKDIR
-
- passdb backend = tdbsam
-
- domain master = yes
- domain logons = yes
- lanman auth = yes
- time server = yes
-
- add user script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --passwd_path $NSS_WRAPPER_PASSWD --type passwd --action add --name %u --gid $GID_NOGROUP
- add group script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --group_path $NSS_WRAPPER_GROUP --type group --action add --name %g
- add user to group script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --group_path $NSS_WRAPPER_GROUP --type member --action add --name %g --member %u --passwd_path $NSS_WRAPPER_PASSWD
- add machine script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --passwd_path $NSS_WRAPPER_PASSWD --type passwd --action add --name %u --gid $GID_NOGROUP
- delete user script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --passwd_path $NSS_WRAPPER_PASSWD --type passwd --action delete --name %u
- delete group script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --group_path $NSS_WRAPPER_GROUP --type group --action delete --name %g
- delete user from group script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --group_path $NSS_WRAPPER_GROUP --type member --action delete --name %g --member %u --passwd_path $NSS_WRAPPER_PASSWD
-
- addprinter command = $PERL $SRCDIR/../source3/script/tests/printing/modprinter.pl -a -s $SERVERCONFFILE --
- deleteprinter command = $PERL $SRCDIR/../source3/script/tests/printing/modprinter.pl -d -s $SERVERCONFFILE --
-
- eventlog list = "dns server" application
- kernel oplocks = no
- kernel change notify = no
-
- syslog = no
- printing = bsd
- printcap name = /dev/null
-
- winbindd:socket dir = $WINBINDD_SOCKET_DIR
- idmap uid = 100000-200000
- idmap gid = 100000-200000
- winbind enum users = yes
- winbind enum groups = yes
-
-# min receivefile size = 4000
-
- max protocol = SMB2
- read only = no
- smbd:sharedelay = 100000
-# smbd:writetimeupdatedelay = 500000
- map hidden = no
- map system = no
- map readonly = no
- store dos attributes = yes
- create mask = 755
- vfs objects = $VFS_MODULESDIR/xattr_tdb.so $VFS_MODULESDIR/streams_depot.so
-
- printing = vlp
- print command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb print %p %s
- lpq command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb lpq %p
- lp rm command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb lprm %p %j
- lp pause command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb lppause %p %j
- lp resume command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb lpresume %p %j
- queue pause command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb queuepause %p
- queue resume command = $BINDIR/vlp tdbfile=$LOCKDIR/vlp.tdb queueresume %p
- lpq cache time = 0
-
- rpc_server:epmapper = embedded
-
- #Include user defined custom parameters if set
- $INCLUDE_CUSTOM_CONF
-
-[tmp]
- path = $SHRDIR
-[ro-tmp]
- path = $RO_SHRDIR
- guest ok = yes
-[msdfs-share]
- path = $MSDFS_SHRDIR
- msdfs root = yes
- guest ok = yes
-[hideunread]
- copy = tmp
- hide unreadable = yes
-[tmpcase]
- copy = tmp
- case sensitive = yes
-[hideunwrite]
- copy = tmp
- hide unwriteable files = yes
-[print1]
- copy = tmp
- printable = yes
-
-[print2]
- copy = print1
-[print3]
- copy = print1
-[lp]
- copy = print1
-[print$]
- copy = tmp
-EOF
-
-##
-## create a test account
-##
-
-cat >$NSS_WRAPPER_PASSWD<<EOF
-nobody:x:$UID_NOBODY:$GID_NOBODY:nobody gecos:$PREFIX_ABS:/bin/false
-$USERNAME:x:$USERID:$GROUPID:$USERNAME gecos:$PREFIX_ABS:/bin/false
-EOF
-
-cat >$NSS_WRAPPER_GROUP<<EOF
-nobody:x:$GID_NOBODY:
-nogroup:x:$GID_NOGROUP:nobody
-$USERNAME-group:x:$GROUPID:
-EOF
-
-##
-## add fake root user when not running as root
-##
-if [ "$USERID" != 0 ]; then
-
-cat >>$NSS_WRAPPER_PASSWD<<EOF
-root:x:$UID_ROOT:$GID_ROOT:root gecos:$PREFIX_ABS:/bin/false
-EOF
-
-cat >>$NSS_WRAPPER_GROUP<<EOF
-root:x:$GID_ROOT:
-EOF
-
-fi
-
-touch $EVENTLOGDIR/dns\ server.tdb
-touch $EVENTLOGDIR/application.tdb
-
-MAKE_TEST_BINARY="bin/smbpasswd"
-export MAKE_TEST_BINARY
-
-(echo $PASSWORD; echo $PASSWORD) | \
- bin/smbpasswd -c $SERVERCONFFILE -L -s -a $USERNAME >/dev/null || exit 1
-
-echo "DONE";
-
-MAKE_TEST_BINARY=""
-
-SERVER_TEST_FIFO="$PREFIX/server_test.fifo"
-export SERVER_TEST_FIFO
-NMBD_TEST_LOG="$PREFIX/nmbd_test.log"
-export NMBD_TEST_LOG
-WINBINDD_TEST_LOG="$PREFIX/winbindd_test.log"
-export WINBINDD_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.6 as source address by default
-SOCKET_WRAPPER_DEFAULT_IFACE=6
-export SOCKET_WRAPPER_DEFAULT_IFACE
-TORTURE4_OPTIONS="$SAMBA4CONFIGURATION"
-TORTURE4_OPTIONS="$TORTURE4_OPTIONS --maximum-runtime=$TORTURE_MAXTIME"
-TORTURE4_OPTIONS="$TORTURE4_OPTIONS --target=samba3"
-TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=torture:localdir=$SHRDIR"
-TORTURE4_OPTIONS="$TORTURE4_OPTIONS --option=torture:winbindd_netbios_name=$SERVER"
-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 10
- # This will return quickly when things are up, but be slow if we need to wait for (eg) SSL init
- MAKE_TEST_BINARY="bin/nmblookup"
- 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"
- MAKE_TEST_BINARY="bin/smbclient"
- bin/smbclient $CONFIGURATION -L $SERVER_IP -U% -p 139 | head -2
- bin/smbclient $CONFIGURATION -L $SERVER_IP -U% -p 139 | head -2
- MAKE_TEST_BINARY=""
-
- failed=0
-
- . $SCRIPTDIR/tests_$SUBTESTS.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