From: Junio C Hamano Date: Wed, 21 Feb 2018 20:45:05 +0000 (-0800) Subject: Merge branch 'sg/test-i18ngrep' X-Git-Tag: v2.17.0-rc0~83 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/66023bbd78fe93c4704b3df754f9f7dc619ebaad?ds=inline;hp=-c Merge branch 'sg/test-i18ngrep' Test fixes. * sg/test-i18ngrep: t: make 'test_i18ngrep' more informative on failure t: validate 'test_i18ngrep's parameters t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh' t5536: let 'test_i18ngrep' read the file without redirection t5510: consolidate 'grep' and 'test_i18ngrep' patterns t4001: don't run 'git status' upstream of a pipe t6022: don't run 'git merge' upstream of a pipe t5812: add 'test_i18ngrep's missing filename parameter t5541: add 'test_i18ngrep's missing filename parameter --- 66023bbd78fe93c4704b3df754f9f7dc619ebaad diff --combined t/test-lib-functions.sh index a679b02a1c,1de31fae7f..67b5994afb --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@@ -705,6 -705,60 +705,60 @@@ test_cmp_bin() cmp "$@" } + # Use this instead of test_cmp to compare files that contain expected and + # actual output from git commands that can be translated. When running + # under GETTEXT_POISON this pretends that the command produced expected + # results. + test_i18ncmp () { + test -n "$GETTEXT_POISON" || test_cmp "$@" + } + + # Use this instead of "grep expected-string actual" to see if the + # output from a git command that can be translated either contains an + # expected string, or does not contain an unwanted one. When running + # under GETTEXT_POISON this pretends that the command produced expected + # results. + 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" + + if test $# -lt 2 || + { test "x!" = "x$1" && test $# -lt 3 ; } + then + error "bug in the test script: too few parameters to test_i18ngrep" + fi + + if test -n "$GETTEXT_POISON" + then + # pretend success + return 0 + fi + + if test "x!" = "x$1" + then + shift + ! grep "$@" && return 0 + + echo >&2 "error: '! grep $@' did find a match in:" + else + grep "$@" && return 0 + + echo >&2 "error: 'grep $@' didn't find a match in:" + fi + + if test -s "$last_arg" + then + cat >&2 "$last_arg" + else + echo >&2 "" + fi + + return 1 + } + # 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. @@@ -1020,37 -1074,3 +1074,37 @@@ nongit () "$@" ) } + +# convert stdin to pktline representation; note that empty input becomes an +# empty packet, not a flush packet (for that you can just print 0000 yourself). +packetize() { + cat >packetize.tmp && + len=$(wc -c