On Tue, Dec 27 2022, Phillip Wood wrote: > Hi Ævar > > On 19/12/2022 10:19, Ævar Arnfjörð Bjarmason wrote: >> Fix a few miscellaneous cases where: >> - We lost the "git" exit code via "git ... | grep" >> - Likewise by having a $(git) argument to git itself >> - Used "test -z" to check that a command emitted no output, we can use >> "test_must_be_empty" and &&-chaining instead. >> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> >> [...] >> diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh >> index 5841f280fb2..f1fe5d60677 100755 >> --- a/t/t3701-add-interactive.sh >> +++ b/t/t3701-add-interactive.sh >> @@ -296,9 +296,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 >out && >> + grep "new mode" out && >> + grep "+content" out && >> + git diff file >out && >> + test_must_be_empty out > > "git diff --exit-code file" would suffice here, we don't need to > redirect the output and check that it is empty. Correct. Or even "git diff-files -s --exit-code", which might make things clearer still, or have this use the "diff_cmp" helper defined in the test file, as most of its siblings do. But as with a sibling comment of mine I wanted to avoid starting to refactoring these tests for general betterment, and just to narrowly avoid losing the exit code.