diff --git a/t/t4126-apply-empty.sh b/t/t4126-apply-empty.sh index eaf0c5304a..2462cdf904 100755 --- a/t/t4126-apply-empty.sh +++ b/t/t4126-apply-empty.sh @@ -66,26 +66,29 @@ test_expect_success 'apply --index create' ' git diff --exit-code ' -test_expect_success 'apply with no-contents and a funny pathname' ' - mkdir "funny " && - >"funny /empty" && - git add "funny /empty" && - git diff HEAD "funny /" >sample.patch && - git diff -R HEAD "funny /" >elpmas.patch && +test_expect_success 'parsing a patch with no-contents and a funny pathname' ' git reset --hard && - rm -fr "funny " && + empty_blob=$(test_oid empty_blob) && + echo "$empty_blob" >expect && - git apply --stat --check --apply sample.patch && - test_must_be_empty "funny /empty" && + 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 && - git apply --stat --check --apply elpmas.patch && - test_path_is_missing "funny /empty" && + git apply --cached --stat --check --apply sample.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 --cached --stat --check --apply elpmas.patch && + test_must_fail git rev-parse --verify ":funny /empty" && - git apply -R --stat --check --apply sample.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 --cached --stat --check --apply sample.patch && + test_must_fail git rev-parse --verify ":funny /empty" ' test_done