[SSSD] [PATCH] RFC: Unit test for the NSS responder based on the cmocka library

Sumit Bose sbose at redhat.com
Wed Mar 6 20:33:12 UTC 2013


On Tue, Mar 05, 2013 at 05:25:45PM +0100, Jakub Hrozek wrote:
> On Fri, Mar 01, 2013 at 02:38:08PM +0100, Pavel Březina wrote:
> 
> > 
> > Create a macro for:
> > *body = (uint8_t *) mock() => mock_as(uint8_t*)
> 
> OK, done.
> 
> New tests attached.

Maybe you can consider the attached patch for inclusion as well? It will
silence a "cast to pointer from integer of different size
[-Wint-to-pointer-cast]" compiler warning.

What do you think of asking upstream if they would like to include

#define mock_type(type) ((type) mock())

and maybe

#define mock_ptr_type(type) ((type) (uintptr_t) mock())

or similar? To avoid conflicts I would recommend to add a prefix, e.g.
sss_mock_type and sss_mock_ptr_type.

bye,
Sumit
-------------- next part --------------
From f2f8bc9f9a9604c288830ed1dbde76449405f593 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Wed, 6 Mar 2013 21:19:54 +0100
Subject: [PATCH] Fix for cast to pointer from integer of different size

---
 src/tests/cmocka/common_mock.h      |    1 +
 src/tests/cmocka/common_mock_resp.c |    4 ++--
 src/tests/cmocka/test_nss_srv.c     |    4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/tests/cmocka/common_mock.h b/src/tests/cmocka/common_mock.h
index fdce3aa..d8a458c 100644
--- a/src/tests/cmocka/common_mock.h
+++ b/src/tests/cmocka/common_mock.h
@@ -44,6 +44,7 @@
 #include "tests/common.h"
 
 #define mock_type(type) ((type) mock())
+#define mock_ptr_type(type) ((type) (uintptr_t) mock())
 
 #endif /* __COMMON_MOCK_H_ */
 
diff --git a/src/tests/cmocka/common_mock_resp.c b/src/tests/cmocka/common_mock_resp.c
index 9700267..6e4cb64 100644
--- a/src/tests/cmocka/common_mock_resp.c
+++ b/src/tests/cmocka/common_mock_resp.c
@@ -97,9 +97,9 @@ sss_dp_get_account_recv(TALLOC_CTX *mem_ctx,
     *dp_ret = mock_type(dbus_uint32_t);
     *dp_ret = mock_type(dbus_uint32_t);
 
-    cb = mock_type(acct_cb_t);
+    cb = mock_ptr_type(acct_cb_t);
     if (cb) {
-        (cb)(mock_type(void *));
+        (cb)(mock_ptr_type(void *));
     }
 
     return test_request_recv(req);
diff --git a/src/tests/cmocka/test_nss_srv.c b/src/tests/cmocka/test_nss_srv.c
index 1a1317d..862b39f 100644
--- a/src/tests/cmocka/test_nss_srv.c
+++ b/src/tests/cmocka/test_nss_srv.c
@@ -87,7 +87,7 @@ void __wrap_sss_packet_get_body(struct sss_packet *packet,
         return __real_sss_packet_get_body(packet, body, blen);
     }
 
-    *body = mock_type(uint8_t *);
+    *body = mock_ptr_type(uint8_t *);
     *blen = strlen((const char *) *body)+1;
     return;
 }
@@ -107,7 +107,7 @@ void __wrap_sss_cmd_done(struct cli_ctx *cctx, void *freectx)
     size_t blen;
     cmd_cb_fn_t check_cb;
 
-    check_cb = mock_type(cmd_cb_fn_t);
+    check_cb = mock_ptr_type(cmd_cb_fn_t);
 
     __real_sss_packet_get_body(packet, &body, &blen);
 
-- 
1.7.7.6



More information about the sssd-devel mailing list