mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 20:33:41 +00:00
index: add tests around case switching
We were missing tests for switching the case-sensitivity of an index in-memory and then looking up entries in it.
This commit is contained in:
parent
ac02a69470
commit
c232d6c32d
@ -239,6 +239,7 @@ void test_index_filemodes__invalid(void)
|
||||
|
||||
cl_git_pass(git_repository_index(&index, g_repo));
|
||||
|
||||
GIT_IDXENTRY_STAGE_SET(&entry, 0);
|
||||
entry.path = "foo";
|
||||
entry.mode = GIT_OBJ_BLOB;
|
||||
cl_git_fail(git_index_add(index, &entry));
|
||||
|
@ -792,10 +792,43 @@ void test_index_tests__reload_while_ignoring_case(void)
|
||||
cl_git_pass(git_index_set_caps(index, caps &= ~GIT_INDEXCAP_IGNORE_CASE));
|
||||
cl_git_pass(git_index_read(index, true));
|
||||
cl_git_pass(git_vector_verify_sorted(&index->entries));
|
||||
cl_assert(git_index_get_bypath(index, ".HEADER", 0));
|
||||
cl_assert_equal_p(NULL, git_index_get_bypath(index, ".header", 0));
|
||||
|
||||
cl_git_pass(git_index_set_caps(index, caps | GIT_INDEXCAP_IGNORE_CASE));
|
||||
cl_git_pass(git_index_read(index, true));
|
||||
cl_git_pass(git_vector_verify_sorted(&index->entries));
|
||||
cl_assert(git_index_get_bypath(index, ".HEADER", 0));
|
||||
cl_assert(git_index_get_bypath(index, ".header", 0));
|
||||
|
||||
git_index_free(index);
|
||||
}
|
||||
|
||||
void test_index_tests__change_icase_on_instance(void)
|
||||
{
|
||||
git_index *index;
|
||||
unsigned int caps;
|
||||
const git_index_entry *e;
|
||||
|
||||
cl_git_pass(git_index_open(&index, TEST_INDEX_PATH));
|
||||
cl_git_pass(git_vector_verify_sorted(&index->entries));
|
||||
|
||||
caps = git_index_caps(index);
|
||||
cl_git_pass(git_index_set_caps(index, caps &= ~GIT_INDEXCAP_IGNORE_CASE));
|
||||
cl_assert_equal_i(false, index->ignore_case);
|
||||
cl_git_pass(git_vector_verify_sorted(&index->entries));
|
||||
cl_assert(e = git_index_get_bypath(index, "src/common.h", 0));
|
||||
cl_assert_equal_p(NULL, e = git_index_get_bypath(index, "SRC/Common.h", 0));
|
||||
cl_assert(e = git_index_get_bypath(index, "COPYING", 0));
|
||||
cl_assert_equal_p(NULL, e = git_index_get_bypath(index, "copying", 0));
|
||||
|
||||
cl_git_pass(git_index_set_caps(index, caps | GIT_INDEXCAP_IGNORE_CASE));
|
||||
cl_assert_equal_i(true, index->ignore_case);
|
||||
cl_git_pass(git_vector_verify_sorted(&index->entries));
|
||||
cl_assert(e = git_index_get_bypath(index, "COPYING", 0));
|
||||
cl_assert_equal_s("COPYING", e->path);
|
||||
cl_assert(e = git_index_get_bypath(index, "copying", 0));
|
||||
cl_assert_equal_s("COPYING", e->path);
|
||||
|
||||
git_index_free(index);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user