48 lines
1 KiB
Bash
Executable file
48 lines
1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
run_test() {
|
|
# Clear the last results
|
|
rm -f "$1"/result
|
|
[ -x "$1"/setup ] && "$1"/setup
|
|
if [ -r "$1"/tlsdated-flags ]; then
|
|
flags=$(cat "$1"/tlsdated-flags | sed "s/@TESTDIR@/$1/g")
|
|
elif [ -r "$1"/test.conf ]; then
|
|
flags="-U -w -p -r -l -s -b -f $1/test.conf -v"
|
|
else
|
|
flags="-U -w -p -r -l -s -b -f test.conf -v"
|
|
fi
|
|
# flags are deliberately unquoted here so that they'll be interpolated
|
|
(test -x "$1"/input.sh && "$1"/input.sh) |
|
|
timeout 8 src/tlsdated $flags -- "$1"/subproc.sh \
|
|
>"$1"/run-output 2>"$1"/run-err
|
|
[ -x "$1"/teardown ] && "$1"/teardown
|
|
}
|
|
|
|
test_passed() {
|
|
f="$t"/result
|
|
test -f "$f" && grep -q ok "$f"
|
|
}
|
|
|
|
total=0
|
|
passed=0
|
|
|
|
if ! test -x src/test/emit; then
|
|
echo "Make sure src/test/emit has been built (make check)!"
|
|
exit 1
|
|
fi
|
|
for t in tests/*; do
|
|
[ ! -d "$t" ] && continue
|
|
name="$(basename "$t")"
|
|
echo -n "$name: "
|
|
run_test "$t"
|
|
if test_passed "$t"; then
|
|
echo "ok"
|
|
passed=$((passed + 1))
|
|
else
|
|
echo "failed"
|
|
fi
|
|
total=$((total + 1))
|
|
done
|
|
echo "Passed: $passed/$total"
|
|
[ $passed != $total ]
|
|
exit $?
|