]> git.pond.sub.org Git - empserver/blob - tests/test-common.sh
Fix extension of market bidding time when high bidder changes
[empserver] / tests / test-common.sh
1 export EMPIREHOST=127.0.0.1 LOGNAME=tester
2
3 if [ -x ./config.status ] && ./config.status --version | grep -q '^Wolfpack Empire'
4 then :
5 else echo "$0: Must be run in root of build tree" >&2; exit 1
6 fi
7
8 test=${0##*/}
9 test=${test%-test}
10
11 create_sandbox()
12 {
13     rm -rf sandbox
14     mkdir -p sandbox/etc/empire sandbox/share/empire/builtin sandbox/var/empire
15     touch sandbox/etc/empire/schedule
16     cat >sandbox/etc/empire/econfig <<EOF
17 data "../../var/empire"
18 info "../../../../info.nr"
19 builtin "../../share/empire/builtin"
20 listen_addr "$EMPIREHOST"
21 keep_journal 1
22 EOF
23     cp "$srcdir"/src/lib/global/*.config sandbox/share/empire/builtin
24 }
25
26 start_server()
27 {
28     pid=
29     trap 'if [ "$pid" ]; then kill "$pid" 2>/dev/null || true; fi' EXIT
30     src/server/emp_server -e sandbox/etc/empire/econfig -R 1
31     while src/client/empire red herring 2>&1 | grep -q "Connection refused"
32     do :               # FIXME hangs here if server crashes on startup
33     done
34     pid=`cat sandbox/var/empire/server.pid`
35 }
36
37 stop_server()
38 {
39     kill "$pid"
40     while kill -0 "$pid" 2>/dev/null
41     do :                    # FIXME hangs here if server fails to exit
42     done
43 }
44
45 cmp_out()
46 {
47     local opt exp act nrm msg ret=0
48     for i
49     do
50         case "$i" in
51         */journal.log)  opt=-j ;;
52         */server.log)   opt=-s ;;
53         *)              opt= ;;
54         esac
55         exp="$srcdir/tests/$test/${i##*/}"
56         act="sandbox/$i"
57         nrm="sandbox/normalized-${i##*/}"
58         perl "$srcdir"/tests/normalize.pl $opt "$act" >"$nrm"
59         if msg=`diff -q "$exp" "$nrm"`
60         then
61             echo "$exp OK"
62         else
63             ret=$?
64             echo "$exp FAIL"
65             echo $msg
66         fi
67     done
68     return $ret
69 }