summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/script/tests/functions40
-rw-r--r--source3/script/tests/runtests.sh40
-rw-r--r--source3/script/tests/t_001.sh3
-rw-r--r--source3/script/tests/t_002.sh25
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