diff options
author | Kent Overstreet <kmo@daterainc.com> | 2014-11-19 22:08:52 -0800 |
---|---|---|
committer | Kent Overstreet <kmo@daterainc.com> | 2014-11-20 08:31:29 +0000 |
commit | 7d0876e89ca5e7896fe54de442329acd111c5e87 (patch) | |
tree | dc6164c46940e135afc1ed7996cca4be136e6ff8 | |
parent | 07d36da4fdb19405a6ab3f6c7405df9f2bd644e4 (diff) |
ktest: new unit tests
Change-Id: If582605e8c55b543ec93f17c515770708fe33cc7
-rw-r--r-- | tests.testy | 9 | ||||
-rwxr-xr-x | tests/crash.ktest | 10 | ||||
-rwxr-xr-x | tests/failure.ktest | 10 | ||||
-rwxr-xr-x | tests/ktest | 60 | ||||
-rwxr-xr-x | tests/ktest.ktest | 14 | ||||
-rwxr-xr-x | tests/success.ktest | 2 | ||||
-rwxr-xr-x | tests/timeout.ktest | 10 |
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 +} |