diff options
Diffstat (limited to 'tests-clar/attr/repo.c')
-rw-r--r-- | tests-clar/attr/repo.c | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/tests-clar/attr/repo.c b/tests-clar/attr/repo.c index a88dfb3f9..ca3e71e7f 100644 --- a/tests-clar/attr/repo.c +++ b/tests-clar/attr/repo.c @@ -65,7 +65,7 @@ void test_attr_repo__get_one(void) for (scan = test_cases; scan->path != NULL; scan++) { const char *value; cl_git_pass(git_attr_get(&value, g_repo, 0, scan->path, scan->attr)); - attr_check_expected(scan->expected, scan->expected_str, value); + attr_check_expected(scan->expected, scan->expected_str, scan->attr, value); } cl_assert(git_attr_cache__is_cached(g_repo, 0, ".git/info/attributes")); @@ -113,6 +113,22 @@ static int count_attrs( return 0; } +static int cancel_iteration( + const char *name, + const char *value, + void *payload) +{ + GIT_UNUSED(name); + GIT_UNUSED(value); + + *((int *)payload) -= 1; + + if (*((int *)payload) < 0) + return -1; + + return 0; +} + void test_attr_repo__foreach(void) { int count; @@ -131,6 +147,12 @@ void test_attr_repo__foreach(void) cl_git_pass(git_attr_foreach(g_repo, 0, "sub/subdir_test2.txt", &count_attrs, &count)); cl_assert(count == 6); /* repoattr, rootattr, subattr, reposub, negattr, another */ + + count = 2; + cl_assert_equal_i( + GIT_EUSER, git_attr_foreach( + g_repo, 0, "sub/subdir_test1", &cancel_iteration, &count) + ); } void test_attr_repo__manpage_example(void) @@ -244,16 +266,15 @@ static void add_to_workdir(const char *filename, const char *content) static void assert_proper_normalization(git_index *index, const char *filename, const char *expected_sha) { - int index_pos; - git_index_entry *entry; + size_t index_pos; + const git_index_entry *entry; add_to_workdir(filename, CONTENT); - cl_git_pass(git_index_add(index, filename, 0)); + cl_git_pass(git_index_add_bypath(index, filename)); - index_pos = git_index_find(index, filename); - cl_assert(index_pos >= 0); + cl_assert(!git_index_find(&index_pos, index, filename)); - entry = git_index_get(index, index_pos); + entry = git_index_get_byindex(index, index_pos); cl_assert_equal_i(0, git_oid_streq(&entry->oid, expected_sha)); } |