Exit codes are lost due to piping and command substitution: - "git ... | <command>" - "<command> $(git ... )" Fix these issues using the intermediate step of writing output to file. Signed-off-by: Edwin Fernando <edwinfernando734@xxxxxxxxx> --- Changes from v2: - use git rebase to squash commit history, and diff with upstream commit for review - use present tense for code before the commit. t/t3701-add-interactive.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index 3a99837d9b..77aad9032a 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -292,8 +292,10 @@ test_expect_success FILEMODE 'patch does not affect mode' ' echo content >>file && chmod +x file && printf "n\\ny\\n" | git add -p && - git show :file | grep content && - git diff file | grep "new mode" + git show :file >show && + grep content show && + git diff file >diff && + grep "new mode" diff ' test_expect_success FILEMODE 'stage mode but not hunk' ' @@ -301,8 +303,10 @@ test_expect_success FILEMODE 'stage mode but not hunk' ' echo content >>file && chmod +x file && printf "y\\nn\\n" | git add -p && - git diff --cached file | grep "new mode" && - git diff file | grep "+content" + git diff --cached file >diff && + grep "new mode" diff && + git diff file >diff && + grep "+content" diff ' @@ -311,9 +315,11 @@ test_expect_success FILEMODE 'stage mode and hunk' ' echo content >>file && chmod +x file && printf "y\\ny\\n" | git add -p && - git diff --cached file | grep "new mode" && - git diff --cached file | grep "+content" && - test -z "$(git diff file)" + git diff --cached file >diff && + grep "new mode" diff && + grep "+content" diff && + git diff file >diff && + test_must_be_empty diff ' # end of tests disabled when filemode is not usable -- 2.40.0