]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t4200-rerere.sh
Merge branch 'mr/rerere-crash-fix'
[thirdparty/git.git] / t / t4200-rerere.sh
index fb53dddf799c9863ec1df4fe82147ead6dead15a..b0a3e84984185d3e88756bbdb98cb9a56a2233eb 100755 (executable)
@@ -671,4 +671,67 @@ test_expect_success 'test simple stage 1 handling' '
        )
 '
 
+test_expect_success 'rerere does not crash with missing preimage' '
+       git config rerere.enabled true &&
+
+       echo bar >test &&
+       git add test &&
+       git commit -m "one" &&
+       git branch rerere_no_crash &&
+
+       echo foo >>test &&
+       git add test &&
+       git commit -m "two" &&
+
+       git checkout rerere_no_crash &&
+       echo "bar" >>test &&
+       git add test &&
+       git commit -m "three" &&
+
+       test_must_fail git rebase main &&
+       rm .git/rr-cache/*/preimage &&
+       git rebase --abort
+'
+
+test_expect_success 'rerere does not crash with unmatched conflict marker' '
+       git config rerere.enabled true &&
+
+       echo bar >test &&
+       git add test &&
+       git commit -m "one" &&
+       git branch rerere_no_preimage &&
+
+       cat >test <<-EOF &&
+       test
+       bar
+       foobar
+       EOF
+       git add test &&
+       git commit -m "two" &&
+
+       git checkout rerere_no_preimage &&
+       echo "bar" >>test &&
+       git add test &&
+       git commit -m "three" &&
+
+       cat >test <<-EOF &&
+       foobar
+       bar
+       bar
+       EOF
+       git add test &&
+       git commit -m "four" &&
+
+       test_must_fail git rebase main &&
+       cat >test <<-EOF &&
+       test
+       bar
+       <<<<<<< HEAD
+       foobar
+       bar
+       EOF
+       git add test &&
+       test_must_fail git rebase --continue
+'
+
 test_done