Even though "git update-index --cacheinfo" ought to be filesystem agnostic, somehow $ git update-index --add --cacheinfo "100644,$empty_blob,funny /empty" fails only there. That unfortunately makes the approach of the previous step unworkable. Resurrect the earlier approach to protect the test with a prerequisite to make sure we do not needlessly fail the CI. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- t/t4126-apply-empty.sh | 43 +++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/t/t4126-apply-empty.sh b/t/t4126-apply-empty.sh index 2462cdf904..d2ac7a486f 100755 --- a/t/t4126-apply-empty.sh +++ b/t/t4126-apply-empty.sh @@ -66,29 +66,38 @@ test_expect_success 'apply --index create' ' git diff --exit-code ' -test_expect_success 'parsing a patch with no-contents and a funny pathname' ' +test_expect_success 'setup patches in dir ending in SP' ' + test_when_finished "rm -fr \"funny \"" && + mkdir "funny " && + >"funny /empty" && + git add "funny /empty" && + git diff HEAD -- "funny /" >sample.patch && + git diff -R HEAD -- "funny /" >elpmas.patch && git reset --hard && - empty_blob=$(test_oid empty_blob) && - echo "$empty_blob" >expect && - git update-index --add --cacheinfo "100644,$empty_blob,funny /empty" && - git diff --cached HEAD -- "funny /" >sample.patch && - git diff --cached -R HEAD -- "funny /" >elpmas.patch && - git reset && + if grep "a/funny /empty b/funny /empty" sample.patch && + grep "b/funny /empty a/funny /empty" elpmas.patch + then + test_set_prereq DIR_ENDS_WITH_SP + else + # Win test??? + ls -l + fi +' + +test_expect_success DIR_ENDS_WITH_SP 'apply with no-contents and a funny pathname' ' - git apply --cached --stat --check --apply sample.patch && - git rev-parse --verify ":funny /empty" >actual && - test_cmp expect actual && + git apply --stat --check --apply sample.patch && + test_must_be_empty "funny /empty" && - git apply --cached --stat --check --apply elpmas.patch && - test_must_fail git rev-parse --verify ":funny /empty" && + git apply --stat --check --apply elpmas.patch && + test_path_is_missing "funny /empty" && - git apply -R --cached --stat --check --apply elpmas.patch && - git rev-parse --verify ":funny /empty" >actual && - test_cmp expect actual && + git apply -R --stat --check --apply elpmas.patch && + test_must_be_empty "funny /empty" && - git apply -R --cached --stat --check --apply sample.patch && - test_must_fail git rev-parse --verify ":funny /empty" + git apply -R --stat --check --apply sample.patch && + test_path_is_missing "funny /empty" ' test_done -- 2.44.0-413-gd6fd04375f