test-dir-iterator: do not assume errno values
[gitweb.git] / t / t6031-merge-filemode.sh
index c6896e674c555b9fba72ab85121e6c23fdb8580c..87741efad319237477541823637a8bf47c1a254d 100755 (executable)
@@ -61,7 +61,7 @@ do_both_modes () {
                git checkout -f a2 &&
                test_must_fail git merge -s $strategy b2 &&
                git ls-files -u >actual &&
-               test_cmp actual expect &&
+               test_cmp expect actual &&
                git ls-files -s file2 | grep ^100755
        '
 
@@ -74,4 +74,27 @@ do_both_modes () {
 do_both_modes recursive
 do_both_modes resolve
 
+test_expect_success 'set up delete/modechange scenario' '
+       git reset --hard &&
+       git checkout -b deletion master &&
+       git rm file1 &&
+       git commit -m deletion
+'
+
+do_delete_modechange () {
+       strategy=$1
+       us=$2
+       them=$3
+       test_expect_success "detect delete/modechange conflict ($strategy, $us)" '
+               git reset --hard &&
+               git checkout $us &&
+               test_must_fail git merge -s $strategy $them
+       '
+}
+
+do_delete_modechange recursive b1 deletion
+do_delete_modechange recursive deletion b1
+do_delete_modechange resolve b1 deletion
+do_delete_modechange resolve deletion b1
+
 test_done