#!/bin/sh
-if [ $# != 3 -a $# != 4 ]; then
- echo "$0 <directory> <all | quick> <smbtorture4> [<shrdir>]"
+if [ $# -lt 2 ]; then
+ echo "$0 <directory> <all | quick> [-t <smbtorture4>] [-s <shrdir>] " \
+ "[-c <custom conf>]"
exit 1
fi
-SMBTORTURE4=$3
-SUBTESTS=$2
+##
+## 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
##
-PREFIX=`echo $1 | sed s+//+/+`
+PREFIX=`echo $DIRECTORY | sed s+//+/+`
mkdir -p $PREFIX || exit $?
OLD_PWD=`pwd`
cd $PREFIX || exit $?
WORKGROUP=SAMBA-TEST
SERVER=localhost2
SERVER_IP=127.0.0.2
-USERNAME=`PATH=/usr/ucb:$PATH whoami`
+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=test
SERVERCONFFILE=$LIBDIR/server.conf
COMMONCONFFILE=$LIBDIR/common.conf
PRIVATEDIR=$PREFIX_ABS/private
+NCALRPCDIR=$PREFIX_ABS/ncalrpc
LOCKDIR=$PREFIX_ABS/lockdir
LOGDIR=$PREFIX_ABS/logs
-SOCKET_WRAPPER_DIR=$PREFIX/sw
+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 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 test x"$LD_LIBRARY_PATH" != x""; then
- LD_LIBRARY_PATH="$BINDIR:$LD_LIBRARY_PATH"
-else
- LD_LIBRARY_PATH="$BINDIR"
+if [ $SMBTORTURE4 ]; then
+ SAMBA4BINDIR=`dirname $SMBTORTURE4`
fi
-echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
-SAMBA4BINDIR=`dirname $SMBTORTURE4`
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
##
##
printf "%s" "CREATE TEST ENVIRONMENT IN '$PREFIX'"...
/bin/rm -rf $PREFIX/*
-mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $LOCKDIR $LOGDIR
+mkdir -p $PRIVATEDIR $NCALRPCDIR $LIBDIR $PIDDIR $LOCKDIR $LOGDIR
mkdir -p $SOCKET_WRAPPER_DIR
mkdir -p $WINBINDD_SOCKET_DIR
chmod 755 $WINBINDD_SOCKET_DIR
##
## Create an alternate shrdir if one was specified.
##
-if [ $# = 4 ]; then
- ALT_SHRDIR=`echo $4 | sed s+//+/+`
+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 $?
interfaces = $TORTURE_INTERFACES
panic action = $SCRIPTDIR/gdb_backtrace %PID% %PROG%
include = $COMMONCONFFILE
+ modules dir = $SRCDIR/bin/modules
+ ncalrpc dir = $NCALRPCDIR
EOF
cat >$SERVERCONFFILE<<EOF
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 --path $NSS_WRAPPER_PASSWD --type passwd --action add --name %u
- add machine script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --path $NSS_WRAPPER_PASSWD --type passwd --action add --name %u
- delete user script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --path $NSS_WRAPPER_PASSWD --type passwd --action delete --name %u
+ add user script = $PERL $SRCDIR/../lib/nss_wrapper/nss_wrapper.pl --passwd_path $NSS_WRAPPER_PASSWD --type passwd --action add --name %u
+ 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
+ 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 --
kernel oplocks = no
kernel change notify = no
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
-[tmp]
- path = $SHRDIR
read only = no
smbd:sharedelay = 100000
- smbd:writetimeupdatedelay = 500000
- map hidden = yes
- map system = yes
+# smbd:writetimeupdatedelay = 500000
+ map hidden = no
+ map system = no
+ map readonly = no
+ store dos attributes = yes
create mask = 755
+ store create time = yes
vfs objects = $BINDIR/xattr_tdb.so $BINDIR/streams_depot.so
+
+ #Include user defined custom parameters if set
+ $INCLUDE_CUSTOM_CONF
+
+[tmp]
+ path = $SHRDIR
[hideunread]
copy = tmp
hide unreadable = yes
+[tmpcase]
+ copy = tmp
+ case sensitive = yes
[hideunwrite]
copy = tmp
hide unwriteable files = yes
[print1]
copy = tmp
printable = yes
- printing = test
+ 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
+
[print2]
copy = print1
[print3]
##
cat >$NSS_WRAPPER_PASSWD<<EOF
+root:x:65533:65532:root gecos:$PREFIX_ABS:/bin/false
nobody:x:65534:65533:nobody gecos:$PREFIX_ABS:/bin/false
$USERNAME:x:$USERID:$GROUPID:$USERNAME gecos:$PREFIX_ABS:/bin/false
EOF
cat >$NSS_WRAPPER_GROUP<<EOF
nobody:x:65533:
nogroup:x:65534:nobody
+root:x:65532:
$USERNAME-group:x:$GROUPID:
EOF
export MAKE_TEST_BINARY
(echo $PASSWORD; echo $PASSWORD) | \
- bin/smbpasswd -c $CONFFILE -L -s -a $USERNAME >/dev/null || exit 1
+ bin/smbpasswd -c $SERVERCONFFILE -L -s -a $USERNAME >/dev/null || exit 1
echo "DONE";
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