]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t4126-apply-empty.sh
Merge branch 'en/fetch-negotiation-default-fix'
[thirdparty/git.git] / t / t4126-apply-empty.sh
index a361e79a815690469585428d70a5cda2836dfe4a..33860d3829085211d5a5aa4da9468fa52cae4d9b 100755 (executable)
@@ -11,10 +11,9 @@ test_expect_success setup '
        git add empty &&
        test_tick &&
        git commit -m initial &&
-       for i in a b c d e
-       do
-               echo $i
-       done >empty &&
+       git commit --allow-empty -m "empty commit" &&
+       git format-patch --always HEAD~ >empty.patch &&
+       test_write_lines a b c d e >empty &&
        cat empty >expect &&
        git diff |
        sed -e "/^diff --git/d" \
@@ -27,30 +26,42 @@ test_expect_success setup '
 '
 
 test_expect_success 'apply empty' '
-       git reset --hard &&
        rm -f missing &&
+       test_when_finished "git reset --hard" &&
        git apply patch0 &&
        test_cmp expect empty
 '
 
+test_expect_success 'apply empty patch fails' '
+       test_when_finished "git reset --hard" &&
+       test_must_fail git apply empty.patch &&
+       test_must_fail git apply - </dev/null
+'
+
+test_expect_success 'apply with --allow-empty succeeds' '
+       test_when_finished "git reset --hard" &&
+       git apply --allow-empty empty.patch &&
+       git apply --allow-empty - </dev/null
+'
+
 test_expect_success 'apply --index empty' '
-       git reset --hard &&
        rm -f missing &&
+       test_when_finished "git reset --hard" &&
        git apply --index patch0 &&
        test_cmp expect empty &&
        git diff --exit-code
 '
 
 test_expect_success 'apply create' '
-       git reset --hard &&
        rm -f missing &&
+       test_when_finished "git reset --hard" &&
        git apply patch1 &&
        test_cmp expect missing
 '
 
 test_expect_success 'apply --index create' '
-       git reset --hard &&
        rm -f missing &&
+       test_when_finished "git reset --hard" &&
        git apply --index patch1 &&
        test_cmp expect missing &&
        git diff --exit-code