]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t4126: fix "funny directory name" test on Windows (again)
authorJunio C Hamano <gitster@pobox.com>
Fri, 29 Mar 2024 17:21:58 +0000 (10:21 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Mar 2024 17:22:34 +0000 (10:22 -0700)
Even though "git update-index --cacheinfo" ought to be filesystem
agnostic,

    $ git update-index --add --cacheinfo "100644,$empty_blob,funny /empty"

fails only on Windows, and this unfortunately makes the approach of
the previous step unworkable.

Resurrect the earlier approach to give up on running the test on
known-bad platforms.  Instead of computing a custom prerequisite,
just use !MINGW we have used elsewhere.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4126-apply-empty.sh

index 2462cdf9041610e813a31ec86cfbd667be65b031..56210b5609919dbd625cfe12c49ab7e858534896 100755 (executable)
@@ -66,29 +66,28 @@ test_expect_success 'apply --index create' '
        git diff --exit-code
 '
 
-test_expect_success 'parsing a patch with no-contents and a funny pathname' '
-       git reset --hard &&
-       empty_blob=$(test_oid empty_blob) &&
-       echo "$empty_blob" >expect &&
+test_expect_success !MINGW 'apply with no-contents and a funny pathname' '
+       test_when_finished "rm -fr \"funny \"; git reset --hard" &&
+
+       mkdir "funny " &&
+       >"funny /empty" &&
+       git add "funny /empty" &&
+       git diff HEAD -- "funny /" >sample.patch &&
+       git diff -R HEAD -- "funny /" >elpmas.patch &&
 
-       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 reset --hard &&
 
-       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