aboutsummaryrefslogtreecommitdiff
path: root/run-tests
diff options
context:
space:
mode:
authorelly <elly@leptoquark.net>2013-07-08 10:21:15 -0400
committerelly <elly@leptoquark.net>2013-07-08 10:21:15 -0400
commit234454e5faadda2094e7e454563bcd538984b403 (patch)
treec16b9749c101b8a9c157f31fe5decae6df6b2210 /run-tests
parentce042c6f3e561ddef111119692c0307380ac886b (diff)
downloadtlsdate-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-xrun-tests40
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 $?