tests: Store pointer to generate_test_attrs() in test data structure 73/145473/5
authorKonrad Kuchciak <k.kuchciak@samsung.com>
Tue, 22 Aug 2017 10:08:13 +0000 (12:08 +0200)
committerKonrad Kuchciak <k.kuchciak@samsung.com>
Wed, 30 Aug 2017 11:08:05 +0000 (11:08 +0000)
Deserialization test will need to call generate_test_attrs more than
once, so the function should be accessed from the setup function as
well as from the test function

Change-Id: I65f8273732f90567920b8d9b82acb05496384953
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
tests/unit/helpers.c
tests/unit/helpers.h

index 1eda0d0f1d91c87726cc5561a925ef266da3a835..aecd9c7a42bfef563087bed0c691fe98f1f52b15 100644 (file)
@@ -313,8 +313,7 @@ void serialized_elems_free(struct serialized_element *elems, size_t size)
 
 int setup_event_serialization(void **state,
                                                          struct faultd_event *(*alloc_event)(),
-                                                         void (*generate_attrs)(
-                                                                 struct serialize_test_data *td),
+                                                         generate_attrs_func_t generate_attrs,
                                                          serialize_func_t serialize_func)
 {
        struct serialize_test_data *td;
@@ -331,7 +330,9 @@ int setup_event_serialization(void **state,
 
        generate_attrs(td);
 
-       td->serialize_func =  serialize_func;
+       /* store generate_attrs function pointer for further use */
+       td->generate_attrs_func = generate_attrs;
+       td->serialize_func = serialize_func;
 
        *state = td;
        return 0;
index 48c816564ed558af27261eaf5f9de807444a6454..4fb0db54d17265488093587bab1b541fb777b424 100644 (file)
@@ -75,7 +75,10 @@ sd_id128_t generate_uuid();
 faultd_oid_t generate_oid();
 struct timespec generate_timespec();
 
+struct serialize_test_data;
+
 typedef void (*serialize_func_t)(struct faultd_event *, struct faultd_object *);
+typedef void (*generate_attrs_func_t)(struct serialize_test_data *);
 
 struct serialize_test_data {
        struct faultd_event *ev;
@@ -83,6 +86,7 @@ struct serialize_test_data {
        struct serialized_element *test_data;
        size_t size;
        serialize_func_t serialize_func;
+       generate_attrs_func_t generate_attrs_func;
 };
 
 void test_event_serialization(void **state);
@@ -93,10 +97,9 @@ struct serialized_element *serialized_elems_dup(
 void serialized_elems_free(struct serialized_element *elems, size_t size);
 
 int setup_event_serialization(void **state,
-                                                          struct faultd_event *(*alloc_event)(),
-                                                          void (*generate_attrs)(
-                                                                  struct serialize_test_data *td),
-                                                          serialize_func_t serialize_func);
+                                                         struct faultd_event *(*alloc_event)(),
+                                                         generate_attrs_func_t generate_attrs,
+                                                         serialize_func_t serialize_func);
 
 static inline void fill_event(struct faultd_event *ev)
 {