summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kmo@daterainc.com>2014-11-19 22:08:52 -0800
committerKent Overstreet <kmo@daterainc.com>2014-11-20 08:31:29 +0000
commit7d0876e89ca5e7896fe54de442329acd111c5e87 (patch)
treedc6164c46940e135afc1ed7996cca4be136e6ff8
parent07d36da4fdb19405a6ab3f6c7405df9f2bd644e4 (diff)
ktest: new unit tests
Change-Id: If582605e8c55b543ec93f17c515770708fe33cc7
-rw-r--r--tests.testy9
-rwxr-xr-xtests/crash.ktest10
-rwxr-xr-xtests/failure.ktest10
-rwxr-xr-xtests/ktest60
-rwxr-xr-xtests/ktest.ktest14
-rwxr-xr-xtests/success.ktest2
-rwxr-xr-xtests/timeout.ktest10
7 files changed, 54 insertions, 61 deletions
diff --git a/tests.testy b/tests.testy
index ed09d86..9510025 100644
--- a/tests.testy
+++ b/tests.testy
@@ -1,9 +1,4 @@
-#0 ktest tests/ktest
-#0 vm-start tests/ktest
-
-#0 . ../appliance-clustest/basic.actest
-#0 . ../appliance-clustest/basic-cluster.actest
+0 . tests/ktest
+#0 . tests/blkdev.ktest
#0 . ../appliance-clustest/tests/dcpd.actest
-
-0 . tests/blkdev.ktest
diff --git a/tests/crash.ktest b/tests/crash.ktest
new file mode 100755
index 0000000..74f0817
--- /dev/null
+++ b/tests/crash.ktest
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+require-lib test-libs.sh
+
+config-timeout 20
+
+main()
+{
+ echo c > /proc/sysrq-trigger
+}
diff --git a/tests/failure.ktest b/tests/failure.ktest
new file mode 100755
index 0000000..72716e5
--- /dev/null
+++ b/tests/failure.ktest
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+require-lib test-libs.sh
+
+config-timeout 30
+
+main()
+{
+ false
+}
diff --git a/tests/ktest b/tests/ktest
index f5d52eb..ee48300 100755
--- a/tests/ktest
+++ b/tests/ktest
@@ -1,41 +1,23 @@
#!/bin/bash
-set -o nounset
-set -o errexit
-set -o pipefail
-
-# Warning: this test has currently several timers and requires that
-# - the vm gets up and fully initialized in less than 30 seconds
-# - the kill process ends and is no longer killable 5 seconds after
-# sendinf the kill signal
-# In a highly loaded system this could be a problem, in which case
-# either the timers have to be increased, or the timers need to be
-# replaced with code that checks if everything is ready.
-
-KERNEL=/usr/share/DateraContainer/kernel
-KTESTDIR=/src/ktest
-KTEST=$KTESTDIR/ktest
-
-opt="-w workdir.$$ -K -b $KERNEL -k $KERNEL"
-
-(
- sleep 20
- echo 'killall sleep' | $KTEST ssh $opt
-) &
-pid="$!"
-
-$KTEST run $opt $KTESTDIR/tests/ktest.ktest
-ret="$?"
-
-sleep 5
-# give the the kill process some time to exit
-
-if kill $pid > /dev/null 2>&1; then
- ret=1
- # if the test passed the kill process should not exist anymore
-fi
-
-stty sane
-
-exit $ret
-
+TESTDIR=$(dirname "$(readlink -f "$0")")
+KTEST="$TESTDIR/../ktest"
+
+do_test()
+{
+ local t=$1
+ local expect=$2
+
+ $KTEST run "$TESTDIR/$t"
+ local ret=$?
+
+ if [[ $ret != $expect ]]; then
+ echo "$t failed: got $ret, wanted $expect"
+ exit 1
+ fi
+}
+
+do_test success.ktest 0
+do_test failure.ktest 1
+do_test crash.ktest 1
+do_test timeout.ktest 2
diff --git a/tests/ktest.ktest b/tests/ktest.ktest
deleted file mode 100755
index 1fe57ab..0000000
--- a/tests/ktest.ktest
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-require-lib test-libs.sh
-
-config-timeout 300
-
-main()
-{
- if sleep 300 ; then
- exit 1
- # this sleep must be killed via an ssh into the vm,
- # if not the test has failed
- fi
-}
diff --git a/tests/success.ktest b/tests/success.ktest
index 930cbe6..2f51772 100755
--- a/tests/success.ktest
+++ b/tests/success.ktest
@@ -2,7 +2,7 @@
require-lib test-libs.sh
-config-timeout 20
+config-timeout 30
main()
{
diff --git a/tests/timeout.ktest b/tests/timeout.ktest
new file mode 100755
index 0000000..6ad81a7
--- /dev/null
+++ b/tests/timeout.ktest
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+require-lib test-libs.sh
+
+config-timeout 10
+
+main()
+{
+ sleep 60
+}