Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2015-09-06 17:50:22 +0300
committerEdward Thomson <ethomson@edwardthomson.com>2015-09-06 17:50:22 +0300
commit9fd4c9c8679d166e73ca7c5594cd05c693a5ab10 (patch)
tree4dca125a7a1b609621255c6780b00a2830be3f95 /tests/index
parent1cef6b9f190587a78c65bd3168879be3eb37e0fb (diff)
parent81b76367571010aa83a3de38aecfee3c301e888d (diff)
Merge pull request #3366 from libgit2/cmn/index-hashmap
Use a hashmap for path-based lookups in the index
Diffstat (limited to 'tests/index')
-rw-r--r--tests/index/filemodes.c1
-rw-r--r--tests/index/tests.c33
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/index/filemodes.c b/tests/index/filemodes.c
index b3907996b..6442d7755 100644
--- a/tests/index/filemodes.c
+++ b/tests/index/filemodes.c
@@ -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));
diff --git a/tests/index/tests.c b/tests/index/tests.c
index e1ff12ad0..f1a057853 100644
--- a/tests/index/tests.c
+++ b/tests/index/tests.c
@@ -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);
}