Message ID | 7b0784056f3cc0c96e9543ae44d0f5a7b0bf85fa.1661192802.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 625ff5c3201186cedb856678907a3f4bd88406a6 |
Headers | show |
Series | tests: fix broken &&-chains & abort loops on error | expand |
On 8/22/2022 2:26 PM, Eric Sunshine via GitGitGadget wrote: > From: Eric Sunshine <sunshine@sunshineco.com> > > This test wants to verify that `git blame` errors out when asked to > blame a file _not_ in the sparse checkout. However, the very first file > it asks to blame _is_ present in the checkout, thus `test_must_fail git > blame $file` gives an unexpected result (the "blame" succeeds). This > problem went unnoticed because the test invokes `test_must_fail git > blame $file` in loop but forgets to break out of the loop early upon > failure, thus the failure gets swallowed. > > Fix the test by having it not ask to blame a file present in the sparse > checkout, and instead only blame files not present, as intended. While > at it, also add the missing `|| return 1` which allowed this bug to go > unnoticed. Thank you for catching this! -Stolee
diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh index a6a14c8a21f..e13368861ce 100755 --- a/t/t1092-sparse-checkout-compatibility.sh +++ b/t/t1092-sparse-checkout-compatibility.sh @@ -567,7 +567,7 @@ test_expect_success 'blame with pathspec outside sparse definition' ' init_repos && test_sparse_match git sparse-checkout set && - for file in a \ + for file in \ deep/a \ deep/deeper1/a \ deep/deeper1/deepest/a @@ -579,7 +579,7 @@ test_expect_success 'blame with pathspec outside sparse definition' ' # We compare sparse-checkout-err and sparse-index-err in # `test_sparse_match`. Given we know they are the same, we # only check the content of sparse-index-err here. - test_cmp expect sparse-index-err + test_cmp expect sparse-index-err || return 1 done '