git_merge_file_from_index: add unit test for deleted/added file

This commit is contained in:
Edmundo Carmona Antoranz
2025-06-14 19:45:33 +02:00
parent ba62ad3497
commit 0370375c06

View File

@@ -175,6 +175,52 @@ void test_merge_files__automerge_from_index(void)
git_merge_file_result_free(&result);
}
void test_merge_files__automerge_from_index_delete_file(void)
{
git_merge_file_result result = {0};
git_index_entry ancestor, theirs, *ours = NULL;
git_oid_from_string(&ancestor.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1);
ancestor.path = "automergeable.txt";
ancestor.mode = GIT_FILEMODE_BLOB;
git_oid_from_string(&theirs.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1);
theirs.path = "automergeable.txt";
theirs.mode = GIT_FILEMODE_BLOB;
cl_git_pass(git_merge_file_from_index(&result, repo,
&ancestor, ours, &theirs, 0));
cl_assert_equal_i(1, result.automergeable);
cl_assert_equal_s(NULL, result.path);
cl_assert_equal_i(GIT_FILEMODE_UNREADABLE, result.mode);
cl_assert_equal_i(0, result.len);
git_merge_file_result_free(&result);
}
void test_merge_files__automerge_from_index_add_file(void)
{
git_merge_file_result result = {0};
git_index_entry *ancestor=NULL, ours, *theirs=NULL;
git_oid_from_string(&ours.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1);
ours.path = "automergeable.txt";
ours.mode = GIT_FILEMODE_BLOB;
cl_git_pass(git_merge_file_from_index(&result, repo,
ancestor, &ours, theirs, 0));
cl_assert_equal_i(1, result.automergeable);
cl_assert_equal_s("automergeable.txt", result.path);
cl_assert_equal_i(GIT_FILEMODE_BLOB, result.mode);
git_merge_file_result_free(&result);
}
void test_merge_files__automerge_whitespace_eol(void)
{
git_merge_file_input ancestor = GIT_MERGE_FILE_INPUT_INIT,