From c6bda70d6131b5e8cd760ad690fae001d1765547 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Fri, 4 Mar 2016 20:08:30 +0100 Subject: tests: Add a unit test for the external groups resolution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a test that tests a complex nested group hierarchy. Also defines the talloc chunk for group members to 1 to make sure the realloc branch is always tested. Unit test for: https://fedorahosted.org/sssd/ticket/2522 Reviewed-by: Pavel Březina --- src/providers/ldap/sdap_async_nested_groups.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/providers') diff --git a/src/providers/ldap/sdap_async_nested_groups.c b/src/providers/ldap/sdap_async_nested_groups.c index f0d04fa09..e32c06a14 100644 --- a/src/providers/ldap/sdap_async_nested_groups.c +++ b/src/providers/ldap/sdap_async_nested_groups.c @@ -56,7 +56,9 @@ struct sdap_nested_group_member { const char *group_filter; }; -const size_t external_members_chunk = 16; +#ifndef EXTERNAL_MEMBERS_CHUNK +#define EXTERNAL_MEMBERS_CHUNK 16 +#endif /* EXTERNAL_MEMBERS_CHUNK */ struct sdap_external_missing_member { const char **parent_group_dns; @@ -341,7 +343,7 @@ static errno_t sdap_nested_group_external_add(hash_table_t *table, } ext_mem->parent_group_dns = talloc_zero_array(ext_mem, const char *, - external_members_chunk); + EXTERNAL_MEMBERS_CHUNK); if (ext_mem->parent_group_dns == NULL) { talloc_free(ext_mem); return ENOMEM; @@ -363,7 +365,7 @@ static errno_t sdap_nested_group_external_add(hash_table_t *table, ext_mem->parent_group_dns, const char *, ext_mem->parent_dn_idx + \ - external_members_chunk); + EXTERNAL_MEMBERS_CHUNK); if (ext_mem->parent_group_dns == NULL) { talloc_free(ext_mem); return ENOMEM; @@ -2608,7 +2610,7 @@ sdap_nested_group_lookup_external_done(struct tevent_req *subreq) &member); talloc_free(subreq); if (ret == EOK) { - DEBUG(SSSDBG_TRACE_FUNC, "Refreshing member %lu\n", state->eniter); + DEBUG(SSSDBG_TRACE_FUNC, "Refreshed member %lu\n", state->eniter); state->ext_members[state->eniter].missing_mem = \ state->entries[state->eniter].value.ptr; state->ext_members[state->eniter].dom = member_dom; -- cgit