t7501: stop losing return codes of git commands

In a pipe, only the return code of the last command is used. Thus, all
other commands will have their return codes masked. Rewrite pipes so
that there are no git commands upstream so that we will know if a
command fails.

In the 'interactive add' test case, we prepend a `test_must_fail` to
`git commit --interactive`. When there are no changes to commit,
`git commit` will exit with status code 1. Following along with the rest
of the file, we use `test_must_fail` to test for this case.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Denton Liu 2019-11-27 11:53:43 -08:00 committed by Junio C Hamano
parent 38c1aa01de
commit 756ee7fc9f

View File

@ -285,9 +285,8 @@ test_expect_success 'overriding author from command line' '
'
test_expect_success PERL 'interactive add' '
echo 7 |
git commit --interactive |
grep "What now"
echo 7 | test_must_fail git commit --interactive >out &&
grep "What now" out
'
test_expect_success PERL "commit --interactive doesn't change index if editor aborts" '
@ -362,10 +361,10 @@ test_expect_success 'amend commit to fix author' '
oldtick=$GIT_AUTHOR_DATE &&
test_tick &&
git reset --hard &&
git cat-file -p HEAD |
git cat-file -p HEAD >commit &&
sed -e "s/author.*/author $author $oldtick/" \
-e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" > \
expected &&
-e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" \
commit >expected &&
git commit --amend --author="$author" &&
git cat-file -p HEAD >current &&
test_cmp expected current
@ -377,10 +376,10 @@ test_expect_success 'amend commit to fix date' '
test_tick &&
newtick=$GIT_AUTHOR_DATE &&
git reset --hard &&
git cat-file -p HEAD |
git cat-file -p HEAD >commit &&
sed -e "s/author.*/author $author $newtick/" \
-e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" > \
expected &&
-e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" \
commit >expected &&
git commit --amend --date="$newtick" &&
git cat-file -p HEAD >current &&
test_cmp expected current
@ -409,12 +408,13 @@ test_expect_success 'sign off (1)' '
echo 1 >positive &&
git add positive &&
git commit -s -m "thank you" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo thank you &&
echo &&
git var GIT_COMMITTER_IDENT |
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /"
git var GIT_COMMITTER_IDENT >ident &&
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /" ident
) >expected &&
test_cmp expected actual
@ -428,13 +428,14 @@ test_expect_success 'sign off (2)' '
git commit -s -m "thank you
$existing" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo thank you &&
echo &&
echo $existing &&
git var GIT_COMMITTER_IDENT |
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /"
git var GIT_COMMITTER_IDENT >ident &&
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /" ident
) >expected &&
test_cmp expected actual
@ -448,13 +449,14 @@ test_expect_success 'signoff gap' '
git commit -s -m "welcome
$alt" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo welcome &&
echo &&
echo $alt &&
git var GIT_COMMITTER_IDENT |
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /"
git var GIT_COMMITTER_IDENT >ident &&
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /" ident
) >expected &&
test_cmp expected actual
'
@ -468,15 +470,16 @@ test_expect_success 'signoff gap 2' '
We have now
$alt" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo welcome &&
echo &&
echo We have now &&
echo $alt &&
echo &&
git var GIT_COMMITTER_IDENT |
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /"
git var GIT_COMMITTER_IDENT >ident &&
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /" ident
) >expected &&
test_cmp expected actual
'
@ -489,7 +492,8 @@ test_expect_success 'signoff respects trailer config' '
non-trailer line
Myfooter: x" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo subject &&
echo &&
@ -506,7 +510,8 @@ Myfooter: x" &&
non-trailer line
Myfooter: x" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo subject &&
echo &&
@ -538,7 +543,8 @@ test_expect_success 'multiple -m' '
>negative &&
git add negative &&
git commit -m "one" -m "two" -m "three" &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit HEAD >commit &&
sed -e "1,/^\$/d" commit >actual &&
(
echo one &&
echo &&
@ -555,10 +561,10 @@ test_expect_success 'amend commit to fix author' '
oldtick=$GIT_AUTHOR_DATE &&
test_tick &&
git reset --hard &&
git cat-file -p HEAD |
git cat-file -p HEAD >commit &&
sed -e "s/author.*/author $author $oldtick/" \
-e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" > \
expected &&
-e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" \
commit >expected &&
git commit --amend --author="$author" &&
git cat-file -p HEAD >current &&
test_cmp expected current
@ -570,8 +576,10 @@ test_expect_success 'git commit <file> with dirty index' '
echo tehlulz >chz &&
git add chz &&
git commit elif -m "tacocat is a palindrome" &&
git show --stat | grep elif &&
git diff --cached | grep chz
git show --stat >stat &&
grep elif stat &&
git diff --cached >diff &&
grep chz diff
'
test_expect_success 'same tree (single parent)' '
@ -584,7 +592,8 @@ test_expect_success 'same tree (single parent)' '
test_expect_success 'same tree (single parent) --allow-empty' '
git commit --allow-empty -m "forced empty" &&
git cat-file commit HEAD | grep forced
git cat-file commit HEAD >commit &&
grep forced commit
'