Merge branch 'jc/send-email-reconfirm' into maint
[gitweb.git] / t / t7502-commit.sh
index d261b8252a8e8b474d57e13e25f0eb53a446c234..deb187eb7b4277a43f46e73c1d85012b728ce14a 100755 (executable)
@@ -243,14 +243,23 @@ 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
+       else
+               test_set_prereq NOAUTOIDENT
+       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
@@ -262,6 +271,21 @@ echo editor started > "$(pwd)/.git/result"
 exit 0
 EOF
 
+test_expect_success NOAUTOIDENT 'do not fire editor when committer is bogus' '
+       >.git/result
+       >expect &&
+
+       echo >>negative &&
+       (
+               sane_unset GIT_COMMITTER_EMAIL &&
+               sane_unset GIT_COMMITTER_NAME &&
+               GIT_EDITOR="\"$(pwd)/.git/FAKE_EDITOR\"" &&
+               export GIT_EDITOR &&
+               test_must_fail git commit -e -m sample -a
+       ) &&
+       test_cmp expect .git/result
+'
+
 test_expect_success 'do not fire editor in the presence of conflicts' '
 
        git clean -f &&