summaryrefslogtreecommitdiff
path: root/source3/script/tests
diff options
context:
space:
mode:
Diffstat (limited to 'source3/script/tests')
-rw-r--r--source3/script/tests/gdb_backtrace41
-rw-r--r--source3/script/tests/runtests.sh41
-rw-r--r--source3/script/tests/t_listing.sh28
3 files changed, 110 insertions, 0 deletions
diff --git a/source3/script/tests/gdb_backtrace b/source3/script/tests/gdb_backtrace
new file mode 100644
index 0000000000..2ea6a4d00a
--- /dev/null
+++ b/source3/script/tests/gdb_backtrace
@@ -0,0 +1,41 @@
+#! /bin/sh
+#
+# Author: Andrew Tridgell <tridge at samba dot org>
+
+# we want everything on stderr, so the program is not disturbed
+exec 1>&2
+
+BASENAME=$( basename $0)
+
+test -z ${GDB_BIN} && GDB_BIN=$( type -p gdb)
+if [ -z ${GDB_BIN} ]; then
+ echo "ERROR: ${BASENAME} needs an installed gdb. "
+ exit 1
+fi
+
+if [ -z $1 ]; then
+ echo "ERROR: ${BASENAME} needs a PID. "
+ exit 1
+fi
+PID=$1
+
+# use /dev/shm as default temp directory
+test -d /dev/shm && \
+ TMP_BASE_DIR=/dev/shm || \
+ TMP_BASE_DIR=/var/tmp
+TMPFILE=$( mktemp -p ${TMP_BASE_DIR} backtrace.XXXXXX)
+if [ $? -ne 0 ]; then
+ echo "ERROR: ${basename} can't create temp file in ${TMP_BASE_DIR}. "
+ exit 1
+fi
+
+cat << EOF > "${TMPFILE}"
+set height 0
+up 8
+bt full
+quit
+EOF
+
+${GDB_BIN} -x "${TMPFILE}" "/proc/${PID}/exe" "${PID}"
+
+/bin/rm -f "${TMPFILE}"
diff --git a/source3/script/tests/runtests.sh b/source3/script/tests/runtests.sh
new file mode 100644
index 0000000000..2483de97ca
--- /dev/null
+++ b/source3/script/tests/runtests.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+DOMAIN=SAMBA-TEST
+export DOMAIN
+
+if [ "x$1" == "x" ]; then
+ echo "$0 <directory>"
+ exit 1
+fi
+
+PREFIX=`echo $1 | sed s+//+/+`
+
+mkdir -p $PREFIX || exit $?
+OLD_PWD=`pwd`
+cd $PREFIX || exit $?
+export PREFIX_ABS=`pwd`
+cd $OLD_PWD
+
+TMPDIR=$PREFIX_ABS/tmp
+LIBDIR=$PREFIX_ABS/lib
+PIDDIR=$PREFIX_ABS/pid
+CONFFILE=$LIBDIR/smb.conf
+PRIVATEDIR=$PREFIX_ABS/private
+LOCKDIR=$PREFIX_ABS/lockdir
+LOGDIR=$PREFIX_ABS/logs
+SOCKET_WRAPPER_DIR=$PREFIX_ABS/sockwrap
+CONFIGURATION="-s $CONFFILE"
+
+PATH=`pwd`/bin:$PATH
+
+rm -rf $PREFIX/*
+mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $LOCKDIR $TMPDIR $LOGDIR $SOCKET_WRAPPER_DIR
+
+export PREFIX_ABS CONFIGURATION CONFFILE PATH SOCKET_WRAPPER_DIR
+export PRIVATEDIR LIBDIR PIDDIR LOCKDIR TMPDIR LOGDIR
+
+cd script/tests
+for testfile in t_*sh; do
+ sh $testfile
+done
+
diff --git a/source3/script/tests/t_listing.sh b/source3/script/tests/t_listing.sh
new file mode 100644
index 0000000000..0689807671
--- /dev/null
+++ b/source3/script/tests/t_listing.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+cat >$CONFFILE<<EOF
+[global]
+ netbios name = LOCALHOST
+ workgroup = $DOMAIN
+
+ private dir = $PRIVATEDIR
+ pid directory = $PIDDIR
+ lock directory = $LOCKDIR
+ log file = $LOGDIR/log.%m
+
+ interfaces = lo
+ bind interfaces only = yes
+
+ panic action = $PREFIX_ABS/script/tests/gdb_backtrace /proc/%d/exe %d
+
+[test]
+ path = $TMPDIR
+ read only = no
+EOF
+
+
+smbd $CONFIGURATION || exit $?
+sleep 1
+smbclient $CONFIGURATION -L localhost -N -p 139
+
+killall smbd