From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jiang Xin <worldhello.net@gmail.com>, Git List <git@vger.kernel.org>
Subject: [PATCH 5/6] t7502: handle systems where auto-identity is broken
Date: Thu, 26 Jul 2012 16:32:31 -0400 [thread overview]
Message-ID: <20120726203231.GE16048@sigill.intra.peff.net> (raw)
In-Reply-To: <20120726202644.GA15043@sigill.intra.peff.net>
Test t7502.21 checks whether we write the committer name
into COMMIT_EDITMSG when it has been automatically
determined. However, not all systems can produce valid
automatic identities.
Prior to f20f387 (commit: check committer identity more
strictly), this test worked even when we did not have a
valid automatic identity, since it did not run the strict
test until after we had generated the template. That commit
tightened the check to fail early (since we would fail
later, anyway), meaning that systems without a valid GECOS
name or hostname would fail the test.
We cannot just work around this, because it depends on
configuration outside the control of the test script.
Therefore we introduce a new test_prerequisite to run this
test only on systems where automatic ident works at all.
As a result, we can drop the confusing test_must_fail bit
from the test. The intent was that by giving "git commit"
invalid input (namely, nothing to commit), that it would
stop at a predictable point, whether we had a valid identity
or not, from which we could view the contents of
COMMIT_EDITMSG. Since that assumption no longer holds, and
we can only run the test when we have a valid identity,
there is no reason not to let commit run to completion. That
lets us be more robust to other unforeseen failures.
Signed-off-by: Jeff King <peff@peff.net>
---
This should fix the test failure that started the thread. Please let me
know if it doesn't.
t/t7502-commit.sh | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
index d261b82..c444812 100755
--- a/t/t7502-commit.sh
+++ b/t/t7502-commit.sh
@@ -243,14 +243,21 @@ test_expect_success 'message shows author when it is not equal to committer' '
.git/COMMIT_EDITMSG
'
-test_expect_success 'message shows committer when it is automatic' '
+test_expect_success 'setup auto-ident prerequisite' '
+ if (sane_unset GIT_COMMITTER_EMAIL &&
+ sane_unset GIT_COMMITTER_NAME &&
+ git var GIT_COMMITTER_IDENT); then
+ test_set_prereq AUTOIDENT
+ fi
+'
+
+test_expect_success AUTOIDENT 'message shows committer when it is automatic' '
echo >>negative &&
(
sane_unset GIT_COMMITTER_EMAIL &&
sane_unset GIT_COMMITTER_NAME &&
- # must fail because there is no change
- test_must_fail git commit -e -m "sample"
+ git commit -e -m "sample" -a
) &&
# the ident is calculated from the system, so we cannot
# check the actual value, only that it is there
--
1.7.11.3.8.ge78f547
next prev parent reply other threads:[~2012-07-26 20:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-26 6:27 Test "t/t7502-commit.sh" failed Jiang Xin
2012-07-26 13:03 ` Jeff King
2012-07-26 16:34 ` Junio C Hamano
2012-07-26 17:12 ` Jeff King
2012-07-26 19:25 ` Junio C Hamano
2012-07-26 19:33 ` Jeff King
2012-07-26 20:04 ` Junio C Hamano
2012-07-26 20:26 ` [PATCH 0/6] t7502 fixes Jeff King
2012-07-26 20:27 ` [PATCH 1/6] t7502: clean up fake_editor tests Jeff King
2012-07-26 20:28 ` [PATCH 2/6] t7502: properly quote GIT_EDITOR Jeff King
2012-07-26 20:30 ` [PATCH 3/6] t7502: narrow checks for author/committer name in template Jeff King
2012-07-26 20:31 ` [PATCH 4/6] t7502: drop confusing test_might_fail call Jeff King
2012-07-26 20:32 ` Jeff King [this message]
2012-07-26 20:32 ` [PATCH 6/6] t7502: test early quit from commit with bad ident Jeff King
2012-07-26 21:15 ` [PATCH 0/6] t7502 fixes 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=20120726203231.GE16048@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=worldhello.net@gmail.com \
/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).