t7502: handle systems where auto-identity is broken
authorJeff King <peff@peff.net>
Thu, 26 Jul 2012 20:32:31 +0000 (16:32 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 26 Jul 2012 21:23:35 +0000 (14:23 -0700)
commit1d7dc26498b5d7b7879d579f40be63210c50400c
tree17e58821943d7dea6d62919d63f7523dd01fedf8
parentceacd91a063b8efea169d07913cabb0f4d33aee4
t7502: handle systems where auto-identity is broken

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7502-commit.sh