X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=t%2Ftest-lib.sh;h=f1bb8cf65b66ff3890659f2b6009bae08d3cbd77;hp=e444e5780d2f152eb9755916375996c9340016cd;hb=d0d27cfa56d05eaa0e5567c75adfe606eab2957e;hpb=c7250fb279af132333266af36e19c156dd84eca1 diff --git a/t/test-lib.sh b/t/test-lib.sh index e444e578..f1bb8cf6 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -61,13 +61,36 @@ say() say_color info "$*" } +retval_ok() +{ + local rv="$1" expectation="$2" + + if [[ "$expectation" == "success" ]]; then + (($rv == 0)) && return 0 || return 1 + fi + if (($rv > 129 && $rv <= 192)); then + echo >&2 "died by signal" + return 1 + fi + if (($rv == 127)); then + echo >&2 "command not found" + return 1 + fi + if (($rv == 0)); then + echo >&2 "command was supposed to fail but succeeded" + return 1 + fi + return 0 +} + _test_run() { - local f + local f expectation="$3" ret let test_count++ eval >&3 2>&4 "$2" - if (($? == 0)); then + ret=$? + if retval_ok "$ret" "$expectation"; then let test_success++ say_color ok "ok $test_count - $1" return @@ -139,8 +162,16 @@ test_duration() test_expect_success() { (($# != 2)) && error "bug: not 2 parameters to test_expect_success()" - say >&3 "expecting success: $2" - _test_run "$1" "$2" + echo >&3 "expecting success: $2" + _test_run "$1" "$2" "success" + echo >&3 "" +} + +test_expect_failure() +{ + (($# != 2)) && error "bug: not 2 parameters to test_expect_failure()" + echo >&3 "expecting failure: $2" + _test_run "$1" "$2" "failure" echo >&3 "" }