Merge branch 'en/and-cascade-tests'
* en/and-cascade-tests: (25 commits) t4124 (apply --whitespace): use test_might_fail t3404: do not use 'describe' to implement test_cmp_rev t3404 (rebase -i): introduce helper to check position of HEAD t3404 (rebase -i): move comment to description t3404 (rebase -i): unroll test_commit loops t3301 (notes): use test_expect_code for clarity t1400 (update-ref): use test_must_fail t1502 (rev-parse --parseopt): test exit code from "-h" t6022 (renaming merge): chain test commands with && test-lib: introduce test_line_count to measure files tests: add missing &&, batch 2 tests: add missing && Introduce sane_unset and use it to ensure proper && chaining t7800 (difftool): add missing && t7601 (merge-pull-config): add missing && t7001 (mv): add missing && t6016 (rev-list-graph-simplify-history): add missing && t5602 (clone-remote-exec): add missing && t4026 (color): remove unneeded and unchained command t4019 (diff-wserror): add lots of missing && ... Conflicts: t/t7006-pager.sh
This commit is contained in:
@ -305,6 +305,17 @@ remove_cr () {
|
||||
tr '\015' Q | sed -e 's/Q$//'
|
||||
}
|
||||
|
||||
# In some bourne shell implementations, the "unset" builtin returns
|
||||
# nonzero status when a variable to be unset was not set in the first
|
||||
# place.
|
||||
#
|
||||
# Use sane_unset when that should not be considered an error.
|
||||
|
||||
sane_unset () {
|
||||
unset "$@"
|
||||
return 0
|
||||
}
|
||||
|
||||
test_tick () {
|
||||
if test -z "${test_tick+set}"
|
||||
then
|
||||
@ -521,24 +532,6 @@ test_expect_success () {
|
||||
echo >&3 ""
|
||||
}
|
||||
|
||||
test_expect_code () {
|
||||
test "$#" = 4 && { prereq=$1; shift; } || prereq=
|
||||
test "$#" = 3 ||
|
||||
error "bug in the test script: not 3 or 4 parameters to test-expect-code"
|
||||
if ! test_skip "$@"
|
||||
then
|
||||
say >&3 "expecting exit code $1: $3"
|
||||
test_run_ "$3"
|
||||
if [ "$?" = 0 -a "$eval_ret" = "$1" ]
|
||||
then
|
||||
test_ok_ "$2"
|
||||
else
|
||||
test_failure_ "$@"
|
||||
fi
|
||||
fi
|
||||
echo >&3 ""
|
||||
}
|
||||
|
||||
# test_external runs external test scripts that provide continuous
|
||||
# test output about their progress, and succeeds/fails on
|
||||
# zero/non-zero exit code. It outputs the test output on stdout even
|
||||
@ -654,6 +647,28 @@ test_path_is_missing () {
|
||||
fi
|
||||
}
|
||||
|
||||
# test_line_count checks that a file has the number of lines it
|
||||
# ought to. For example:
|
||||
#
|
||||
# test_expect_success 'produce exactly one line of output' '
|
||||
# do something >output &&
|
||||
# test_line_count = 1 output
|
||||
# '
|
||||
#
|
||||
# is like "test $(wc -l <output) = 1" except that it passes the
|
||||
# output through when the number of lines is wrong.
|
||||
|
||||
test_line_count () {
|
||||
if test $# != 3
|
||||
then
|
||||
error "bug in the test script: not 3 parameters to test_line_count"
|
||||
elif ! test $(wc -l <"$3") "$1" "$2"
|
||||
then
|
||||
echo "test_line_count: line count for $3 !$1 $2"
|
||||
cat "$3"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# This is not among top-level (test_expect_success | test_expect_failure)
|
||||
# but is a prefix that can be used in the test script, like:
|
||||
@ -707,6 +722,28 @@ test_might_fail () {
|
||||
return 0
|
||||
}
|
||||
|
||||
# Similar to test_must_fail and test_might_fail, but check that a
|
||||
# given command exited with a given exit code. Meant to be used as:
|
||||
#
|
||||
# test_expect_success 'Merge with d/f conflicts' '
|
||||
# test_expect_code 1 git merge "merge msg" B master
|
||||
# '
|
||||
|
||||
test_expect_code () {
|
||||
want_code=$1
|
||||
shift
|
||||
"$@"
|
||||
exit_code=$?
|
||||
if test $exit_code = $want_code
|
||||
then
|
||||
echo >&2 "test_expect_code: command exited with $exit_code: $*"
|
||||
return 0
|
||||
else
|
||||
echo >&2 "test_expect_code: command exited with $exit_code, we wanted $want_code $*"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# test_cmp is a helper function to compare actual and expected output.
|
||||
# You can use it like:
|
||||
#
|
||||
|
Reference in New Issue
Block a user