git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Brandon Casey <drafnel@gmail.com>
To: git@vger.kernel.org
Cc: Brandon Casey <drafnel@gmail.com>
Subject: [PATCH 2/4] t7502: demonstrate breakage with a commit message with trailing newlines
Date: Mon, 18 Feb 2013 20:17:05 -0800	[thread overview]
Message-ID: <1361247427-438-2-git-send-email-drafnel@gmail.com> (raw)
In-Reply-To: <1361247427-438-1-git-send-email-drafnel@gmail.com>

This test attempts to verify that a commit message supplied to 'git
commit' via the -m switch was used in full as the commit message for a
commit when --cleanup=verbatim was used.

But, this test has been broken since it was introduced.  Since the
commit message containing trailing newlines was supplied to 'git commit'
using a command substitution, the trailing newlines were removed by the
shell.  This means that a string without any trailing newlines was
actually supplied to 'git commit'.

The test was able to complete successfully since internally, git appends
two newlines to each string supplied via the -m switch.  So, the two
newlines removed by the shell were then re-added by git, and the
resulting commit matched what was expected.

So, let's move the initial creation of the commit message string out
from within a previous test so that it stands alone.  Assign the desired
commit message to a variable using literal newlines.  Then populate the
expect file from the contents of the commit message variable.  This way
the shell variable becomes the authoritative source of the commit
message and can be supplied via the -m switch with the trailing newlines
intact.

Mark this test as failing, since it is not handled correctly by git.
As described above, git appends two extra newlines to every string
supplied via -m.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
 t/t7502-commit.sh | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
index 9040f8a..39e55f8 100755
--- a/t/t7502-commit.sh
+++ b/t/t7502-commit.sh
@@ -177,10 +177,18 @@ test_expect_success 'verbose respects diff config' '
 	git config --unset color.diff
 '
 
+mesg_with_comment_and_newlines='
+# text
+
+'
+
+test_expect_success 'prepare file with comment line and trailing newlines'  '
+	printf "%s" "$mesg_with_comment_and_newlines" >expect
+'
+
 test_expect_success 'cleanup commit messages (verbatim option,-t)' '
 
 	echo >>negative &&
-	{ echo;echo "# text";echo; } >expect &&
 	git commit --cleanup=verbatim --no-status -t expect -a &&
 	git cat-file -p HEAD |sed -e "1,/^\$/d" >actual &&
 	test_cmp expect actual
@@ -196,10 +204,10 @@ test_expect_success 'cleanup commit messages (verbatim option,-F)' '
 
 '
 
-test_expect_success 'cleanup commit messages (verbatim option,-m)' '
+test_expect_failure 'cleanup commit messages (verbatim option,-m)' '
 
 	echo >>negative &&
-	git commit --cleanup=verbatim -m "$(cat expect)" -a &&
+	git commit --cleanup=verbatim -m "$mesg_with_comment_and_newlines" -a &&
 	git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
 	test_cmp expect actual
 
-- 
1.8.1.3.638.g372f416.dirty

  reply	other threads:[~2013-02-19  4:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-19  4:17 [PATCH 1/4] t/t7502: compare entire commit message with what was expected Brandon Casey
2013-02-19  4:17 ` Brandon Casey [this message]
2013-02-19  5:39   ` [PATCH 2/4] t7502: demonstrate breakage with a commit message with trailing newlines Jonathan Nieder
2013-02-19  4:17 ` [PATCH 3/4] git-commit: only append a newline to -m mesg if necessary Brandon Casey
2013-02-19  6:31   ` Jonathan Nieder
2013-02-19  4:17 ` [PATCH 4/4] Documentation/git-commit.txt: correct a few minor grammatical mistakes Brandon Casey
2013-02-19  6:43   ` Jonathan Nieder
2013-02-19  7:18     ` Brandon Casey
2013-02-19  7:29       ` Jonathan Nieder
2013-02-19 17:33         ` Junio C Hamano
2013-02-19 18:14           ` [PATCH v2 4/4] Documentation/git-commit.txt: rework the --cleanup section Brandon Casey
2013-02-19 18:28           ` Brandon Casey
2013-02-19 18:29           ` Brandon Casey
2013-02-19 20:28             ` [PATCH] fixup! " Jonathan Nieder
2013-02-19 20:33               ` Brandon Casey
2013-02-19 20:35             ` [PATCH v2 4/4] " Junio C Hamano
2013-02-19  5:08 ` [PATCH 1/4] t/t7502: compare entire commit message with what was expected Jonathan Nieder
2013-02-19  5:10   ` Jonathan Nieder
2013-02-19 17:24   ` Junio C Hamano

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=1361247427-438-2-git-send-email-drafnel@gmail.com \
    --to=drafnel@gmail.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 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).