Merge branch 'jc/am-3-nonstandard-popt' into maint
[gitweb.git] / t / t4150-am.sh
index d7d9ccc1c8c31ef3b2d4763532344d0637a18b5c..658354a6ce8ab13fd6b229bb2adecd8e29de9697 100755 (executable)
@@ -123,6 +123,7 @@ test_expect_success setup '
        git commit -m "added another file" &&
 
        git format-patch --stdout master >lorem-move.patch &&
+       git format-patch --no-prefix --stdout master >lorem-zero.patch &&
 
        git checkout -b rename &&
        git mv file renamed &&
@@ -136,7 +137,7 @@ test_expect_success setup '
        git format-patch -M --stdout lorem^ >rename-add.patch &&
 
        # reset time
-       unset test_tick &&
+       sane_unset test_tick &&
        test_tick
 '
 
@@ -276,6 +277,20 @@ test_expect_success 'am -3 falls back to 3-way merge' '
        git diff --exit-code lorem
 '
 
+test_expect_success 'am -3 -p0 can read --no-prefix patch' '
+       rm -fr .git/rebase-apply &&
+       git reset --hard &&
+       git checkout -b lorem3 master2 &&
+       sed -n -e "3,\$p" msg >file &&
+       head -n 9 msg >>file &&
+       git add file &&
+       test_tick &&
+       git commit -m "copied stuff" &&
+       git am -3 -p0 lorem-zero.patch &&
+       ! test -d .git/rebase-apply &&
+       git diff --exit-code lorem
+'
+
 test_expect_success 'am can rename a file' '
        grep "^rename from" rename.patch &&
        rm -fr .git/rebase-apply &&
@@ -495,4 +510,14 @@ test_expect_success 'am -q is quiet' '
        ! test -s output.out
 '
 
+test_expect_success 'am empty-file does not infloop' '
+       rm -fr .git/rebase-apply &&
+       git reset --hard &&
+       touch empty-file &&
+       test_tick &&
+       { git am empty-file > actual 2>&1 && false || :; } &&
+       echo Patch format detection failed. >expected &&
+       test_cmp expected actual
+'
+
 test_done