[tor-commits] [tlsdate/master] Add integration testing.
ioerror at torproject.org
ioerror at torproject.org
Thu Oct 31 10:25:57 UTC 2013
commit 234454e5faadda2094e7e454563bcd538984b403
Author: elly <elly at leptoquark.net>
Date: Mon Jul 8 10:21:15 2013 -0400
Add integration testing.
These new integration tests mostly focus on tlsdated's subprocess code.
Signed-off-by: Elly Fong-Jones <elly at leptoquark.net>
---
run-tests | 40 ++++++++++++++++++++++++++++++++++++++++
test.conf | 2 ++
tests/README | 1 +
tests/common.sh | 32 ++++++++++++++++++++++++++++++++
tests/run-idle/output | 1 +
tests/run-idle/runs | 1 +
tests/run-idle/setup | 4 ++++
tests/run-idle/subproc.sh | 6 ++++++
tests/run-idle/teardown | 4 ++++
tests/run-idle/test.conf | 2 ++
tests/run-once/output | 1 +
tests/run-once/run-error | 1 +
tests/run-once/subproc.sh | 5 +++++
tests/run-routeup/input | 1 +
tests/run-routeup/output | 1 +
tests/run-routeup/runs | 1 +
tests/run-routeup/setup | 4 ++++
tests/run-routeup/subproc.sh | 6 ++++++
tests/run-routeup/teardown | 4 ++++
tests/subproc-retry/input | 1 +
tests/subproc-retry/output | 3 +++
tests/subproc-retry/runs | 1 +
tests/subproc-retry/setup | 4 ++++
tests/subproc-retry/subproc.sh | 10 ++++++++++
tests/subproc-retry/teardown | 4 ++++
tests/wait-idle/subproc.sh | 7 +++++++
26 files changed, 147 insertions(+)
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 $?
diff --git a/test.conf b/test.conf
new file mode 100644
index 0000000..96827ef
--- /dev/null
+++ b/test.conf
@@ -0,0 +1,2 @@
+min-steady-state-interval 0
+wait-between-tries 1
diff --git a/tests/README b/tests/README
new file mode 100644
index 0000000..e0c0e00
--- /dev/null
+++ b/tests/README
@@ -0,0 +1 @@
+Integration tests for tlsdate/tlsdated.
diff --git a/tests/common.sh b/tests/common.sh
new file mode 100644
index 0000000..96ba238
--- /dev/null
+++ b/tests/common.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+kill_tlsdated() {
+ kill -9 $PPID
+}
+
+passed() {
+ kill_tlsdated
+ echo "ok"
+}
+
+failed() {
+ kill_tlsdated
+ echo "failed"
+}
+
+mydir() {
+ echo "$(dirname "$0")"
+}
+
+counter() {
+ cat "$(mydir)"/"$1"
+}
+
+inc_counter() {
+ c=$(counter "$1")
+ echo $((c + 1)) >"$(mydir)"/"$1"
+}
+
+reset_counter() {
+ echo 0 > "$(mydir)"/"$1"
+}
diff --git a/tests/run-idle/input b/tests/run-idle/input
new file mode 100644
index 0000000..e69de29
diff --git a/tests/run-idle/output b/tests/run-idle/output
new file mode 100644
index 0000000..9766475
--- /dev/null
+++ b/tests/run-idle/output
@@ -0,0 +1 @@
+ok
diff --git a/tests/run-idle/runs b/tests/run-idle/runs
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/run-idle/runs
@@ -0,0 +1 @@
+2
diff --git a/tests/run-idle/setup b/tests/run-idle/setup
new file mode 100755
index 0000000..c4afd68
--- /dev/null
+++ b/tests/run-idle/setup
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")"/../common.sh
+
+reset_counter "runs"
diff --git a/tests/run-idle/subproc.sh b/tests/run-idle/subproc.sh
new file mode 100755
index 0000000..649a18e
--- /dev/null
+++ b/tests/run-idle/subproc.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+. "$(dirname $0)"/../common.sh
+
+inc_counter "runs"
+c=$(counter "runs")
+[ $c -eq 2 ] && passed
diff --git a/tests/run-idle/teardown b/tests/run-idle/teardown
new file mode 100644
index 0000000..c4afd68
--- /dev/null
+++ b/tests/run-idle/teardown
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")"/../common.sh
+
+reset_counter "runs"
diff --git a/tests/run-idle/test.conf b/tests/run-idle/test.conf
new file mode 100644
index 0000000..713e8f7
--- /dev/null
+++ b/tests/run-idle/test.conf
@@ -0,0 +1,2 @@
+min-steady-state-interval 0
+steady-state-interval 2
diff --git a/tests/run-once/input b/tests/run-once/input
new file mode 100644
index 0000000..e69de29
diff --git a/tests/run-once/output b/tests/run-once/output
new file mode 100644
index 0000000..9766475
--- /dev/null
+++ b/tests/run-once/output
@@ -0,0 +1 @@
+ok
diff --git a/tests/run-once/run-error b/tests/run-once/run-error
new file mode 100644
index 0000000..f84e1cf
--- /dev/null
+++ b/tests/run-once/run-error
@@ -0,0 +1 @@
+Killed
diff --git a/tests/run-once/subproc.sh b/tests/run-once/subproc.sh
new file mode 100755
index 0000000..7ccb759
--- /dev/null
+++ b/tests/run-once/subproc.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+. "$(dirname $0)"/../common.sh
+
+echo "ok"
+kill_tlsdated
diff --git a/tests/run-routeup/input b/tests/run-routeup/input
new file mode 100644
index 0000000..4ae8ef0
--- /dev/null
+++ b/tests/run-routeup/input
@@ -0,0 +1 @@
+u
diff --git a/tests/run-routeup/output b/tests/run-routeup/output
new file mode 100644
index 0000000..9766475
--- /dev/null
+++ b/tests/run-routeup/output
@@ -0,0 +1 @@
+ok
diff --git a/tests/run-routeup/runs b/tests/run-routeup/runs
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/run-routeup/runs
@@ -0,0 +1 @@
+2
diff --git a/tests/run-routeup/setup b/tests/run-routeup/setup
new file mode 100755
index 0000000..c4afd68
--- /dev/null
+++ b/tests/run-routeup/setup
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")"/../common.sh
+
+reset_counter "runs"
diff --git a/tests/run-routeup/subproc.sh b/tests/run-routeup/subproc.sh
new file mode 100755
index 0000000..649a18e
--- /dev/null
+++ b/tests/run-routeup/subproc.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+. "$(dirname $0)"/../common.sh
+
+inc_counter "runs"
+c=$(counter "runs")
+[ $c -eq 2 ] && passed
diff --git a/tests/run-routeup/teardown b/tests/run-routeup/teardown
new file mode 100644
index 0000000..c4afd68
--- /dev/null
+++ b/tests/run-routeup/teardown
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")"/../common.sh
+
+reset_counter "runs"
diff --git a/tests/subproc-retry/input b/tests/subproc-retry/input
new file mode 100644
index 0000000..7898192
--- /dev/null
+++ b/tests/subproc-retry/input
@@ -0,0 +1 @@
+a
diff --git a/tests/subproc-retry/output b/tests/subproc-retry/output
new file mode 100644
index 0000000..0dae225
--- /dev/null
+++ b/tests/subproc-retry/output
@@ -0,0 +1,3 @@
+dying
+dying
+ok
diff --git a/tests/subproc-retry/runs b/tests/subproc-retry/runs
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/subproc-retry/runs
@@ -0,0 +1 @@
+3
diff --git a/tests/subproc-retry/setup b/tests/subproc-retry/setup
new file mode 100755
index 0000000..c4afd68
--- /dev/null
+++ b/tests/subproc-retry/setup
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")"/../common.sh
+
+reset_counter "runs"
diff --git a/tests/subproc-retry/subproc.sh b/tests/subproc-retry/subproc.sh
new file mode 100755
index 0000000..c725aa1
--- /dev/null
+++ b/tests/subproc-retry/subproc.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+. "$(dirname $0)"/../common.sh
+
+inc_counter "runs"
+if [ $(counter "runs") -lt 3 ]; then
+ echo "dying"
+ echo "$$" >> /tmp/pidz
+ exit 1
+fi
+passed
diff --git a/tests/subproc-retry/teardown b/tests/subproc-retry/teardown
new file mode 100644
index 0000000..c4afd68
--- /dev/null
+++ b/tests/subproc-retry/teardown
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")"/../common.sh
+
+reset_counter "runs"
diff --git a/tests/wait-idle/input b/tests/wait-idle/input
new file mode 100644
index 0000000..e69de29
diff --git a/tests/wait-idle/output b/tests/wait-idle/output
new file mode 100644
index 0000000..e69de29
diff --git a/tests/wait-idle/subproc.sh b/tests/wait-idle/subproc.sh
new file mode 100644
index 0000000..21f5871
--- /dev/null
+++ b/tests/wait-idle/subproc.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+. "$(dirname $0)"/../common.sh
+
+inc_counter "runs"
+c=$(counter "runs")
+[ $c -eq 2 ] && failed
+
More information about the tor-commits
mailing list