test framework has been updated to make a bug in the test script
(as opposed to bugs in Git that are discovered by running the
tests) stand out more prominently.

* sg/test-BUG:
  tests: send "bug in the test script" errors to the script's stderr
This commit is contained in:
Junio C Hamano 2018-12-01 21:41:44 +09:00
Родитель 152cb0cdc3 165293af3c
Коммит 6233704936
7 изменённых файлов: 26 добавлений и 23 удалений

Просмотреть файл

@ -82,7 +82,7 @@ test_perf_do_repo_symlink_config_ () {
test_perf_create_repo_from () {
test "$#" = 2 ||
error "bug in the test script: not 2 parameters to test-create-repo"
BUG "not 2 parameters to test-create-repo"
repo="$1"
source="$2"
source_git="$("$MODERN_GIT" -C "$source" rev-parse --git-dir)"
@ -184,7 +184,7 @@ test_wrapper_ () {
test_start_
test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq=
test "$#" = 2 ||
error "bug in the test script: not 2 or 3 parameters to test-expect-success"
BUG "not 2 or 3 parameters to test-expect-success"
export test_prereq
if ! test_skip "$@"
then

Просмотреть файл

@ -319,14 +319,14 @@ test_lazy_prereq GETCWD_IGNORES_PERMS '
base=GETCWD_TEST_BASE_DIR &&
mkdir -p $base/dir &&
chmod 100 $base ||
error "bug in test script: cannot prepare $base"
BUG "cannot prepare $base"
(cd $base/dir && /bin/pwd -P)
status=$?
chmod 700 $base &&
rm -rf $base ||
error "bug in test script: cannot clean $base"
BUG "cannot clean $base"
return $status
'

Просмотреть файл

@ -129,7 +129,7 @@ do
case "$magic" in
noellipses) ;;
*)
die "bug in t4103: unknown magic $magic" ;;
BUG "unknown magic $magic" ;;
esac ;;
*)
cmd="$magic $cmd" magic=

Просмотреть файл

@ -95,7 +95,7 @@ mk_child() {
check_push_result () {
test $# -ge 3 ||
error "bug in the test script: check_push_result requires at least 3 parameters"
BUG "check_push_result requires at least 3 parameters"
repo_name="$1"
shift

Просмотреть файл

@ -1249,7 +1249,7 @@ test_expect_success 'teardown after ref completion' '
test_path_completion ()
{
test $# = 2 || error "bug in the test script: not 2 parameters to test_path_completion"
test $# = 2 || BUG "not 2 parameters to test_path_completion"
local cur="$1" expected="$2"
echo "$expected" >expected &&

Просмотреть файл

@ -418,14 +418,14 @@ test_declared_prereq () {
test_verify_prereq () {
test -z "$test_prereq" ||
expr >/dev/null "$test_prereq" : '[A-Z0-9_,!]*$' ||
error "bug in the test script: '$test_prereq' does not look like a prereq"
BUG "'$test_prereq' does not look like a prereq"
}
test_expect_failure () {
test_start_
test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq=
test "$#" = 2 ||
error "bug in the test script: not 2 or 3 parameters to test-expect-failure"
BUG "not 2 or 3 parameters to test-expect-failure"
test_verify_prereq
export test_prereq
if ! test_skip "$@"
@ -445,7 +445,7 @@ test_expect_success () {
test_start_
test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq=
test "$#" = 2 ||
error "bug in the test script: not 2 or 3 parameters to test-expect-success"
BUG "not 2 or 3 parameters to test-expect-success"
test_verify_prereq
export test_prereq
if ! test_skip "$@"
@ -472,7 +472,7 @@ test_expect_success () {
test_external () {
test "$#" = 4 && { test_prereq=$1; shift; } || test_prereq=
test "$#" = 3 ||
error >&5 "bug in the test script: not 3 or 4 parameters to test_external"
BUG "not 3 or 4 parameters to test_external"
descr="$1"
shift
test_verify_prereq
@ -613,7 +613,7 @@ test_path_is_missing () {
test_line_count () {
if test $# != 3
then
error "bug in the test script: not 3 parameters to test_line_count"
BUG "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"
@ -793,13 +793,12 @@ test_i18ngrep () {
eval "last_arg=\${$#}"
test -f "$last_arg" ||
error "bug in the test script: test_i18ngrep requires a file" \
"to read as the last parameter"
BUG "test_i18ngrep requires a file to read as the last parameter"
if test $# -lt 2 ||
{ test "x!" = "x$1" && test $# -lt 3 ; }
then
error "bug in the test script: too few parameters to test_i18ngrep"
BUG "too few parameters to test_i18ngrep"
fi
if test_have_prereq !C_LOCALE_OUTPUT
@ -885,7 +884,7 @@ test_seq () {
case $# in
1) set 1 "$@" ;;
2) ;;
*) error "bug in the test script: not 1 or 2 parameters to test_seq" ;;
*) BUG "not 1 or 2 parameters to test_seq" ;;
esac
test_seq_counter__=$1
while test "$test_seq_counter__" -le "$2"
@ -923,7 +922,7 @@ test_when_finished () {
# doing so on Bash is better than nothing (the test will
# silently pass on other shells).
test "${BASH_SUBSHELL-0}" = 0 ||
error "bug in test script: test_when_finished does nothing in a subshell"
BUG "test_when_finished does nothing in a subshell"
test_cleanup="{ $*
} && (exit \"\$eval_ret\"); eval_ret=\$?; $test_cleanup"
}
@ -932,7 +931,7 @@ test_when_finished () {
# Usage: test_create_repo <directory>
test_create_repo () {
test "$#" = 1 ||
error "bug in the test script: not 1 parameter to test-create-repo"
BUG "not 1 parameter to test-create-repo"
repo="$1"
mkdir -p "$repo"
(
@ -1245,7 +1244,7 @@ test_oid_cache () {
if ! expr "$k" : '[a-z0-9][a-z0-9]*$' >/dev/null
then
error 'bug in the test script: bad hash algorithm'
BUG 'bad hash algorithm'
fi &&
eval "test_oid_${k}_$tag=\"\$v\""
done
@ -1260,7 +1259,7 @@ test_oid () {
# key-hash pair, so exit with an error.
if eval "test -z \"\${$var+set}\""
then
error "bug in the test script: undefined key '$1'" >&2
BUG "undefined key '$1'"
fi &&
eval "printf '%s' \"\${$var}\""
}

Просмотреть файл

@ -402,6 +402,10 @@ error () {
exit 1
}
BUG () {
error >&7 "bug in the test script: $*"
}
say () {
say_color info "$*"
}
@ -729,7 +733,7 @@ test_run_ () {
if $(printf '%s\n' "$1" | sed -f "$GIT_BUILD_DIR/t/chainlint.sed" | grep -q '?![A-Z][A-Z]*?!') ||
test "OK-117" != "$(test_eval_ "(exit 117) && $1${LF}${LF}echo OK-\$?" 3>&1)"
then
error "bug in the test script: broken &&-chain or run-away HERE-DOC: $1"
BUG "broken &&-chain or run-away HERE-DOC: $1"
fi
trace=$trace_tmp
fi
@ -1231,7 +1235,7 @@ test_lazy_prereq SANITY '
chmod -w SANETESTD.1 &&
chmod -r SANETESTD.1/x &&
chmod -rx SANETESTD.2 ||
error "bug in test sript: cannot prepare SANETESTD"
BUG "cannot prepare SANETESTD"
! test -r SANETESTD.1/x &&
! rm SANETESTD.1/x && ! test -f SANETESTD.2/x
@ -1239,7 +1243,7 @@ test_lazy_prereq SANITY '
chmod +rwx SANETESTD.1 SANETESTD.2 &&
rm -rf SANETESTD.1 SANETESTD.2 ||
error "bug in test sript: cannot clean SANETESTD"
BUG "cannot clean SANETESTD"
return $status
'