1#!/bin/sh 2 3run_test() { 4 # Clear the last results 5 rm -f "$1"/result 6 [ -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 10 flags="-U -w -p -r -l -s -b -f $1/test.conf -v" 11 else 12 flags="-U -w -p -r -l -s -b -f test.conf -v" 13 fi 14 # flags are deliberately unquoted here so that they'll be interpolated 15 (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 18 [ -x "$1"/teardown ] && "$1"/teardown 19} 20 21test_passed() { 22 f="$t"/result 23 test -f "$f" && grep -q ok "$f" 24} 25 26total=0 27passed=0 28 29if ! test -x src/test/emit; then 30 echo "Make sure src/test/emit has been built (make check)!" 31 exit 1 32fi 33for 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 $? 49