From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH] tests: lint for run-away here-doc
Date: Wed, 22 Mar 2017 19:12:08 -0700 [thread overview]
Message-ID: <xmqq7f3ghhc7.fsf_-_@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170322200805.23837-1-gitster@pobox.com> (Junio C. Hamano's message of "Wed, 22 Mar 2017 13:08:02 -0700")
We found a few run-away here documents that are started with an
end-of-here-doc marker that is incorrectly spelled, e.g.
git some command >actual &&
cat <<EOF >expect
...
EOF &&
test_cmp expect actual
which ends up slurping the entire remainder of the script as if it
were the data. Often the command that gets misused like this exits
without failure (e.g. "cat" in the above example), which makes the
command appear to work, without eve executing the remainder of the
test.
Use a trick similar to the one used to catch the &&-chain breakage
to detect this case.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
* This catches all the cases detected in the recent discussion, I think.
t/test-lib.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 86d77c16dd..97bdc91f54 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -627,6 +627,10 @@ test_run_ () {
test_eval_ "(exit 117) && $1"
if test "$?" != 117; then
error "bug in the test script: broken &&-chain: $1"
+ elif ! OK=$(test_eval_ "false && $1${LF}${LF}echo OK" 2>/dev/null) ||
+ test OK != "$OK"
+ then
+ error "bug in the test script: possibly unterminated HERE-DOC"
fi
trace=$trace_tmp
fi
next prev parent reply other threads:[~2017-03-23 2:12 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-22 17:35 EOF test fixes (t5615/t7004) Jan Palus
2017-03-22 18:28 ` EOF test fixes (t7030/t7406) Jan Palus
2017-03-22 18:47 ` EOF test fixes (t5615/t7004) Stefan Beller
2017-03-22 19:43 ` Junio C Hamano
2017-03-22 20:08 ` [PATCH 0/3] fix "here-doc" syntax errors Junio C Hamano
2017-03-22 20:08 ` [PATCH 1/3] t5615: fix a here-doc syntax error Junio C Hamano
2017-03-22 21:02 ` Jeff King
2017-03-22 20:08 ` [PATCH 2/3] t7406: fix here-doc syntax errors Junio C Hamano
2017-03-22 21:07 ` Jeff King
2017-03-22 21:32 ` Stefan Beller
2017-03-22 21:39 ` Jeff King
2017-03-22 21:49 ` [PATCH] t7406: correct test case for submodule-update initial population Stefan Beller
2017-03-22 21:59 ` Jeff King
2017-03-22 22:07 ` Stefan Beller
2017-03-22 22:09 ` Jeff King
2017-03-22 22:14 ` Jonathan Nieder
2017-03-22 22:12 ` Junio C Hamano
2017-03-22 22:24 ` Jeff King
2017-03-22 22:28 ` Stefan Beller
2017-03-22 21:34 ` [PATCH 2/3] t7406: fix here-doc syntax errors Junio C Hamano
2017-03-22 20:08 ` [PATCH 3/3] t7004, t7030: " Junio C Hamano
2017-03-22 21:10 ` Jeff King
2017-03-22 21:43 ` Santiago Torres
2017-03-22 22:04 ` Jeff King
2017-03-22 22:04 ` Junio C Hamano
2017-03-22 22:15 ` Santiago Torres
2017-03-22 22:22 ` Jeff King
2017-03-22 22:34 ` Santiago Torres
2017-03-22 22:41 ` Jeff King
2017-03-22 22:47 ` Junio C Hamano
2017-03-22 22:51 ` Santiago Torres
2017-03-23 22:00 ` Junio C Hamano
2017-03-23 22:28 ` Santiago Torres
2017-03-23 23:49 ` Jeff King
2017-03-24 16:45 ` Junio C Hamano
2017-03-24 16:49 ` Jeff King
2017-03-24 18:00 ` Jeff King
2017-03-24 18:04 ` Junio C Hamano
2017-03-24 18:16 ` Jeff King
2017-03-22 22:38 ` Junio C Hamano
2017-03-22 22:40 ` [PATCH 0/3] fix "here-doc" " Jan Palus
2017-03-23 2:12 ` Junio C Hamano [this message]
2017-03-23 5:43 ` [PATCH v2] tests: lint for run-away here-doc Junio C Hamano
2017-03-24 1:29 ` Jonathan Nieder
2017-03-24 2:45 ` Junio C Hamano
2017-03-24 3:59 ` 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=xmqq7f3ghhc7.fsf_-_@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
/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.