From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Jeff King" <peff@peff.net>,
git@vger.kernel.org, "SZEDER Gábor" <szeder.dev@gmail.com>
Subject: [PATCH v2 0/9] 'test_i18ngrep'-related fixes and improvements
Date: Thu, 8 Feb 2018 16:56:47 +0100 [thread overview]
Message-ID: <20180208155656.9831-1-szeder.dev@gmail.com> (raw)
In-Reply-To: <20180126123708.21722-1-szeder.dev@gmail.com>
This is the second version of 'sg/test-i18ngrep'.
To recap, this patch series fixes a couple of bogus 'test_i18ngrep'
invocations (patches 1-4), tries to prevent similar bugs in the future
(patch 8), teaches 'test_i18ngrep' to be more informative on failure
(patch 9), and a bit of cleanups in between (patches 5-7).
Changes since the previous version [1]:
- Use Junio's "last parameter must be file" suggestion instead of
trying to read stdin in patch 8.
- Squashed together the patches validating 'test_i18ngrep's
parameters (patches 8 and 9), in the hope that this way I can
better explain that the two checks are not redundant but
complement each other.
- Followed Simon's suggestion and dropped the now unnecessary curly
brackets in patch 2.
- Dropped a subshell in the last patch. I initially used it to
prevent the variable $f from leaking into the tests, since we
can't use the 'local' keyword (yet), but other test helper
function don't seem to care.
- Fixed the placements of single quotes and '!' in error messages
and redirected one more error message to stderr in the last patch.
- Fixed a couple of typos in commit messages (the one Eric pointed
out, but later noticed maybe 2-3 more).
[1] - https://public-inbox.org/git/20180126123708.21722-1-szeder.dev@gmail.com/T/
SZEDER Gábor (9):
t5541: add 'test_i18ngrep's missing filename parameter
t5812: add 'test_i18ngrep's missing filename parameter
t6022: don't run 'git merge' upstream of a pipe
t4001: don't run 'git status' upstream of a pipe
t5510: consolidate 'grep' and 'test_i18ngrep' patterns
t5536: let 'test_i18ngrep' read the file without redirection
t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
t: validate 'test_i18ngrep's parameters
t: make 'test_i18ngrep' more informative on failure
t/t4001-diff-rename.sh | 11 ++++++---
t/t5510-fetch.sh | 9 +++-----
t/t5536-fetch-conflicts.sh | 2 +-
t/t5541-http-push-smart.sh | 2 +-
t/t5812-proto-disable-http.sh | 5 +---
t/t6022-merge-rename.sh | 6 +++--
t/test-lib-functions.sh | 54 +++++++++++++++++++++++++++++++++++++++++++
t/test-lib.sh | 26 ---------------------
8 files changed, 72 insertions(+), 43 deletions(-)
--
2.16.1.158.ge6451079d
diff --git a/t/t5812-proto-disable-http.sh b/t/t5812-proto-disable-http.sh
index 226a4920cd..872788ac8c 100755
--- a/t/t5812-proto-disable-http.sh
+++ b/t/t5812-proto-disable-http.sh
@@ -20,9 +20,7 @@ test_expect_success 'curl redirects respect whitelist' '
test_must_fail env GIT_ALLOW_PROTOCOL=http:https \
GIT_SMART_HTTP=0 \
git clone "$HTTPD_URL/ftp-redir/repo.git" 2>stderr &&
- {
- test_i18ngrep -E "(ftp.*disabled|your curl version is too old)" stderr
- }
+ test_i18ngrep -E "(ftp.*disabled|your curl version is too old)" stderr
'
test_expect_success 'curl limits redirects' '
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 1f1d89d7ad..d936ecc0a5 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -719,9 +719,11 @@ test_i18ncmp () {
# under GETTEXT_POISON this pretends that the command produced expected
# results.
test_i18ngrep () {
- ( read line ) &&
- error "bug in the test script: data on test_i18ngrep's stdin;" \
- "perhaps a git command's output is piped into it?"
+ 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 ; }
@@ -740,21 +742,20 @@ test_i18ngrep () {
shift
! grep "$@" && return 0
- echo >&2 "error: grep '! $@' did find a match in:"
+ echo >&2 "error: '! grep $@' did find a match in:"
else
grep "$@" && return 0
- echo >&2 "error: grep '$@' didn't find a match in:"
+ echo >&2 "error: 'grep $@' didn't find a match in:"
fi
- (
- eval "f=\"\${$#}\""
- if test -s "$f"
- then
- cat >&2 "$f"
- else
- echo "<File '$f' is empty>"
- fi
- )
+
+ if test -s "$last_arg"
+ then
+ cat >&2 "$last_arg"
+ else
+ echo >&2 "<File '$last_arg' is empty>"
+ fi
+
return 1
}
next prev parent reply other threads:[~2018-02-08 15:57 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-26 12:36 [PATCH 00/10] 'test_i18ngrep'-related fixes and improvements SZEDER Gábor
2018-01-26 12:36 ` [PATCH 01/10] t5541: add 'test_i18ngrep's missing filename parameter SZEDER Gábor
2018-01-26 18:23 ` Jeff King
2018-01-26 18:23 ` Jeff King
2018-01-26 12:37 ` [PATCH 02/10] t5812: " SZEDER Gábor
2018-01-26 18:27 ` Jeff King
2018-02-07 13:53 ` SZEDER Gábor
2018-02-07 14:38 ` Jeff King
2018-01-30 9:50 ` Simon Ruderich
2018-01-26 12:37 ` [PATCH 03/10] t6022: don't run 'git merge' upstream of a pipe SZEDER Gábor
2018-01-26 12:37 ` [PATCH 04/10] t4001: don't run 'git status' " SZEDER Gábor
2018-01-26 12:37 ` [PATCH 05/10] t5510: consolidate 'grep' and 'test_i18ngrep' patterns SZEDER Gábor
2018-01-26 18:16 ` Junio C Hamano
2018-01-26 19:20 ` SZEDER Gábor
2018-01-26 19:23 ` Junio C Hamano
2018-01-26 12:37 ` [PATCH 06/10] t5536: let 'test_i18ngrep' read the file without redirection SZEDER Gábor
2018-01-26 12:37 ` [PATCH 07/10] t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh' SZEDER Gábor
2018-01-26 18:19 ` Junio C Hamano
2018-01-26 18:32 ` Jeff King
2018-01-26 19:08 ` SZEDER Gábor
2018-01-26 12:37 ` [PATCH 08/10] t: forbid piping into 'test_i18ngrep' SZEDER Gábor
2018-01-26 18:24 ` Junio C Hamano
2018-01-26 18:39 ` Junio C Hamano
2018-01-26 18:43 ` Jeff King
2018-01-26 18:51 ` SZEDER Gábor
2018-01-26 19:19 ` Junio C Hamano
2018-01-26 18:41 ` Jeff King
2018-01-26 12:37 ` [PATCH 09/10] t: make sure that 'test_i18ngrep' got enough parameters SZEDER Gábor
2018-01-26 18:47 ` Jeff King
2018-01-26 22:07 ` Eric Sunshine
2018-01-26 12:37 ` [PATCH 10/10] t: make 'test_i18ngrep' more informative on failure SZEDER Gábor
2018-01-26 18:50 ` Jeff King
2018-01-26 19:23 ` SZEDER Gábor
2018-01-26 19:25 ` Jeff King
2018-01-26 20:26 ` SZEDER Gábor
2018-01-26 20:32 ` Jeff King
2018-01-26 18:51 ` [PATCH 00/10] 'test_i18ngrep'-related fixes and improvements Jeff King
2018-02-08 15:56 ` SZEDER Gábor [this message]
2018-02-08 15:56 ` [PATCH v2 1/9] t5541: add 'test_i18ngrep's missing filename parameter SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 2/9] t5812: " SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 3/9] t6022: don't run 'git merge' upstream of a pipe SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 4/9] t4001: don't run 'git status' " SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 5/9] t5510: consolidate 'grep' and 'test_i18ngrep' patterns SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 6/9] t5536: let 'test_i18ngrep' read the file without redirection SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 7/9] t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh' SZEDER Gábor
2018-02-08 15:56 ` [PATCH v2 8/9] t: validate 'test_i18ngrep's parameters SZEDER Gábor
2018-02-08 16:34 ` Jeff King
2018-02-08 15:56 ` [PATCH v2 9/9] t: make 'test_i18ngrep' more informative on failure SZEDER Gábor
2018-02-08 16:36 ` [PATCH v2 0/9] 'test_i18ngrep'-related fixes and improvements Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180208155656.9831-1-szeder.dev@gmail.com \
--to=szeder.dev@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.