From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Michael Haggerty <mhagger@alum.mit.edu>
Subject: Re: [PATCH v2 3/3] test-lib.sh: support -x option for shell-tracing
Date: Mon, 13 Oct 2014 18:43:43 -0400 [thread overview]
Message-ID: <20141013224342.GA22290@peff.net> (raw)
In-Reply-To: <20141013223303.GA17045@peff.net>
On Mon, Oct 13, 2014 at 06:33:03PM -0400, Jeff King wrote:
> > But still it is disturbing to see that there is a blank line
> > difference with and without this change in the file created by the
> > test (i.e. the client of the code this patch touches).
>
> This fixes it:
>
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index 4dab575..059bb25 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -528,8 +528,7 @@ maybe_setup_valgrind () {
> test_eval_inner_ () {
> eval "
> test \"$trace\" = t && set -x
> - $*
> - "
> + $*"
> }
>
> test_eval_ () {
>
>
> My patch definitely expands the snippet with an extra trailing newline.
> But what I really don't understand is why that would impact the
> _contents_ of the config file.
>
> I'll dig further, but I'm about to leave the computer for dinner for a
> few hours, so please don't hold your breath. :)
OK, I lied. I couldn't resist spending 5 more minutes on it.
If you instrument t1308 on master to look at the contents of .git/config
directly after the setup step, you'll see that the file ends with (tabs
marked as ^I):
[...]
^I^Ihorns
^IEOF
Which makes sense. We forgot the tab-eating "<<-" in the here-doc, so
the tab-indented EOF was not counted as the end of the input. So this
test is bogus and broken, and the breakage introduced by my patch is
only triggered because of that (which isn't to say we shouldn't
necessarily adjust my patch, but we definitely should fix this test).
What really surprises me is that the shell is fine with a here-doc
ending inside an eval. Bash at least warns:
$ bash -c "eval 'cat <<EOF
content'"
bash: line 2: warning: here-document at line 1 delimited by end-of-file (wanted `EOF')
content
but dash silently accepts it:
$ dash -c "eval 'cat <<EOF
content'"
content
Maybe this is something that every shell does, but it certainly seems
like something we should not be relying on (and it was definitely not
something the test meant to rely on, as evidenced by the bogus EOF
marker it included).
-Peff
next prev parent reply other threads:[~2014-10-13 22:43 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-10 6:06 [PATCH 0/3] "-x" tracing option for tests Jeff King
2014-10-10 6:07 ` [PATCH 1/3] t5304: use test_path_is_* instead of "test -f" Jeff King
2014-10-10 6:11 ` [PATCH 2/3] t5304: use helper to report failure of "test foo = bar" Jeff King
2014-10-13 16:10 ` Jonathan Nieder
2014-10-13 21:15 ` Jeff King
2014-10-13 21:31 ` Jonathan Nieder
2014-10-13 21:33 ` Junio C Hamano
2014-10-13 21:38 ` Jonathan Nieder
2014-10-13 21:56 ` Junio C Hamano
2014-10-13 21:36 ` Jeff King
2014-10-10 6:13 ` [PATCH 3/3] test-lib.sh: support -x option for shell-tracing Jeff King
2014-10-10 6:21 ` Jeff King
2014-10-10 6:47 ` [PATCH v2 " Jeff King
2014-10-13 18:43 ` Junio C Hamano
2014-10-13 22:22 ` Junio C Hamano
2014-10-13 22:31 ` Junio C Hamano
2014-10-13 22:33 ` Jeff King
2014-10-13 22:38 ` Junio C Hamano
2014-10-13 22:43 ` Jeff King [this message]
2014-10-13 23:14 ` Junio C Hamano
2014-10-14 0:46 ` Jeff King
2014-10-10 6:27 ` [PATCH " Jeff King
2014-10-13 18:24 ` [PATCH 0/3] "-x" tracing option for tests Junio C Hamano
2014-10-13 21:07 ` Jeff King
2014-10-14 8:52 ` Michael Haggerty
2014-10-14 13:44 ` 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=20141013224342.GA22290@peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mhagger@alum.mit.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).