summaryrefslogtreecommitdiff
path: root/tests/merge/trees
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2018-01-22 23:56:22 +0000
committerEdward Thomson <ethomson@edwardthomson.com>2018-02-04 10:29:41 +0000
commitb8823c2b1c2962edd7b2bf550266d4f136100182 (patch)
treefcbe5be55a7b05ed9231712440da52ad4968d793 /tests/merge/trees
parentafcaf35eda87028705012e9deab75bf282be72f3 (diff)
downloadlibgit2-b8823c2b1c2962edd7b2bf550266d4f136100182.tar.gz
Add failing test case for virtual commit merge base issue
Diffstat (limited to 'tests/merge/trees')
-rw-r--r--tests/merge/trees/recursive.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/merge/trees/recursive.c b/tests/merge/trees/recursive.c
index 78491a17c..71f5af150 100644
--- a/tests/merge/trees/recursive.c
+++ b/tests/merge/trees/recursive.c
@@ -433,3 +433,26 @@ void test_merge_trees_recursive__merge_base_for_virtual_commit(void)
git_index_free(index);
}
+
+/* This test is the same as above, but the graph is constructed such
+ * that the 1st-recursion merge bases of the two heads are
+ * in a different order.
+ */
+void test_merge_trees_recursive__merge_base_for_virtual_commit_2(void)
+{
+ git_index *index;
+ git_merge_options opts = GIT_MERGE_OPTIONS_INIT;
+
+ struct merge_index_entry merge_index_entries[] = {
+ { 0100644, "4a06b258fed8a4d15967ec4253ae7366b70f727d", 0, "targetfile.txt" },
+ { 0100644, "b6bd0f9952f396e757d3f91e08c59a7e91707201", 1, "version.txt" },
+ { 0100644, "f0856993e005c0d8ed2dc7cdc222cc1d89fb3c77", 2, "version.txt" },
+ { 0100644, "2cba583804a4a6fad1baf97c959be447238d1489", 3, "version.txt" },
+ };
+
+ cl_git_pass(merge_commits_from_branches(&index, repo, "branchK-1", "branchK-2", &opts));
+
+ cl_assert(merge_test_index(index, merge_index_entries, 4));
+
+ git_index_free(index);
+}