Browse Source

t/: new helper for tests that pass with ort but fail with recursive

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>
maint
Elijah Newren 4 years ago committed by Junio C Hamano
parent
commit
f06481f127
  1. 13
      t/lib-merge.sh
  2. 11
      t/t6416-recursive-corner-cases.sh
  3. 7
      t/t6422-merge-rename-corner-cases.sh
  4. 13
      t/t6423-merge-rename-directories.sh
  5. 3
      t/t6426-merge-skip-unneeded-updates.sh
  6. 3
      t/t6430-merge-recursive.sh

13
t/lib-merge.sh

@ -0,0 +1,13 @@ @@ -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
}

11
t/t6416-recursive-corner-cases.sh

@ -3,6 +3,7 @@ @@ -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' ' @@ -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' ' @@ -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' ' @@ -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' ' @@ -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)' ' @@ -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 &&


7
t/t6422-merge-rename-corner-cases.sh

@ -4,6 +4,7 @@ test_description="recursive merge corner cases w/ renames but not criss-crosses" @@ -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 () { @@ -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 () { @@ -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 () { @@ -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 &&

13
t/t6423-merge-rename-directories.sh

@ -26,6 +26,7 @@ test_description="recursive merge with directory renames" @@ -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 () { @@ -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 () { @@ -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 () { @@ -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 () { @@ -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 () { @@ -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 () { @@ -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 &&

3
t/t6426-merge-skip-unneeded-updates.sh

@ -23,6 +23,7 @@ test_description="merge cases" @@ -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 () { @@ -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 &&

3
t/t6430-merge-recursive.sh

@ -3,6 +3,7 @@ @@ -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' ' @@ -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 &&

Loading…
Cancel
Save