This adds a few tests for the new merge-tree-ort command. They have been copy-pasted from t4300-merge-tree.sh, and then the expected output has been adjusted. Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- t/t4310-merge-tree-ort.sh | 162 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100755 t/t4310-merge-tree-ort.sh diff --git a/t/t4310-merge-tree-ort.sh b/t/t4310-merge-tree-ort.sh new file mode 100755 index 0000000000..9a54508e82 --- /dev/null +++ b/t/t4310-merge-tree-ort.sh @@ -0,0 +1,162 @@ +#!/bin/sh +# +# Copyright (c) 2010 Will Palmer +# Copyright (c) 2021 Christian Couder +# + +test_description='git merge-tree-ort' + +TEST_PASSES_SANITIZE_LEAK=true +. ./test-lib.sh + +test_expect_success setup ' + test_commit "initial" "initial-file" "initial" +' + +test_expect_success 'file add A, !B' ' + git reset --hard initial && + test_commit "add-a-not-b" "ONE" "AAA" && + git merge-tree-ort initial initial add-a-not-b >actual && + cat >expected <<EXPECTED && +result tree: ee38e20a5c0e1698539ac99d55616079a04fce26 +clean: 1 +diff with branch1: +:000000 100644 0000000 43d5a8e A ONE + +diff --git a/ONE b/ONE +new file mode 100644 +index 0000000..43d5a8e +--- /dev/null ++++ b/ONE +@@ -0,0 +1 @@ ++AAA +diff with branch2: +diff with base: +:000000 100644 0000000 43d5a8e A ONE + +diff --git a/ONE b/ONE +new file mode 100644 +index 0000000..43d5a8e +--- /dev/null ++++ b/ONE +@@ -0,0 +1 @@ ++AAA +EXPECTED + + test_cmp expected actual +' + +test_expect_success 'file add !A, B' ' + git reset --hard initial && + test_commit "add-not-a-b" "ONE" "AAA" && + git merge-tree-ort initial add-not-a-b initial >actual && + cat >expected <<EXPECTED && +result tree: ee38e20a5c0e1698539ac99d55616079a04fce26 +clean: 1 +diff with branch1: +diff with branch2: +:000000 100644 0000000 43d5a8e A ONE + +diff --git a/ONE b/ONE +new file mode 100644 +index 0000000..43d5a8e +--- /dev/null ++++ b/ONE +@@ -0,0 +1 @@ ++AAA +diff with base: +:000000 100644 0000000 43d5a8e A ONE + +diff --git a/ONE b/ONE +new file mode 100644 +index 0000000..43d5a8e +--- /dev/null ++++ b/ONE +@@ -0,0 +1 @@ ++AAA +EXPECTED + + test_cmp expected actual +' + +test_expect_success 'file add A, B (same)' ' + git reset --hard initial && + test_commit "add-a-b-same-A" "ONE" "AAA" && + git reset --hard initial && + test_commit "add-a-b-same-B" "ONE" "AAA" && + git merge-tree-ort initial add-a-b-same-A add-a-b-same-B >actual && + cat >expected <<EXPECTED && +result tree: ee38e20a5c0e1698539ac99d55616079a04fce26 +clean: 1 +diff with branch1: +diff with branch2: +diff with base: +:000000 100644 0000000 43d5a8e A ONE + +diff --git a/ONE b/ONE +new file mode 100644 +index 0000000..43d5a8e +--- /dev/null ++++ b/ONE +@@ -0,0 +1 @@ ++AAA +EXPECTED + + test_cmp expected actual +' + +test_expect_success 'file add A, B (different)' ' + git reset --hard initial && + test_commit "add-a-b-diff-A" "ONE" "AAA" && + git reset --hard initial && + test_commit "add-a-b-diff-B" "ONE" "BBB" && + git merge-tree-ort initial add-a-b-diff-A add-a-b-diff-B >actual && + cat >expected <<EXPECTED && +result tree: 3aa938e8cc8be73c81cbaf629ea55a16e7c39319 +clean: 0 +diff with branch1: +:100644 100644 43d5a8e 1e462bc M ONE + +diff --git a/ONE b/ONE +index 43d5a8e..1e462bc 100644 +--- a/ONE ++++ b/ONE +@@ -1 +1,5 @@ ++<<<<<<< add-a-b-diff-A + AAA ++======= ++BBB ++>>>>>>> add-a-b-diff-B +diff with branch2: +:100644 100644 ba62923 1e462bc M ONE + +diff --git a/ONE b/ONE +index ba62923..1e462bc 100644 +--- a/ONE ++++ b/ONE +@@ -1 +1,5 @@ ++<<<<<<< add-a-b-diff-A ++AAA ++======= + BBB ++>>>>>>> add-a-b-diff-B +diff with base: +:000000 100644 0000000 1e462bc A ONE + +diff --git a/ONE b/ONE +new file mode 100644 +index 0000000..1e462bc +--- /dev/null ++++ b/ONE +@@ -0,0 +1,5 @@ ++<<<<<<< add-a-b-diff-A ++AAA ++======= ++BBB ++>>>>>>> add-a-b-diff-B +EXPECTED + + test_cmp expected actual +' + +test_done -- 2.34.1.433.g7bc349372a.dirty