X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/009a6a15262f045f09364569a0269ec0720e47a1..ff3db0e4da2b61c858766adf5237c2877ffd411b:/t/test-lib.sh?ds=sidebyside diff --git a/t/test-lib.sh b/t/test-lib.sh index 87c143a..ad8da68 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -285,6 +285,30 @@ test_expect_code () { echo >&3 "" } +# When running an StGit command that should exit with an error, use +# these instead of testing for any non-zero exit code with !. +exit_code () { + expected=$1 + shift + "$@" + test $? -eq $expected +} +general_error () { exit_code 1 "$@" ; } +command_error () { exit_code 2 "$@" ; } +conflict () { exit_code 3 "$@" ; } + +# Old-infrastructure commands don't exit with the proper value on +# conflicts. But we don't want half the tests to fail because of that, +# so use this instead of "conflict" for them. +conflict_old () { command_error "$@" ; } + +# Same thing, but for other commands that StGit where we just want to +# make sure that they fail instead of crashing. +must_fail () { + "$@" + test $? -gt 0 -a $? -le 129 +} + # test_cmp is a helper function to compare actual and expected output. # You can use it like: # @@ -307,13 +331,13 @@ test_cmp() { test_create_repo () { test "$#" = 1 || error "bug in the test script: not 1 parameter to test-create-repo" - owd=`pwd` + owd=$(pwd) repo="$1" mkdir "$repo" cd "$repo" || error "Cannot setup test environment" git init >/dev/null 2>&1 || error "cannot run git init" echo "empty start" | \ - git commit-tree `git write-tree` >.git/refs/heads/master 2>&4 || \ + git commit-tree $(git write-tree) >.git/refs/heads/master 2>&4 || \ error "cannot run git commit" mv .git/hooks .git/hooks-disabled cd "$owd"