From: Amanda Shafack <shafack.likhene@xxxxxxxxx> When the upstream of a pipe throws an error, the downstream still executes normally. This happens because the exit code of the upstream in a pipe is ignored. This behavior can make debugging very hard incase a test fails. Also, pipes are prone to deadlocks. If the upstream gets full, the commands downstream will never start. Write out the output of the git command to a file, so as to test the exit codes of both commands. Commit c6f44e1da5 (t9813: avoid using pipes, 2017-01-04) noticed that the exit code of upstream in the pipe is ignored, thus using pipes should be avoided. Signed-off-by: Amanda Shafack <shafack.likhene@xxxxxxxxx> --- t/t2200-add-update.sh | 5 ++++- t/t9832-unshelve.sh | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh index f764b7e3f5..2d850bb372 100755 --- a/t/t2200-add-update.sh +++ b/t/t2200-add-update.sh @@ -179,7 +179,10 @@ test_expect_success 'add -u resolves unmerged paths' ' test_expect_success '"add -u non-existent" should fail' ' test_must_fail git add -u non-existent && - ! (git ls-files | grep "non-existent") + ! ( + git ls-files >actual && + grep "non-existent" actual + ) ' test_done diff --git a/t/t9832-unshelve.sh b/t/t9832-unshelve.sh index 7194fb2855..6b3cb0414a 100755 --- a/t/t9832-unshelve.sh +++ b/t/t9832-unshelve.sh @@ -68,7 +68,8 @@ EOF cd "$git" && change=$(last_shelved_change) && git p4 unshelve $change && - git show refs/remotes/p4-unshelved/$change | grep -q "Further description" && + git show refs/remotes/p4-unshelved/$change >actual && + grep -q "Further description" actual && git cherry-pick refs/remotes/p4-unshelved/$change && test_path_is_file file2 && test_cmp file1 "$cli"/file1 && -- gitgitgadget