summaryrefslogtreecommitdiffstats
path: root/src/tests/cmocka
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2013-11-07 11:08:29 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-11-15 20:38:08 +0100
commit32b976eb666044d106dd85e27f8d0bb1d7b6cd6c (patch)
tree0b568fbb44ba3a02cb9ecaaae3229e10046a999c /src/tests/cmocka
parentde38d860e39585486e3ccbb42555196e319c7efd (diff)
downloadsssd-32b976eb666044d106dd85e27f8d0bb1d7b6cd6c.tar.gz
sssd-32b976eb666044d106dd85e27f8d0bb1d7b6cd6c.tar.xz
sssd-32b976eb666044d106dd85e27f8d0bb1d7b6cd6c.zip
nss-srv-tests: check packet status
Besides checking the content of output packets it might also be useful to check the status. This is e.g. important if no results are expected and the status should be set to ENOENT and not to any other error code.
Diffstat (limited to 'src/tests/cmocka')
-rw-r--r--src/tests/cmocka/test_nss_srv.c64
1 files changed, 50 insertions, 14 deletions
diff --git a/src/tests/cmocka/test_nss_srv.c b/src/tests/cmocka/test_nss_srv.c
index 741d6c581..b5b4565e9 100644
--- a/src/tests/cmocka/test_nss_srv.c
+++ b/src/tests/cmocka/test_nss_srv.c
@@ -96,7 +96,7 @@ void __wrap_sss_packet_get_body(struct sss_packet *packet,
}
/* Mock returning result to client. Terminate the unit test instead. */
-typedef int (*cmd_cb_fn_t)(uint8_t *, size_t );
+typedef int (*cmd_cb_fn_t)(uint32_t, uint8_t *, size_t );
static void set_cmd_cb(cmd_cb_fn_t fn)
{
@@ -114,7 +114,8 @@ void __wrap_sss_cmd_done(struct cli_ctx *cctx, void *freectx)
__real_sss_packet_get_body(packet, &body, &blen);
- nss_test_ctx->tctx->error = check_cb(body, blen);
+ nss_test_ctx->tctx->error = check_cb(sss_packet_get_status(packet),
+ body, blen);
nss_test_ctx->tctx->done = true;
}
@@ -248,11 +249,13 @@ static int parse_group_packet(uint8_t *body, size_t blen, struct group *gr, uint
* not be called and test_nss_getpwnam_check will make sure the user is
* the same as the test entered before starting
*/
-static int test_nss_getpwnam_check(uint8_t *body, size_t blen)
+static int test_nss_getpwnam_check(uint32_t status, uint8_t *body, size_t blen)
{
struct passwd pwd;
errno_t ret;
+ assert_int_equal(status, EOK);
+
ret = parse_user_packet(body, blen, &pwd);
assert_int_equal(ret, EOK);
@@ -343,11 +346,14 @@ static int test_nss_getpwnam_search_acct_cb(void *pvt)
return EOK;
}
-static int test_nss_getpwnam_search_check(uint8_t *body, size_t blen)
+static int test_nss_getpwnam_search_check(uint32_t status,
+ uint8_t *body, size_t blen)
{
struct passwd pwd;
errno_t ret;
+ assert_int_equal(status, EOK);
+
ret = parse_user_packet(body, blen, &pwd);
assert_int_equal(ret, EOK);
@@ -408,11 +414,14 @@ static int test_nss_getpwnam_update_acct_cb(void *pvt)
return EOK;
}
-static int test_nss_getpwnam_update_check(uint8_t *body, size_t blen)
+static int test_nss_getpwnam_update_check(uint32_t status,
+ uint8_t *body, size_t blen)
{
struct passwd pwd;
errno_t ret;
+ assert_int_equal(status, EOK);
+
ret = parse_user_packet(body, blen, &pwd);
assert_int_equal(ret, EOK);
@@ -469,11 +478,14 @@ void test_nss_getpwnam_update(void **state)
/* Check that a FQDN is returned if the domain is FQDN-only and a
* FQDN is requested
*/
-static int test_nss_getpwnam_check_fqdn(uint8_t *body, size_t blen)
+static int test_nss_getpwnam_check_fqdn(uint32_t status,
+ uint8_t *body, size_t blen)
{
struct passwd pwd;
errno_t ret;
+ assert_int_equal(status, EOK);
+
nss_test_ctx->cctx->rctx->domains[0].fqnames = false;
ret = parse_user_packet(body, blen, &pwd);
@@ -517,11 +529,14 @@ void test_nss_getpwnam_fqdn(void **state)
* Check that FQDN processing is able to handle arbitrarily sized
* delimeter
*/
-static int test_nss_getpwnam_check_resize_fqdn(uint8_t *body, size_t blen)
+static int test_nss_getpwnam_check_resize_fqdn(uint32_t status,
+ uint8_t *body, size_t blen)
{
struct passwd pwd;
errno_t ret;
+ assert_int_equal(status, EOK);
+
nss_test_ctx->cctx->rctx->domains[0].fqnames = false;
ret = parse_user_packet(body, blen, &pwd);
@@ -613,7 +628,8 @@ static int test_nss_getgrnam_check(struct group *expected, struct group *gr, con
return EOK;
}
-static int test_nss_getgrnam_no_members_check(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_no_members_check(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -625,6 +641,8 @@ static int test_nss_getgrnam_no_members_check(uint8_t *body, size_t blen)
.gr_mem = NULL,
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 0);
@@ -663,7 +681,8 @@ void test_nss_getgrnam_no_members(void **state)
assert_int_equal(ret, EOK);
}
-static int test_nss_getgrnam_members_check(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_members_check(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -676,6 +695,8 @@ static int test_nss_getgrnam_members_check(uint8_t *body, size_t blen)
.gr_mem = discard_const(exp_members)
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 2);
@@ -736,7 +757,8 @@ void test_nss_getgrnam_members(void **state)
assert_int_equal(ret, EOK);
}
-static int test_nss_getgrnam_members_check_fqdn(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_members_check_fqdn(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -750,6 +772,8 @@ static int test_nss_getgrnam_members_check_fqdn(uint8_t *body, size_t blen)
.gr_mem = discard_const(exp_members)
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 2);
@@ -787,7 +811,8 @@ void test_nss_getgrnam_members_fqdn(void **state)
assert_int_equal(ret, EOK);
}
-static int test_nss_getgrnam_members_check_subdom(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_members_check_subdom(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -801,6 +826,8 @@ static int test_nss_getgrnam_members_check_subdom(uint8_t *body, size_t blen)
.gr_mem = discard_const(exp_members)
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 2);
@@ -872,7 +899,8 @@ void test_nss_getgrnam_members_subdom(void **state)
assert_int_equal(ret, EOK);
}
-static int test_nss_getgrnam_check_mix_dom(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_check_mix_dom(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -887,6 +915,8 @@ static int test_nss_getgrnam_check_mix_dom(uint8_t *body, size_t blen)
.gr_mem = discard_const(exp_members)
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 3);
@@ -931,7 +961,8 @@ void test_nss_getgrnam_mix_dom(void **state)
assert_int_equal(ret, EOK);
}
-static int test_nss_getgrnam_check_mix_dom_fqdn(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_check_mix_dom_fqdn(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -946,6 +977,8 @@ static int test_nss_getgrnam_check_mix_dom_fqdn(uint8_t *body, size_t blen)
.gr_mem = discard_const(exp_members)
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 3);
@@ -980,7 +1013,8 @@ void test_nss_getgrnam_mix_dom_fqdn(void **state)
assert_int_equal(ret, EOK);
}
-static int test_nss_getgrnam_check_mix_subdom(uint8_t *body, size_t blen)
+static int test_nss_getgrnam_check_mix_subdom(uint32_t status,
+ uint8_t *body, size_t blen)
{
int ret;
uint32_t nmem;
@@ -995,6 +1029,8 @@ static int test_nss_getgrnam_check_mix_subdom(uint8_t *body, size_t blen)
.gr_mem = discard_const(exp_members)
};
+ assert_int_equal(status, EOK);
+
ret = parse_group_packet(body, blen, &gr, &nmem);
assert_int_equal(ret, EOK);
assert_int_equal(nmem, 3);