Merge branch 'jk/autoident-test'
Fix test breakages by a builder who does not have a valid user name in his /etc/password entry. * jk/autoident-test: t7502: test early quit from commit with bad ident t7502: handle systems where auto-identity is broken t7502: drop confusing test_might_fail call t7502: narrow checks for author/committer name in template t7502: properly quote GIT_EDITOR t7502: clean up fake_editor tests
This commit is contained in:
commit
12688bbacf
@ -235,44 +235,56 @@ test_expect_success 'cleanup commit messages (strip,-F,-e): output' '
|
|||||||
test_i18ncmp expect actual
|
test_i18ncmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
echo "#
|
test_expect_success 'message shows author when it is not equal to committer' '
|
||||||
# Author: $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>
|
|
||||||
#" >> expect
|
|
||||||
|
|
||||||
test_expect_success 'author different from committer' '
|
|
||||||
echo >>negative &&
|
echo >>negative &&
|
||||||
test_might_fail git commit -e -m "sample" &&
|
git commit -e -m "sample" -a &&
|
||||||
head -n 7 .git/COMMIT_EDITMSG >actual &&
|
test_i18ngrep \
|
||||||
test_i18ncmp expect actual
|
"^# Author: *A U Thor <author@example.com>\$" \
|
||||||
|
.git/COMMIT_EDITMSG
|
||||||
'
|
'
|
||||||
|
|
||||||
mv expect expect.tmp
|
test_expect_success 'setup auto-ident prerequisite' '
|
||||||
sed '$d' < expect.tmp > expect
|
if (sane_unset GIT_COMMITTER_EMAIL &&
|
||||||
rm -f expect.tmp
|
sane_unset GIT_COMMITTER_NAME &&
|
||||||
echo "# Committer:
|
git var GIT_COMMITTER_IDENT); then
|
||||||
#" >> expect
|
test_set_prereq AUTOIDENT
|
||||||
|
else
|
||||||
|
test_set_prereq NOAUTOIDENT
|
||||||
|
fi
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'committer is automatic' '
|
test_expect_success AUTOIDENT 'message shows committer when it is automatic' '
|
||||||
|
|
||||||
echo >>negative &&
|
echo >>negative &&
|
||||||
(
|
(
|
||||||
sane_unset GIT_COMMITTER_EMAIL &&
|
sane_unset GIT_COMMITTER_EMAIL &&
|
||||||
sane_unset GIT_COMMITTER_NAME &&
|
sane_unset GIT_COMMITTER_NAME &&
|
||||||
# must fail because there is no change
|
git commit -e -m "sample" -a
|
||||||
test_must_fail git commit -e -m "sample"
|
|
||||||
) &&
|
) &&
|
||||||
head -n 8 .git/COMMIT_EDITMSG | \
|
# the ident is calculated from the system, so we cannot
|
||||||
sed "s/^# Committer: .*/# Committer:/" >actual
|
# check the actual value, only that it is there
|
||||||
test_i18ncmp expect actual
|
test_i18ngrep "^# Committer: " .git/COMMIT_EDITMSG
|
||||||
'
|
'
|
||||||
|
|
||||||
pwd=`pwd`
|
write_script .git/FAKE_EDITOR <<EOF
|
||||||
cat >> .git/FAKE_EDITOR << EOF
|
echo editor started > "$(pwd)/.git/result"
|
||||||
#! /bin/sh
|
|
||||||
echo editor started > "$pwd/.git/result"
|
|
||||||
exit 0
|
exit 0
|
||||||
EOF
|
EOF
|
||||||
chmod +x .git/FAKE_EDITOR
|
|
||||||
|
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' '
|
test_expect_success 'do not fire editor in the presence of conflicts' '
|
||||||
|
|
||||||
@ -293,16 +305,14 @@ test_expect_success 'do not fire editor in the presence of conflicts' '
|
|||||||
test_must_fail git cherry-pick -n master &&
|
test_must_fail git cherry-pick -n master &&
|
||||||
echo "editor not started" >.git/result &&
|
echo "editor not started" >.git/result &&
|
||||||
(
|
(
|
||||||
GIT_EDITOR="$(pwd)/.git/FAKE_EDITOR" &&
|
GIT_EDITOR="\"$(pwd)/.git/FAKE_EDITOR\"" &&
|
||||||
export GIT_EDITOR &&
|
export GIT_EDITOR &&
|
||||||
test_must_fail git commit
|
test_must_fail git commit
|
||||||
) &&
|
) &&
|
||||||
test "$(cat .git/result)" = "editor not started"
|
test "$(cat .git/result)" = "editor not started"
|
||||||
'
|
'
|
||||||
|
|
||||||
pwd=`pwd`
|
write_script .git/FAKE_EDITOR <<EOF
|
||||||
cat >.git/FAKE_EDITOR <<EOF
|
|
||||||
#! $SHELL_PATH
|
|
||||||
# kill -TERM command added below.
|
# kill -TERM command added below.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -339,13 +349,12 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
cat >.git/FAKE_EDITOR <<EOF
|
write_script .git/FAKE_EDITOR <<\EOF
|
||||||
#!$SHELL_PATH
|
mv "$1" "$1.orig"
|
||||||
mv "\$1" "\$1.orig"
|
|
||||||
(
|
(
|
||||||
echo message
|
echo message
|
||||||
cat "\$1.orig"
|
cat "$1.orig"
|
||||||
) >"\$1"
|
) >"$1"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo '## Custom template' >template
|
echo '## Custom template' >template
|
||||||
|
Loading…
Reference in New Issue
Block a user