blob: 1e43b05db75264734159b5e01e8e00146bb1e879 [file] [log] [blame]
elly234454e2013-07-08 10:21:15 -04001#!/bin/sh
2
3run_test() {
Will Drewry47313d12014-09-18 16:16:56 -05004 # Clear the last results
5 rm -f "$1"/result
elly234454e2013-07-08 10:21:15 -04006 [ -x "$1"/setup ] && "$1"/setup
7 if [ -r "$1"/tlsdated-flags ]; then
8 flags=$(cat "$1"/tlsdated-flags | sed "s/@TESTDIR@/$1/g")
9 elif [ -r "$1"/test.conf ]; then
Will Drewry47313d12014-09-18 16:16:56 -050010 flags="-U -w -p -r -l -s -b -f $1/test.conf -v"
elly234454e2013-07-08 10:21:15 -040011 else
Will Drewry47313d12014-09-18 16:16:56 -050012 flags="-U -w -p -r -l -s -b -f test.conf -v"
elly234454e2013-07-08 10:21:15 -040013 fi
14 # flags are deliberately unquoted here so that they'll be interpolated
Will Drewry47313d12014-09-18 16:16:56 -050015 (test -x "$1"/input.sh && "$1"/input.sh) |
16 timeout 8 src/tlsdated $flags -- "$1"/subproc.sh \
17 >"$1"/run-output 2>"$1"/run-err
elly234454e2013-07-08 10:21:15 -040018 [ -x "$1"/teardown ] && "$1"/teardown
19}
20
21test_passed() {
Will Drewry47313d12014-09-18 16:16:56 -050022 f="$t"/result
23 test -f "$f" && grep -q ok "$f"
elly234454e2013-07-08 10:21:15 -040024}
25
26total=0
27passed=0
28
Will Drewry47313d12014-09-18 16:16:56 -050029if ! test -x src/test/emit; then
30 echo "Make sure src/test/emit has been built (make check)!"
31 exit 1
32fi
elly234454e2013-07-08 10:21:15 -040033for t in tests/*; do
34 [ ! -d "$t" ] && continue
35 name="$(basename "$t")"
36 echo -n "$name: "
37 run_test "$t"
38 if test_passed "$t"; then
39 echo "ok"
40 passed=$((passed + 1))
41 else
42 echo "failed"
43 fi
44 total=$((total + 1))
45done
46echo "Passed: $passed/$total"
47[ $passed != $total ]
48exit $?