summaryrefslogtreecommitdiffstats
path: root/src/tests/cmocka/test_responder_common.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2015-03-29 16:31:19 +0200
committerJakub Hrozek <jhrozek@redhat.com>2015-04-09 08:35:23 +0200
commit0528fdec17d0031996e919fcd852459e86592c35 (patch)
tree1b2e9e3a9406629fb4006acaf51a44d9bad8e4bd /src/tests/cmocka/test_responder_common.c
parent0d19785f9ffd9c66df5b30d208ec7b0216a9555b (diff)
downloadsssd-0528fdec17d0031996e919fcd852459e86592c35.tar.gz
sssd-0528fdec17d0031996e919fcd852459e86592c35.tar.xz
sssd-0528fdec17d0031996e919fcd852459e86592c35.zip
responders: reset ncache after domains are discovered during startup
After responders start, they add a lookup operation that discovers the subdomains so that qualifying users works. After this operation is finishes, we need to reset negcache to allow users to be added into the newly discovered domains. Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/tests/cmocka/test_responder_common.c')
-rw-r--r--src/tests/cmocka/test_responder_common.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/tests/cmocka/test_responder_common.c b/src/tests/cmocka/test_responder_common.c
index 44c93c1d5..0a4d4bb49 100644
--- a/src/tests/cmocka/test_responder_common.c
+++ b/src/tests/cmocka/test_responder_common.c
@@ -266,6 +266,40 @@ void parse_inp_call_neg(void **state)
assert_int_equal(ret, EOK);
}
+struct sss_nc_ctx {
+ struct parse_inp_test_ctx *pctx;
+};
+
+errno_t sss_ncache_reset_repopulate_permanent(struct resp_ctx *rctx,
+ struct sss_nc_ctx *dummy_ncache_ptr)
+{
+ dummy_ncache_ptr->pctx->tctx->error = EOK;
+ dummy_ncache_ptr->pctx->tctx->done = true;
+ return EOK;
+}
+
+void test_schedule_get_domains_task(void **state)
+{
+ struct parse_inp_test_ctx *parse_inp_ctx = talloc_get_type(*state,
+ struct parse_inp_test_ctx);
+ errno_t ret;
+ struct sss_nc_ctx *dummy_ncache_ptr;
+
+ dummy_ncache_ptr = talloc(parse_inp_ctx, struct sss_nc_ctx);
+ assert_non_null(dummy_ncache_ptr);
+ dummy_ncache_ptr->pctx = parse_inp_ctx;
+
+ ret = schedule_get_domains_task(dummy_ncache_ptr,
+ parse_inp_ctx->rctx->ev,
+ parse_inp_ctx->rctx,
+ dummy_ncache_ptr);
+ assert_int_equal(ret, EOK);
+
+ ret = test_ev_loop(parse_inp_ctx->tctx);
+ assert_int_equal(ret, EOK);
+ talloc_free(dummy_ncache_ptr);
+}
+
int main(int argc, const char *argv[])
{
int rv;
@@ -293,6 +327,9 @@ int main(int argc, const char *argv[])
cmocka_unit_test_setup_teardown(parse_inp_call_neg,
parse_inp_test_setup,
parse_inp_test_teardown),
+ cmocka_unit_test_setup_teardown(test_schedule_get_domains_task,
+ parse_inp_test_setup,
+ parse_inp_test_teardown),
};
/* Set debug level to invalid value so we can deside if -d 0 was used. */