From: Junio C Hamano Date: Tue, 21 Oct 2014 20:28:14 +0000 (-0700) Subject: Merge branch 'da/mergetool-tests' X-Git-Tag: v2.2.0-rc0~31 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/64bff25f78da5ae2e64f0598df20370c45aad7ef?ds=inline;hp=-c Merge branch 'da/mergetool-tests' The clean-up of this test script was long overdue and is a very welcome change. * da/mergetool-tests: test-lib-functions: adjust style to match CodingGuidelines t7610-mergetool: use test_config to isolate tests t7610-mergetool: add missing && and remove commented-out code t7610-mergetool: use tabs instead of a mix of tabs and spaces --- 64bff25f78da5ae2e64f0598df20370c45aad7ef diff --combined t/test-lib-functions.sh index b7957b87bb,6bb7e9767b..0d93e33de4 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@@ -413,7 -413,7 +413,7 @@@ test_external () # test_run_, but keep its stdout on our stdout even in # non-verbose mode. "$@" 2>&4 - if [ "$?" = 0 ] + if test "$?" = 0 then if test $test_external_has_tap -eq 0; then test_ok_ "$descr" @@@ -440,11 -440,12 +440,12 @@@ test_external_without_stderr () tmp=${TMPDIR:-/tmp} stderr="$tmp/git-external-stderr.$$.tmp" test_external "$@" 4> "$stderr" - [ -f "$stderr" ] || error "Internal error: $stderr disappeared." + test -f "$stderr" || error "Internal error: $stderr disappeared." descr="no stderr: $1" shift say >&3 "# expecting no stderr from previous command" - if [ ! -s "$stderr" ]; then + if test ! -s "$stderr" + then rm "$stderr" if test $test_external_has_tap -eq 0; then @@@ -454,8 -455,9 +455,9 @@@ test_success=$(($test_success + 1)) fi else - if [ "$verbose" = t ]; then - output=`echo; echo "# Stderr is:"; cat "$stderr"` + if test "$verbose" = t + then + output=$(echo; echo "# Stderr is:"; cat "$stderr") else output= fi @@@ -474,7 -476,7 +476,7 @@@ # The commands test the existence or non-existence of $1. $2 can be # given to provide a more precise diagnosis. test_path_is_file () { - if ! [ -f "$1" ] + if ! test -f "$1" then echo "File $1 doesn't exist. $*" false @@@ -482,30 -484,20 +484,31 @@@ } test_path_is_dir () { - if ! [ -d "$1" ] + if ! test -d "$1" then echo "Directory $1 doesn't exist. $*" false fi } +# Check if the directory exists and is empty as expected, barf otherwise. +test_dir_is_empty () { + test_path_is_dir "$1" && + if test -n "$(ls -a1 "$1" | egrep -v '^\.\.?$')" + then + echo "Directory '$1' is not empty, it contains:" + ls -la "$1" + return 1 + fi +} + test_path_is_missing () { - if [ -e "$1" ] + if test -e "$1" then echo "Path exists:" ls -ld "$1" - if [ $# -ge 1 ]; then + if test $# -ge 1 + then echo "$*" fi false @@@ -553,7 -545,7 +556,7 @@@ test_must_fail () if test $exit_code = 0; then echo >&2 "test_must_fail: command succeeded: $*" return 1 - elif test $exit_code -gt 129 -a $exit_code -le 192; then + elif test $exit_code -gt 129 && test $exit_code -le 192; then echo >&2 "test_must_fail: died by signal: $*" return 1 elif test $exit_code = 127; then @@@ -580,7 -572,7 +583,7 @@@ test_might_fail () { "$@" exit_code=$? - if test $exit_code -gt 129 -a $exit_code -le 192; then + if test $exit_code -gt 129 && test $exit_code -le 192; then echo >&2 "test_might_fail: died by signal: $*" return 1 elif test $exit_code = 127; then @@@ -634,15 -626,6 +637,15 @@@ test_cmp_bin() cmp "$@" } +# Call any command "$@" but be more verbose about its +# failure. This is handy for commands like "test" which do +# not output anything when they fail. +verbose () { + "$@" && return 0 + echo >&2 "command failed: $(git rev-parse --sq-quote "$@")" + return 1 +} + # Check if the file expected to be empty is indeed empty, and barfs # otherwise. @@@ -666,9 -649,12 +669,12 @@@ test_cmp_rev () # similar to GNU seq(1), but the latter might not be available # everywhere (and does not do letters). It may be used like: # - # for i in `test_seq 100`; do - # for j in `test_seq 10 20`; do - # for k in `test_seq a z`; do + # for i in $(test_seq 100) + # do + # for j in $(test_seq 10 20) + # do + # for k in $(test_seq a z) + # do # echo $i-$j-$k # done # done @@@ -743,11 -729,6 +749,11 @@@ test_ln_s_add () fi } +# This function writes out its parameters, one per line +test_write_lines () { + printf "%s\n" "$@" +} + perl () { command "$PERL_PATH" "$@" }