diff options
author | elly <elly@leptoquark.net> | 2013-07-08 10:21:15 -0400 |
---|---|---|
committer | elly <elly@leptoquark.net> | 2013-07-08 10:21:15 -0400 |
commit | 234454e5faadda2094e7e454563bcd538984b403 (patch) | |
tree | c16b9749c101b8a9c157f31fe5decae6df6b2210 /run-tests | |
parent | ce042c6f3e561ddef111119692c0307380ac886b (diff) | |
download | tlsdate-234454e5faadda2094e7e454563bcd538984b403.tar.gz |
Add integration testing.
These new integration tests mostly focus on tlsdated's subprocess code.
Signed-off-by: Elly Fong-Jones <elly@leptoquark.net>
Diffstat (limited to 'run-tests')
-rwxr-xr-x | run-tests | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/run-tests b/run-tests new file mode 100755 index 0000000..693fa59 --- /dev/null +++ b/run-tests @@ -0,0 +1,40 @@ +#!/bin/sh + +run_test() { + [ -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="-w -p -r -l -s -f $1/test.conf" + else + flags="-w -p -r -l -s -f test.conf" + fi + # flags are deliberately unquoted here so that they'll be interpolated + timeout 5 src/tlsdated $flags -- "$1"/subproc.sh <"$1"/input >"$1"/run-output \ + 2>"$1"/run-err + [ -x "$1"/teardown ] && "$1"/teardown +} + +test_passed() { + diff "$t"/output "$t"/run-output >/dev/null +} + +total=0 +passed=0 + +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 $? |