tests: Store only pointers to desired variables in tests attrs 97/145197/5
authorKonrad Kuchciak <k.kuchciak@samsung.com>
Mon, 21 Aug 2017 13:32:08 +0000 (15:32 +0200)
committerKrzysztof Opasiak <k.opasiak@samsung.com>
Wed, 30 Aug 2017 10:41:48 +0000 (12:41 +0200)
Desired variables (especially strings) defined by gcc macro #define
cannot be used by generate_test_attrs function, because an address of
the variable is needed.

Change-Id: Ic0aaf99ea388e73f945681a31413efd3e6f8208a
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
[Rebase onto current head]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
tests/unit/decision_made_event_tests.c
tests/unit/helpers.c
tests/unit/helpers.h

index 851f094bab9aa8676fee3fa4eddfc9239db31a6b..38dd57f5be22708e2788da453ebe6739ef07aa47 100644 (file)
@@ -5,12 +5,6 @@
 
 DECLARE_TEST_ENTRY_POINT(TESTED_MOD, dm_event_serialize, void);
 
-#define KEY1 "somekey"
-#define VAL1 "value"
-
-#define KEY2 "somekey2"
-#define VAL2 "value2"
-
 static struct faultd_event *alloc_event()
 {
        struct decision_made_event *dm_ev;
@@ -28,8 +22,7 @@ static struct faultd_event *alloc_event()
        dm_ev->action = generate_string(STR_SIZE);
 
        faultd_object_new(&dm_ev->action_data);
-       faultd_object_append_string(dm_ev->action_data, KEY1, VAL1);
-       faultd_object_append_string(dm_ev->action_data, KEY2, VAL2);
+       faultd_object_append_string(dm_ev->action_data, DM_EV_ACTION, dm_ev->action);
 
        return &dm_ev->event;
 }
@@ -38,15 +31,14 @@ static void generate_test_attrs(struct serialize_test_data *td)
 {
        struct decision_made_event *dm_ev = to_decision_made_event(td->ev);
        struct serialized_element action_data[] = {
-               S_ELEMENT(KEY1, TYPE_STRING, VAL1),
-               S_ELEMENT(KEY2, TYPE_STRING, VAL2)
+               S_ELEMENT(DM_EV_ACTION, TYPE_STRING, &dm_ev->action)
        };
 
        struct serialized_element serialized_attrs[] = {
                S_ELEMENT_EVENT(dm_ev->event),
                S_ELEMENT(DM_EV_REASON, TYPE_OID, &dm_ev->reason->oid),
-               S_ELEMENT(DM_EV_WHO, TYPE_STRING, dm_ev->who_made),
-               S_ELEMENT(DM_EV_ACTION, TYPE_STRING, dm_ev->action),
+               S_ELEMENT(DM_EV_WHO, TYPE_STRING, &dm_ev->who_made),
+               S_ELEMENT(DM_EV_ACTION, TYPE_STRING, &dm_ev->action),
                S_ELEMENT_OBJ(DM_EV_ACTION_DATA, dm_ev->action_data,
                                          action_data, ARRAY_SIZE(action_data))
        };
index bce40e9272ad522fa9a8eae282ec4cd2d20f53ec..b513969a3b0e8362fa20cfcd4e7434686150e221 100644 (file)
@@ -13,7 +13,7 @@ void test_serialization(struct serialized_element *data, int size, struct faultd
                        case TYPE_STRING:
                                {
                                        GET_FAULTD_OBJECT_VAL(char*, val, parent, data[i].key, data[i].type);
-                                       assert_string_equal(val, data[i].desired);
+                                       assert_string_equal(val, *(char**)data[i].desired);
                                        break;
                                }
                        case TYPE_INT:
index 7d3a7f19f62b917094959d5246ffb073a658aaef..a1e8e6fffb590649d7a5dca1b117073c72615e67 100644 (file)
 
 #define S_ELEMENT_EVENT(EV) \
        S_ELEMENT(EV_BOOT_ID, TYPE_UUID, &EV.boot_id), \
-       S_ELEMENT(EV_TYPE_NAME, TYPE_STRING, EV.type->name), \
+       S_ELEMENT(EV_TYPE_NAME, TYPE_STRING, &EV.type->name), \
        S_ELEMENT(EV_TIMESTAMP, TYPE_TIMESPEC, &EV.timestamp)
 
 #define S_ELEMENT_SERVICE(srv) \
        S_ELEMENT(SYSD_SERVICE_DBUS_PATH, TYPE_STRING, \
-                         srv.dbus_path), \
+                         &srv.dbus_path), \
        S_ELEMENT(SYSD_SERVICE_SERVICE_TYPE, TYPE_STRING, \
-                         srv.service_type), \
+                         &srv.service_type), \
        S_ELEMENT(SYSD_SERVICE_RECOVERY_UNIT, TYPE_STRING, \
-                         srv.recovery_unit)
+                         &srv.recovery_unit)
 
 #define S_ELEMENT_OBJ(KEY, DESIRED, CHILD, CHILDREN_NUM) { \
        _S_ELEMENT(KEY, TYPE_OBJECT, DESIRED), \