export EMPIREHOST=127.0.0.1 LOGNAME=tester if [ -x ./config.status ] && ./config.status --version | grep -q '^Wolfpack Empire' then : else echo "$0: Must be run in root of build tree" >&2; exit 1 fi test=${0##*/} test=${test%-test} create_sandbox() { rm -rf sandbox mkdir -p sandbox/etc/empire sandbox/share/empire/builtin sandbox/var/empire touch sandbox/etc/empire/schedule cat >sandbox/etc/empire/econfig </dev/null || true; fi' EXIT src/server/emp_server -e sandbox/etc/empire/econfig -R 1 -s timeout=$((`now`+5)) until pid=`cat $pidfile 2>/dev/null` && [ -n "$pid" ] do if [ `now` -gt $timeout ] then echo "Timed out waiting for server to create $pidfile" >&2 exit 1 fi done while src/client/empire red herring 2>&1 | grep -q "Connection refused" do if [ `now` -gt $timeout ] then echo "Timed out waiting for server to accept connections" >&2 exit 1 fi done } stop_server() { local timeout kill "$pid" timeout=$((`now`+5)) while kill -0 "$pid" 2>/dev/null do if [ `now` -gt $timeout ] then echo "Timed out waiting for server to terminate" >&2 exit 1 fi done } feed_input() { c=$1 r=$2 shift 2 sed '/^|/d' "$@" | src/client/empire "$c" "$r" >/dev/null } begin_test() { src/util/files -e sandbox/etc/empire/econfig -f >/dev/null case "$1" in *.xdump) src/util/empdump -e sandbox/etc/empire/econfig -i "$1" ;; *) cp -r sandbox/var/empire/tel sandbox/var/empire/empty.tel start_server src/client/empire POGO peter <"$1" >/dev/null stop_server mv sandbox/var/empire/tel sandbox/var/empire/init.tel mv sandbox/var/empire/empty.tel sandbox/var/empire/tel mv sandbox/var/empire/journal.log sandbox/var/empire/init.journal.log mv sandbox/var/empire/server.log sandbox/var/empire/init.server.log ;; esac start_server } end_test () { stop_server src/util/empdump -e sandbox/etc/empire/econfig -x >sandbox/$test.xdump } cmp_out() { local opt exp act nrm msg ret=0 for i do case "$i" in */journal.log) opt=-j ;; */server.log) opt=-s ;; *) opt= ;; esac exp="$srcdir/tests/$test/${i##*/}" act="sandbox/$i" nrm="sandbox/normalized-${i##*/}" perl "$srcdir"/tests/normalize.pl $opt "$act" >"$nrm" if msg=`diff -q "$exp" "$nrm"` then echo "$exp OK" else ret=$? echo "$exp FAIL" echo $msg fi done return $ret }