svn commit: samba r7463 - in branches/SAMBA_4_0/source: build/smb_build script/tests

metze at samba.org metze at samba.org
Fri Jun 10 15:32:16 GMT 2005


Author: metze
Date: 2005-06-10 15:32:16 +0000 (Fri, 10 Jun 2005)
New Revision: 7463

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7463

Log:
- move some more stuff into functions

- try to kill all jobs return by jobs -p

metze
Modified:
   branches/SAMBA_4_0/source/build/smb_build/makefile.pm
   branches/SAMBA_4_0/source/script/tests/selftest.sh
   branches/SAMBA_4_0/source/script/tests/test_functions.sh


Changeset:
Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/makefile.pm	2005-06-10 13:42:01 UTC (rev 7462)
+++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm	2005-06-10 15:32:16 UTC (rev 7463)
@@ -148,7 +148,7 @@
 test: @DEFAULT_TEST_TARGET@
 
 test-swrap: all
-	SOCKET_WRAPPER_DIR=`pwd`/prefix-test ./script/tests/selftest.sh `pwd`/prefix-test
+	./script/tests/selftest.sh `pwd`/prefix-test SOCKET_WRAPPER
 
 test-noswrap: all
 	./script/tests/selftest.sh `pwd`/prefix-test

Modified: branches/SAMBA_4_0/source/script/tests/selftest.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/selftest.sh	2005-06-10 13:42:01 UTC (rev 7462)
+++ branches/SAMBA_4_0/source/script/tests/selftest.sh	2005-06-10 15:32:16 UTC (rev 7463)
@@ -12,6 +12,7 @@
 fi
 
 PREFIX=$1
+export PREFIX
 TMPDIR=$PREFIX/tmp
 LIBDIR=$PREFIX/lib
 PIDDIR=$PREFIX/pid
@@ -20,6 +21,18 @@
 NCALRPCDIR=$PREFIX/ncalrpc
 LOCKDIR=$PREFIX/lockdir
 
+SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
+export SMBD_TEST_FIFO
+SMBD_TEST_LOG="$PREFIX/smbd_test.log"
+export SMBD_TEST_LOG
+
+DO_SOCKET_WRAPPER=$2
+if [ x"$DO_SOCKET_WRAPPER" = x"SOCKET_WRAPPER" ];then
+	SOCKET_WRAPPER_DIR="$PREFIX/socket_wrapper_dir"
+	export SOCKET_WRAPPER_DIR
+	echo "SOCKET_WRAPPER_DIR=$SOCKET_WRAPPER_DIR"
+fi
+
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
@@ -41,7 +54,7 @@
 	path = $TMPDIR
 	read only = no
 	ntvfs handler = posix
-	posix:sharedelay = 5000
+	posix:sharedelay = 100000
 EOF
 
 ADDARG="-s $CONFFILE"
@@ -49,20 +62,8 @@
 	ADDARG="$ADDARG --option=\"torture:progress=no\""
 fi
 
-SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
-export SMBD_TEST_FIFO
+smbd_check_or_start
 
-rm -f $SMBD_TEST_FIFO
-mkfifo $SMBD_TEST_FIFO
-
-($SRCDIR/bin/smbd -d1 -s $CONFFILE -M single -i < $SMBD_TEST_FIFO;
- ret=$?;
- rm -f $SMBD_TEST_FIFO;
- echo "smbd exists with status $ret";
- exit $ret;
-)||exit $? &
-
-sleep 2
 START=`date`
 (
  failed=0

Modified: branches/SAMBA_4_0/source/script/tests/test_functions.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/test_functions.sh	2005-06-10 13:42:01 UTC (rev 7462)
+++ branches/SAMBA_4_0/source/script/tests/test_functions.sh	2005-06-10 15:32:16 UTC (rev 7463)
@@ -1,16 +1,67 @@
-testit() {
-        name=$1
-	shift 1
-	trap "rm -f test.$$" EXIT
-	cmdline="$*"
+smbd_check_or_start() {
+	if [ -n "$SMBD_TEST_FIFO" ];then
+		if [ -p "$SMBD_TEST_FIFO" ];then
+			return 0;
+		fi
 
+		if [ -n "$SOCKET_WRAPPER_DIR" ];then
+			if [ -d "$SOCKET_WRAPPER_DIR" ]; then
+				rm -f $SOCKET_WRAPPER_DIR/*
+			else
+				mkdir -p $SOCKET_WRAPPER_DIR
+			fi
+		fi
+
+		rm -f $SMBD_TEST_FIFO
+		mkfifo $SMBD_TEST_FIFO
+
+		rm -f $SMBD_TEST_LOG
+
+		echo -n "STARTING SMBD..."
+		((
+			$SRCDIR/bin/smbd -d1 -s $CONFFILE -M single -i < $SMBD_TEST_FIFO > $SMBD_TEST_LOG 2>&1;
+			ret=$?;
+			rm -f $SMBD_TEST_FIFO;
+			if [ -n "$SOCKET_WRAPPER_DIR" -a -d "$SOCKET_WRAPPER_DIR" ]; then
+				rm -f $SOCKET_WRAPPER_DIR/*
+			fi
+			echo "smbd exists with status $ret";
+			echo "smbd exists with status $ret" >>$SMBD_TEST_LOG;
+			exit $ret;
+		) || exit $? &) 2>/dev/null || exit $?
+		sleep 2
+		echo  "DONE"
+	fi
+	return 0;
+}
+
+smbd_check_only() {
 	if [ -n "$SMBD_TEST_FIFO" ];then
-		if [ ! -p "$SMBD_TEST_FIFO" ];then
-			echo "TEST SKIPPED: $name (reason: smbd is down)";
+		if [ -p "$SMBD_TEST_FIFO" ];then
 			return 0;
 		fi
+		return 1;
 	fi
+	return 0;
+}
 
+smbd_have_test_log() {
+	if [ -n "$SMBD_TEST_LOG" ];then
+		if [ -r "$SMBD_TEST_LOG" ];then
+			return 0;
+		fi
+	fi
+	return 1;
+}
+
+testit() {
+        name=$1
+	shift 1
+	SMBD_IS_UP="no"
+	TEST_LOG="$PREFIX/test_log.$$"
+	trap "rm -f $TEST_LOG" EXIT
+	cmdline="$*"
+
 	if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
 		echo "--==--==--==--==--==--==--==--==--==--==--"
 		echo "Running test $name (level 0 stdout)"
@@ -20,11 +71,29 @@
 	else
 		echo "Testing $name"
 	fi
-	( $cmdline > test.$$ 2>&1 )
+
+	smbd_check_only && SMBD_IS_UP="yes"
+	if [ x"$SMBD_IS_UP" = x"no" ];then
+		if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
+			echo "=========================================="
+			echo "TEST SKIPPED: $name (reason SMBD is down)"
+			echo "=========================================="
+   		else
+			echo "TEST SKIPPED: $name (reason SMBD is down)"
+		fi
+		return 1
+	fi
+	
+	smbd_have_test_log && echo "" >$SMBD_TEST_LOG
+
+	( $cmdline > $TEST_LOG 2>&1 )
 	status=$?
 	if [ x"$status" != x"0" ]; then
-		cat test.$$;
-		rm -f test.$$;
+		echo "TEST OUTPUT:"
+		cat $TEST_LOG;
+		smbd_have_test_log && echo "SMBD OUTPUT:";
+		smbd_have_test_log && cat $SMBD_TEST_LOG;
+		rm -f $TEST_LOG;
 		if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
 			echo "=========================================="
 			echo "TEST FAILED: $name (status $status)"
@@ -34,7 +103,7 @@
 		fi
 		return 1;
 	fi
-	rm -f test.$$;
+	rm -f $TEST_LOG;
 	if [ x"$RUN_FROM_BUILD_FARM" = x"yes" ];then
 		echo "ALL OK: $cmdline"
 		echo "=========================================="
@@ -47,10 +116,20 @@
 testok() {
 	name=`basename $1`
 	failed=$2
+
+	JOBS=`jobs -p`
+	for J in $JOBS;do
+		kill $J >/dev/null 2>&1;
+	done
+	JOBS=`jobs -p`
+	for J in $JOBS;do
+		kill -s 9 $J >/dev/null 2>&1;
+	done
+
 	if [ x"$failed" = x"0" ];then
 		:
 	else
-		echo "$failed TESTS FAILED ($name)";
+		echo "$failed TESTS FAILED or SKIPPED ($name)";
 	fi
 	exit $failed
 }
@@ -58,6 +137,16 @@
 teststatus() {
 	name=`basename $1`
 	failed=$2
+
+	JOBS=`jobs -p`
+	for J in $JOBS;do
+		kill $J >/dev/null 2>&1;
+	done
+	JOBS=`jobs -p`
+	for J in $JOBS;do
+		kill -s 9 $J >/dev/null 2>&1;
+	done
+
 	if [ x"$failed" = x"0" ];then
 		echo "TEST STATUS: $failed";
 	else



More information about the samba-cvs mailing list