diff options
-rw-r--r-- | source3/script/tests/functions | 40 | ||||
-rw-r--r-- | source3/script/tests/runtests.sh | 40 | ||||
-rw-r--r-- | source3/script/tests/t_001.sh | 3 | ||||
-rw-r--r-- | source3/script/tests/t_002.sh | 25 |
4 files changed, 107 insertions, 1 deletions
diff --git a/source3/script/tests/functions b/source3/script/tests/functions index 4cc8d4a2c0..40e185e153 100644 --- a/source3/script/tests/functions +++ b/source3/script/tests/functions @@ -40,3 +40,43 @@ stop_smbd() fi } + +## +## start/stop smbd daemon +## +check_nmbd_running() +{ + ## the smbcontrol ping will return a 0 on success + smbcontrol $CONFIGURATION nmbd ping 2>&1 > /dev/null +} + +start_nmbd() +{ + echo "Starting nmbd...." + + nmbd $CONFIGURATION || return $? + + sleep 1 + + # smbcontrol $CONFIGURATION `cat $PIDDIR/nmbd.pid` ping 2>&1 > /dev/null || return $? + kill -0 `cat $PIDDIR/nmbd.pid` +} + +stop_nmbd() +{ + nmbd_pid=`cat $PIDDIR/nmbd.pid` + echo "Shutting down nmbd (pid $nmbd_pid)..." + + ## belt and braces; first kill and then send a shutdown message + + kill -TERM $nmbd_pid 2> /dev/null + sleep 1 + + ## check to see if smbd is already running + kill -0 $nmbd_pid 2> /dev/null + if test $? == 0; then + echo "Unable to stop nmbd!" + exit 2 + fi +} + diff --git a/source3/script/tests/runtests.sh b/source3/script/tests/runtests.sh index e8594f5199..b814ad91e7 100644 --- a/source3/script/tests/runtests.sh +++ b/source3/script/tests/runtests.sh @@ -5,6 +5,10 @@ if [ "x$1" == "x" ]; then exit 1 fi +if [ $# == 2 ]; then + testnum=$2 +fi + ## ## create the test directory ## @@ -19,6 +23,9 @@ cd $OLD_PWD ## setup the various environment variables we need ## +USERNAME=`whoami` +PASSWORD=test + SRCDIR=`pwd` SCRIPTDIR=$SRCDIR/script/tests TMPDIR=$PREFIX_ABS/tmp @@ -35,6 +42,7 @@ PATH=`pwd`/bin:$PATH export PREFIX_ABS CONFIGURATION CONFFILE PATH SOCKET_WRAPPER_DIR DOMAIN export PRIVATEDIR LIBDIR PIDDIR LOCKDIR TMPDIR LOGDIR export SRCDIR SCRIPTDIR +export USERNAME PASSWORD ## ## create the test directory layout @@ -42,6 +50,7 @@ export SRCDIR SCRIPTDIR /bin/rm -rf $PREFIX/* mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $LOCKDIR $TMPDIR $LOGDIR $SOCKET_WRAPPER_DIR +chmod 1777 $TMPDIR ## ## Create the common config include file with the basic settings @@ -57,17 +66,46 @@ cat >$LIBDIR/common.conf<<EOF log file = $LOGDIR/log.%m log level = 0 + passdb backend = tdbsam + interfaces = lo bind interfaces only = yes - panic action = $PREFIX_ABS/script/tests/gdb_backtrace /proc/%d/exe %d + panic action = $SCRIPTDIR/gdb_backtrace %d +EOF + +cat >$LIBDIR/smb.conf<<EOF +[global] + include = $LIBDIR/common.conf EOF + +## +## create a test account +## + +(echo $PASSWORD; echo $PASSWORD) | smbpasswd -c $LIBDIR/smb.conf -L -s -a $USERNAME + + ## ## ready to go...now loop through the tests ## +if [ -f $SCRIPTDIR/t_$testnum.sh ]; then + testfile=$SCRIPTDIR/t_$testnum.sh + echo ">>>>>> Starting test driver `basename $testfile` <<<<<" + sh $testfile + if [ $? = 0 ]; then + echo ">>>>> test ok <<<<<" + else + echo ">>>>> test failed <<<<<" + fi + + exit 0 +fi + for testfile in `ls $SCRIPTDIR/t_*sh | sort`; do + echo " " echo ">>>>>> Starting test driver `basename $testfile` <<<<<" sh $testfile if [ $? = 0 ]; then diff --git a/source3/script/tests/t_001.sh b/source3/script/tests/t_001.sh index f9f530c974..77b023c4c4 100644 --- a/source3/script/tests/t_001.sh +++ b/source3/script/tests/t_001.sh @@ -18,5 +18,8 @@ EOF start_smbd || exit $? smbclient $CONFIGURATION -L localhost -N -p 139 +ret=$? stop_smbd + +exit $ret diff --git a/source3/script/tests/t_002.sh b/source3/script/tests/t_002.sh new file mode 100644 index 0000000000..48987262a7 --- /dev/null +++ b/source3/script/tests/t_002.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +. $SCRIPTDIR/functions + +cat >$CONFFILE<<EOF +[global] + include = $LIBDIR/common.conf + +[test] + path = $TMPDIR + read only = no +EOF + +## +## Test code +## + +start_smbd || exit $? + +smbtorture //localhost/test -U${USERNAME}%${PASSWORD} FDPASS +ret=$? + +stop_smbd + +exit $ret |