Index: trunk/test/testrun_2b.sh
===================================================================
--- trunk/test/testrun_2b.sh	(revision 583)
+++ trunk/test/testrun_2b.sh	(revision 1)
@@ -1,215 +1,221 @@
 #! /bin/sh
 
+
+# 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
+
+PW_DIR=`pwd`
+
+if test x$UID != x; then
+  TRUST="--with-trusted=0,2,$UID"
+else
+  TRUST="--with-trusted=0,2"
+fi
+
+TEST_MYSQL=
+# TEST_MYSQL=" --with-database=mysql --with-libs=-L/usr/local/mysql/lib "
+export TEST_MYSQL
+
+echo; echo "${S}__ STARTING TEST RUN CLIENT/SERVER W/GPG __${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
+
+# $GPG_PATH _must_ be an absolute path
 #
-# Copyright Rainer Wichmann (2006)
-#
-# License Information:
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-
-LOGFILE="$PW_DIR/.samhain_log"; export LOGFILE
-RCFILE="$PW_DIR/testrc_2";  export RCFILE
-RCFILE_C="$PW_DIR/testrc_1.dyn";  export RCFILE_C
-
-SERVER_BUILDOPTS="--quiet  $TRUST  --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"; export SERVER_BUILDOPTS
-
-CLIENT_BUILDOPTS="--quiet  $TRUST --enable-micro-stealth=137 --enable-debug --enable-network=client --enable-srp --prefix=$PW_DIR --with-tmp-dir=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER${RCFILE_C} --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-logserver=localhost  --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock"; export CLIENT_BUILDOPTS
-
-testrun2b_internal ()
-{
-    GPG="$1"
-
-    [ -z "$verbose" ] || { 
-	echo; 
-	echo Working directory: $PW_DIR; echo MAKE is $MAKE; echo GPG is $GPG;
-	echo; 
-    }
-
-    [ -z "$verbose" ] || { echo; echo "${S}Building client and server${E}"; echo; }
-
-    if test -r "Makefile"; then
-	$MAKE distclean
+if test x${GPG_PATH} = x; then
+    GPG_PATH=`which gpg | sed -e "s%\([a-z:]\) .*%\1%g"`
+fi
+
+if test x${GPG_PATH} = x; then
+    echo "ERROR: gpg (GnuPG) not found"
+    exit
+else
+    GPG_OK=`echo ${GPG_PATH} | sed -e "s%\(/.*\)%OK%g"`
+    if test x${GPG_OK} = xOK; then
+        echo "GPG_PATH is ${GPG_PATH}"
+    else
+        echo "ERROR: GPG_PATH (${GPG_PATH}) is _not_ an absolute path."
+        echo
+        echo "  Apparently the command 'which gpg' did not yield an absolute path."
+        echo "  You can fix the problem by setting the environment variable GPG_PATH"
+        echo "  to the absolute path to gpg (GnuPG) and start the test again."
+        exit
     fi
-
-    ${TOP_SRCDIR}/configure --with-gpg=${GPG} --with-checksum=no ${CLIENT_BUILDOPTS} >/dev/null 2>&1
-
-    if test x$? = x0; then
-	[ -z "$verbose" ] ||     log_msg_ok "configure..."; 
-	$MAKE  > /dev/null 2>>test_log
-	if test x$? = x0; then
-	    [ -z "$verbose" ] || log_msg_ok "make..."; 
-	else
-	    [ -z "$quiet" ] &&   log_msg_fail "make..."; 
-	    return 1
-	fi
-    else
-	[ -z "$quiet" ] &&       log_msg_fail "configure...";
-	return 1
-    fi
-    
-    SKIP=`awk '/^__ARCHIVE_FOLLOWS__/ { print NR + 1; exit 0; }' ${SCRIPTDIR}/test.sh`
-    
-    tail -n "+$SKIP" ${SCRIPTDIR}/test.sh >/dev/null 2>&1
-    if [ $? -eq 0 ]; then
-	tail -n "+$SKIP" ${SCRIPTDIR}/test.sh | gunzip -c - 2>/dev/null | tar xf - &&  \
-	    mv "./testrc.gpg.asc" "${RCFILE_C}"
-    else
-	tail "+$SKIP" ${SCRIPTDIR}/test.sh | gunzip -c - 2>/dev/null | tar xf - &&  \
-	    mv "./testrc.gpg.asc" "${RCFILE_C}"
-    fi
-    if test x$? = x0; then
-	[ -z "$verbose" ] || log_msg_ok    "extract gpg signed files...";
-    else
-	[ -z "$quiet" ]   && log_msg_fail  "extract gpg signed files...";
-	return 1
-    fi
-
-    # save binary and build server
-
-    cp samhain samhain.build || return 1
-    $MAKE clean >/dev/null || return 1
-    
-    ${TOP_SRCDIR}/configure ${SERVER_BUILDOPTS}
-
-    if test x$? = x0; then
-	[ -z "$verbose" ] ||     log_msg_ok "configure..."; 
-	$MAKE  > /dev/null 2>>test_log
-	if test x$? = x0; then
-	    [ -z "$verbose" ] || log_msg_ok "make..."; 
-	else
-	    [ -z "$quiet" ] &&   log_msg_fail "make..."; 
-	    return 1
-	fi
-	
-    else
-	[ -z "$quiet" ] &&       log_msg_fail "configure...";
-	return 1
-    fi
-    
-    
-    #####################################################################
-    #
-    #
-    rm -f ./.samhain_file
-    rm -f ./.samhain_log
-    rm -f ./.samhain_lock
-    rm -f ./rc.${SH_LOCALHOST}
-    rm -f ./file.${SH_LOCALHOST}
-    
-    cp ${SCRIPTDIR}/testrc_2.in testrc_2
-    
-    ./samhain.build -t init -p none
-    
-    if test x$? = x0; then
-	[ -z "$verbose" ] || log_msg_ok    "init...";
-    else
-	[ -z "$quiet" ]   && log_msg_fail  "init...";
-	return 1
-    fi
-    
-    # Create a password
-
-    SHPW=`./yule -G`
-    if test x"$SHPW" = x; then
-	[ -z "$quiet" ]   && log_msg_fail  "password not generated -- aborting"
-	return 1
-    fi
-    
-    # Set in client
-    
-    ./samhain_setpwd samhain.build new $SHPW >/dev/null
-    
-    if test x$? = x0; then
-	[ -z "$verbose" ] || log_msg_ok    "./samhain_setpwd samhain.build new $SHPW";
-    else
-	[ -z "$quiet" ]   && log_msg_fail  "./samhain_setpwd samhain.build new $SHPW";
-	return 1
-    fi
-    
-    mv samhain.build.new  samhain.new || return 1
-    
-    rm -f ./.samhain_log*
-    rm -f ./.samhain_lock
-    
-    SHCLT=`./yule -P $SHPW`
-    
-    if test x$? = x0; then
-	[ -z "$verbose" ] || log_msg_ok    "yule -P $SHPW";
-    else
-	[ -z "$quiet" ]   && log_msg_fail  "yule -P $SHPW";
-	return 1
-    fi
-    
-    SHCLT1=`echo "${SHCLT}"  | sed s%HOSTNAME%${SH_LOCALHOST}%`
-    AHOST=`find_hostname`
-    SHCLT2=`echo "${SHCLT}"  | sed s%HOSTNAME%${AHOST}%`
-	
-
-    echo $SHCLT1 >> testrc_2
-    echo $SHCLT2 >> testrc_2
-
-    
-    cp    "${RCFILE_C}"              ./rc.${SH_LOCALHOST}
-    mv    $PW_DIR/.samhain_file.asc  ./file.${SH_LOCALHOST}
-
-    ALTHOST=`find_hostname`
-    cp    "${RCFILE_C}"          "./rc.${ALTHOST}"
-    cp    ./file.${SH_LOCALHOST} "./file.${ALTHOST}" 2>/dev/null
-}
-
-MAXTEST=1; export MAXTEST
+fi
+
+echo
 
 testrun2b ()
 {
-    log_start "RUN FULL CLIENT/SERVER W/GPG";
-    #
-    if [ x"$1" = x ]; then
-	[ -z "$quiet" ] && log_msg_fail "Missing hostname"
+	#
+	# test standalone compilation
+	#
+	echo "${S}Building client and server${E}"; echo;
+	#
+	if test -r "Makefile"; then
+		$MAKE distclean
+	fi
+        #
+        GPG_HASH=`${GPG_PATH} --load-extension tiger --print-md TIGER192 ${GPG_PATH}`
+        #
+        echo GPG_HASH is ${GPG_HASH}
+        #
+	${TOP_SRCDIR}/configure --quiet  $TRUST --with-gpg=${GPG_PATH} --enable-xml-log --enable-network=client --enable-srp --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER$PW_DIR/testrc_2.signed --with-data-file=REQ_FROM_SERVER$PW_DIR/.samhain_file --with-logserver=localhost  --with-log-file=$PW_DIR/.samhain_log --with-pid-file=$PW_DIR/.samhain_lock 
+	#
+	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
+
+	# save binary and build server
+	#
+	cp samhain samhain.build
+	make clean
+
+        #
+	${TOP_SRCDIR}/configure --quiet  $TRUST --with-gpg=${GPG_PATH} --enable-xml-log ${TEST_MYSQL} --enable-debug --enable-network=server --enable-srp --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=REQ_FROM_SERVER$PW_DIR/testrc_2.signed --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 --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
+	rm -f ./rc.${SH_LOCALHOST}
+	rm -f ./file.${SH_LOCALHOST}
+
+	cp ${SCRIPTDIR}/testrc_2.in testrc_2.signed
+
+	# Create a password
+	SHPW=`./yule -G`
+	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
+	SHCLT=`./yule -P $SHPW | sed s%HOSTNAME%${SH_LOCALHOST}%`
+ 	echo $SHCLT >> testrc_2.signed
+
+        echo "--- You need to sign the config file testrc_2.signed now ---"
+        echo
+        ${GPG_PATH} -a --clearsign --not-dash-escaped $PW_DIR/testrc_2.signed
+        mv $PW_DIR/testrc_2.signed.asc $PW_DIR/testrc_2.signed
+
+	echo "./samhain.new -t init"
+	./samhain.new -t init
+
+	SHINI=$?
+
+	rm -f ./.samhain_log
+	rm -f ./.samhain_lock
+
+	cp    ./testrc_2.signed       ./rc.${SH_LOCALHOST}
+	mv    ./.samhain_file         ./file.${SH_LOCALHOST}
+
+	if test x$SHINI = x0; then
+                echo
+                echo "--- You need to sign the database file.${SH_LOCALHOST} now ---"
+                echo
+                ${GPG_PATH} -a --clearsign --not-dash-escaped $PW_DIR/file.${SH_LOCALHOST}
+                mv $PW_DIR/file.${SH_LOCALHOST}.asc $PW_DIR/file.${SH_LOCALHOST}
+
+		echo; echo "${S}Start Server${E}: ./yule  &"; echo;
+		./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
+		    kill $PROC_Y
+		    exit
+		fi
+
+		kill $PROC_Y
+		sleep 5
+	else
+		echo "${S}ERROR:${E} -- init -- failed, exit status $SHINI"; 
+		echo;
+		exit
+	fi
+	    
+}
+
+    if test x$1 = x; then
+	echo
+	echo "Please provide the local hostname as argument."
+	echo
+	exit 8
     fi
-    #
-    GPG=`find_path gpg`
-    if [ -z "$GPG" ]; then
-	log_skip 1 $MAXTEST 'gpg not found in $PATH'
-    else
-	eval "$GPG" --list-keys 0F571F6C >/dev/null 2>/dev/null
-	if [ $? -ne 0 ]; then
-	    log_skip 1 $MAXTEST 'public PGP key 0x0F571F6C not present'
-	else
-	    
-	    SH_LOCALHOST=$1; export SH_LOCALHOST
-    
-	    testrun2b_internal "$GPG"
-
-	    SAVE_VALGRIND="${VALGRIND}"; VALGRIND=''; export VALGRIND
-	    do_test_1_a
-	    VALGRIND="${SAVE_VALGRIND}"; export VALGRIND 
-	    if [ $? -eq 0 ]; then
-		[ -z "$quiet" ] && log_ok   1 ${MAXTEST} "Client download+logging w/gpg";
-	    else
-		[ -z "$quiet" ] && log_fail 1 ${MAXTEST} "Client download+logging w/gpg";
-	    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
-	fi
-    fi
-    log_end "RUN FULL CLIENT/SERVER W/GPG"
-}
-
+
+    SH_LOCALHOST=$1; export SH_LOCALHOST
+
+    testrun2b
+
+
+echo; echo "${S}__ END TEST RUN CLIENT/SERVER W/GPG __${E}"; echo;
+
+exit
+
