Index: trunk/test/testrun_2d.sh
===================================================================
--- trunk/test/testrun_2d.sh	(revision 1)
+++ trunk/test/testrun_2d.sh	(revision 19)
@@ -1,190 +1,104 @@
 #! /bin/sh
 
+SERVER_BUILDOPTS="--quiet  $TRUST --enable-xml-log --enable-debug --enable-network=server --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER$PW_DIR/testrc_2 --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-logserver=${SH_LOCALHOST}  --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock --with-database=postgresql"; export SERVER_BUILDOPTS
 
-# The following two are the ANSI sequences for start and end embolden
-case $TERM in
-vt*|ansi*|con*|xterm*|linux*|screen*)
-  S=[1m
-  E=[m
-  ;;
-*)
-  S=
-  E=
-  ;;
-esac
+CLIENT_BUILDOPTS="--quiet  $TRUST --prefix=$PW_DIR --localstatedir=$PW_DIR --enable-network=client --disable-mail --disable-external-scripts --enable-login-watch --enable-xml-log --enable-db-reload --with-logserver=localhost --with-config-file=REQ_FROM_SERVER$PW_DIR/testrc_2 --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock"; export CLIENT_BUILDOPTS
 
-PW_DIR=`pwd`
+check_psql_log () {
+    DATE="$1"
 
-if test x$UID != x; then
-  TRUST="--with-trusted=0,2,$UID"
-else
-  TRUST="--with-trusted=0,2"
-fi
+    rm -f test_log_db
+    PGPASSWORD=samhain; export PGPASSWORD
+    psql -U samhain -d samhain -c "SELECT * FROM log WHERE entry_status = 'NEW' and log_time > '${DATE}';" >test_log_db
+    #
+    egrep "START.*Yule" test_log_db >/dev/null 2>&1
+    if [ $? -ne 0 ]; then
+	[ -z "$verbose" ] || log_msg_fail "Server start";
+	return 1
+    fi
+    egrep "NEW CLIENT" test_log_db >/dev/null 2>&1
+    if [ $? -ne 0 ]; then
+	[ -z "$verbose" ] || log_msg_fail "Client connect";
+	return 1
+    fi
+    egrep "Checking.*/bin" test_log_db >/dev/null 2>&1
+    if [ $? -ne 0 ]; then
+	[ -z "$verbose" ] || log_msg_fail "Client file check";
+	return 1
+    fi
+    egrep "EXIT.*Samhain" test_log_db >/dev/null 2>&1
+    if [ $? -ne 0 ]; then
+	[ -z "$verbose" ] || log_msg_fail "Client exit";
+	return 1
+    fi
+    egrep "EXIT.*Yule.*SIGTERM" test_log_db >/dev/null 2>&1
+    if [ $? -ne 0 ]; then
+	[ -z "$verbose" ] || log_msg_fail "Server exit";
+	return 1
+    fi
+    return 0
+}
 
-echo; echo "${S}__ STARTING TEST RUN CLIENT/SERVER __${E}"; echo;
-echo Working directory: $PW_DIR
-
-MAKE=`which gmake`
-if test "x$?" = x1 ; then
-    MAKE="make -s"
-else
-    MAKE=`which gmake | sed -e "s%\([a-z:]\) .*%\1%g"` 
-    if test "x$MAKE" = x; then
-	MAKE="make -s"
-    elif test "x$MAKE" = xno; then
-	MAKE="make -s"
-    else
-	if test "x$MAKE" = "xwhich:"; then
-		MAKE="make -s"
-	else
-		MAKE="gmake -s"
-		gmake -v >/dev/null 2>&1 || MAKE="make -s"
-	fi
-    fi
-fi
-
-echo MAKE is $MAKE
-echo
-
-# --with-database=postgresql
-# export MYLIB=-L/usr/local/pgsql/lib
-# export MYINC=-I/usr/local/pgsql/include
-# export LD_LIBRARY_PATH=/usr/local/pgsql/lib
-
-# --with-database=mysql
-# export MYLIB=-L/usr/local/mysql/lib
-# export MYINC=-I/usr/local/mysql/include
-# export LD_LIBRARY_PATH=/usr/local/mysql/lib
+MAXTEST=1; export MAXTEST
 
 testrun2d ()
 {
-	#
-	# test standalone compilation
-	#
-	echo "${S}Building client and server${E}"; echo;
-	#
-	if test -r "Makefile"; then
-		$MAKE distclean
+    log_start "RUN FULL CLIENT/SERVER W/POSTGRESQL"
+    #
+    if [ -z "$doall" ]; then
+	log_skip 1 $MAXTEST 'Client/server w/postgresql (or use --really-all)'
+	return 0
+    fi
+    if [ x"$1" = x ]; then
+	[ -z "$quiet" ] && log_msg_fail "Missing hostname"
+    fi
+    PSQL=`find_path psql`
+    if [ -z "$PSQL" ]; then
+	log_skip 1 $MAXTEST "psql not found";
+	return 1
+    else
+	PGPASSWORD="samhain"; export PGPASSWORD
+	TEST=`psql -U samhain -d samhain -c "SELECT * FROM log LIMIT 1;" 2>/dev/null`
+	if [ $? -ne 0 -o -z "$TEST" ]; then
+	    log_skip 1 $MAXTEST "psql not default setup"
+	    return 1
 	fi
-	#
-	${TOP_SRCDIR}/configure --quiet  $TRUST --enable-network=client  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/testrc_2  --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file
-	#
-	if test x$? = x0; then
-		echo "configure completed, exit status 0"; echo;
-		$MAKE  > /dev/null
-		if test x$? = x0; then
-		    echo "$MAKE completed, exit status $?"; echo;
-		else
-		    echo "${S}ERROR:${E} make failed, exit status $?"; echo;
-		    exit
-		fi
-
+    fi
+    #
+    SH_LOCALHOST=$1; export SH_LOCALHOST
+    #
+    DATE=`date '+%Y-%m-%d %T'`
+    #
+    testrun2a_internal
+    #
+    ORIGINAL="DatabaseSeverity=none"
+    REPLACEMENT="DatabaseSeverity=info"
+    ex $RCFILE <<EOF
+:%s/$ORIGINAL/$REPLACEMENT/g
+:wq
+EOF
+    #
+    do_test_1_a
+    if [ $? -ne 0 ]; then
+	[ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client/server w/postgresql";
+    else
+    #
+	check_psql_log "${DATE}"
+	if [ $? -ne 0 ]; then
+	    [ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client/server w/postgresql";
 	else
-		echo "${S}ERROR:${E} configure failed, exit status $?"; echo;
-		exit
+	    [ -z "$quiet" ] && log_ok   1 ${MAXTEST} "Client/server w/postgresql";
 	fi
-
-	# save binary and build server
-	#
-	cp samhain samhain.build
-	make clean
-
-	${TOP_SRCDIR}/configure --quiet  $TRUST --enable-network=server  --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/testrc_2  --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file --enable-udp --enable-identity=rainer
-	#
-	if test x$? = x0; then
-		echo "configure completed, exit status 0"; echo;
-		$MAKE  > /dev/null
-		if test x$? = x0; then
-		    echo "$MAKE completed, exit status $?"; echo;
-		else
-		    echo "${S}ERROR:${E} make failed, exit status $?"; echo;
-		    exit
-		fi
-
-	else
-		echo "${S}ERROR:${E} configure failed, exit status $?"; echo;
-		exit
-	fi
-
-	#################################################################
-	#
-	#
-	echo "${S}Initialize database${E}"; echo;
-
-	rm -f ./.samhain_file
-	rm -f ./.samhain_log
-	rm -f ./.samhain_lock
-
-	cp ${SCRIPTDIR}/testrc_2.in testrc_2
-
-	echo "./samhain.build -t init"
-	./samhain.build -t init
-
-	SHINI=$?
-
-	# Create a password
-
-	SHPW=`./yule -G 2>&1 | grep -v 'ERRO'`
-	if test x"$SHPW" = x; then
-	    echo "password not generated -- aborting"
-	    exit 1
-	fi
-
-	# Set in client
-
-	echo "./samhain_setpwd samhain.build new $SHPW"
-	./samhain_setpwd samhain.build new $SHPW
-
-	mv samhain.build.new  samhain.new
-
-	rm -f ./.samhain_log
-	rm -f ./.samhain_lock
-
-	SHCLT=`./yule -P $SHPW  2>&1 | grep -v 'ERRO' | sed s%HOSTNAME%${SH_LOCALHOST}%`
-
- 	echo $SHCLT >> testrc_2
-
-	if test x$SHINI = x0; then
-		echo; echo "${S}Start Server${E}: ./yule  &"; echo;
-		su -c "./yule &"
-		PROC_Y=$!
-		sleep 5
-
-		echo; echo "${S}Start Client${E}: ./samhain.new -l none -p none -e info -t check";
-
-		./samhain.new -t check -p none -l none -e info
-		if test x$? = x0; then
-		    echo "${S}check completed${E}"
-		else
-		    echo "${S}ERROR:${E} -- check -- failed, exit status $?"
-		    echo
-		    su -c "kill $PROC_Y"
-		    exit
-		fi
-
-		su -c "kill $PROC_Y"
-		sleep 5
-	else
-		echo "${S}ERROR:${E} -- init -- failed, exit status $SHINI"; 
-		echo;
-		exit
-	fi
-	    
+    fi
+    #
+    if [ -n "$cleanup" ]; then
+	rm -f ./rc.${SH_LOCALHOST}
+	rm -f ./file.${SH_LOCALHOST}
+	ALTHOST=`find_hostname`
+	rm -f "./file.${ALTHOST}"
+	rm -f "./rc.${ALTHOST}"
+    fi
+    #
+    log_end "RUN FULL CLIENT/SERVER W/POSTGRESQL"
 }
 
-    if test x$1 = x; then
-	echo
-	echo "Please provide the local hostname as argument."
-	echo
-	exit 8
-    fi
-
-    SH_LOCALHOST=$1; export SH_LOCALHOST
-
-    testrun2d
-
-
-echo; echo "${S}__ END TEST RUN CLIENT/SERVER __${E}"; echo;
-
-exit
-
