]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t/: new helper for tests that pass with ort but fail with recursive
authorElijah Newren <newren@gmail.com>
Mon, 26 Oct 2020 17:01:36 +0000 (17:01 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Oct 2020 19:31:23 +0000 (12:31 -0700)
There are a number of tests that the "recursive" backend does not handle
correctly but which the redesign in "ort" will.  Add a new helper in
lib-merge.sh for selecting a different test expectation based on the
setting of GIT_TEST_MERGE_ALGORITHM, and use it in various testcases to
document which ones we expect to fail under recursive but pass under
ort.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-merge.sh [new file with mode: 0644]
t/t6416-recursive-corner-cases.sh
t/t6422-merge-rename-corner-cases.sh
t/t6423-merge-rename-directories.sh
t/t6426-merge-skip-unneeded-updates.sh
t/t6430-merge-recursive.sh

diff --git a/t/lib-merge.sh b/t/lib-merge.sh
new file mode 100644 (file)
index 0000000..8734ebf
--- /dev/null
@@ -0,0 +1,13 @@
+# Helper functions used by merge tests.
+
+test_expect_merge_algorithm () {
+       status_for_recursive=$1 status_for_ort=$2
+       shift 2
+
+       if test "$GIT_TEST_MERGE_ALGORITHM" = ort
+       then
+               test_expect_${status_for_ort} "$@"
+       else
+               test_expect_${status_for_recursive} "$@"
+       fi
+}
index fd98989b1476e4e1e35893350981d3a1f25a37fa..8b3a4fc84309e8858e5015049e94a736942c1616 100755 (executable)
@@ -3,6 +3,7 @@
 test_description='recursive merge corner cases involving criss-cross merges'
 
 . ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-merge.sh
 
 #
 #  L1  L2
@@ -1069,7 +1070,7 @@ test_expect_success 'setup symlink modify/modify' '
        )
 '
 
-test_expect_failure 'check symlink modify/modify' '
+test_expect_merge_algorithm failure success 'check symlink modify/modify' '
        (
                cd symlink-modify-modify &&
 
@@ -1135,7 +1136,7 @@ test_expect_success 'setup symlink add/add' '
        )
 '
 
-test_expect_failure 'check symlink add/add' '
+test_expect_merge_algorithm failure success 'check symlink add/add' '
        (
                cd symlink-add-add &&
 
@@ -1223,7 +1224,7 @@ test_expect_success 'setup submodule modify/modify' '
        )
 '
 
-test_expect_failure 'check submodule modify/modify' '
+test_expect_merge_algorithm failure success 'check submodule modify/modify' '
        (
                cd submodule-modify-modify &&
 
@@ -1311,7 +1312,7 @@ test_expect_success 'setup submodule add/add' '
        )
 '
 
-test_expect_failure 'check submodule add/add' '
+test_expect_merge_algorithm failure success 'check submodule add/add' '
        (
                cd submodule-add-add &&
 
@@ -1386,7 +1387,7 @@ test_expect_success 'setup conflicting entry types (submodule vs symlink)' '
        )
 '
 
-test_expect_failure 'check conflicting entry types (submodule vs symlink)' '
+test_expect_merge_algorithm failure success 'check conflicting entry types (submodule vs symlink)' '
        (
                cd submodule-symlink-add-add &&
 
index 3375eaf4e76daa23c0a9e65fd6b7e060cc04f601..58729593ba80fdf143669ae3849893bd3c8e2858 100755 (executable)
@@ -4,6 +4,7 @@ test_description="recursive merge corner cases w/ renames but not criss-crosses"
 # t6036 has corner cases that involve both criss-cross merges and renames
 
 . ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-merge.sh
 
 test_setup_rename_delete_untracked () {
        test_create_repo rename-delete-untracked &&
@@ -878,7 +879,7 @@ test_setup_rad () {
        )
 }
 
-test_expect_failure 'rad-check: rename/add/delete conflict' '
+test_expect_merge_algorithm failure success 'rad-check: rename/add/delete conflict' '
        test_setup_rad &&
        (
                cd rad &&
@@ -951,7 +952,7 @@ test_setup_rrdd () {
        )
 }
 
-test_expect_failure 'rrdd-check: rename/rename(2to1)/delete/delete conflict' '
+test_expect_merge_algorithm failure success 'rrdd-check: rename/rename(2to1)/delete/delete conflict' '
        test_setup_rrdd &&
        (
                cd rrdd &&
@@ -1040,7 +1041,7 @@ test_setup_mod6 () {
        )
 }
 
-test_expect_failure 'mod6-check: chains of rename/rename(1to2) and rename/rename(2to1)' '
+test_expect_merge_algorithm failure success 'mod6-check: chains of rename/rename(1to2) and rename/rename(2to1)' '
        test_setup_mod6 &&
        (
                cd mod6 &&
index 06b46af765c25b94d1753ddeca592c700914b648..807a424a52a21aeda6c4131c4d93671d48b0c733 100755 (executable)
@@ -26,6 +26,7 @@ test_description="recursive merge with directory renames"
 #                     files that might be renamed into each other's paths.)
 
 . ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-merge.sh
 
 
 ###########################################################################
@@ -1339,7 +1340,7 @@ test_setup_6b1 () {
        )
 }
 
-test_expect_failure '6b1: Same renames done on both sides, plus another rename' '
+test_expect_merge_algorithm failure success '6b1: Same renames done on both sides, plus another rename' '
        test_setup_6b1 &&
        (
                cd 6b1 &&
@@ -1412,7 +1413,7 @@ test_setup_6b2 () {
        )
 }
 
-test_expect_failure '6b2: Same rename done on both sides' '
+test_expect_merge_algorithm failure success '6b2: Same rename done on both sides' '
        test_setup_6b2 &&
        (
                cd 6b2 &&
@@ -3471,7 +3472,7 @@ test_setup_10e () {
        )
 }
 
-test_expect_failure '10e: Does git complain about untracked file that is not really in the way?' '
+test_expect_merge_algorithm failure success '10e: Does git complain about untracked file that is not really in the way?' '
        test_setup_10e &&
        (
                cd 10e &&
@@ -4104,7 +4105,7 @@ test_setup_12b1 () {
        )
 }
 
-test_expect_failure '12b1: Moving two directory hierarchies into each other' '
+test_expect_merge_algorithm failure success '12b1: Moving two directory hierarchies into each other' '
        test_setup_12b1 &&
        (
                cd 12b1 &&
@@ -4272,7 +4273,7 @@ test_setup_12c1 () {
        )
 }
 
-test_expect_failure '12c1: Moving one directory hierarchy into another w/ content merge' '
+test_expect_merge_algorithm failure success '12c1: Moving one directory hierarchy into another w/ content merge' '
        test_setup_12c1 &&
        (
                cd 12c1 &&
@@ -4632,7 +4633,7 @@ test_setup_12f () {
        )
 }
 
-test_expect_failure '12f: Trivial directory resolve, caching, all kinds of fun' '
+test_expect_merge_algorithm failure success '12f: Trivial directory resolve, caching, all kinds of fun' '
        test_setup_12f &&
        (
                cd 12f &&
index 699813671c8c1fb5e1624c46415b44711d44a89f..d7eeee431061c4195b91a86581fd8462551ceb42 100755 (executable)
@@ -23,6 +23,7 @@ test_description="merge cases"
 #                     files that might be renamed into each other's paths.)
 
 . ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-merge.sh
 
 
 ###########################################################################
@@ -666,7 +667,7 @@ test_setup_4a () {
 #   correct requires doing the merge in-memory first, then realizing that no
 #   updates to the file are necessary, and thus that we can just leave the path
 #   alone.
-test_expect_failure '4a: Change on A, change on B subset of A, dirty mods present' '
+test_expect_merge_algorithm failure success '4a: Change on A, change on B subset of A, dirty mods present' '
        test_setup_4a &&
        (
                cd 4a &&
index a328260d4264f84b32bbeab0ee70b620d597af3e..9c08e63af250ddb8eb26d87ac10fafd080750311 100755 (executable)
@@ -3,6 +3,7 @@
 test_description='merge-recursive backend test'
 
 . ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-merge.sh
 
 test_expect_success 'setup 1' '
 
@@ -641,7 +642,7 @@ test_expect_success 'merge-recursive copy vs. rename' '
        test_cmp expected actual
 '
 
-test_expect_failure 'merge-recursive rename vs. rename/symlink' '
+test_expect_merge_algorithm failure success 'merge-recursive rename vs. rename/symlink' '
 
        git checkout -f rename &&
        git merge rename-ln &&