tests: Add missing serialization tests 42/147242/5
authorKonrad Kuchciak <k.kuchciak@samsung.com>
Fri, 1 Sep 2017 13:38:31 +0000 (15:38 +0200)
committerKonrad Kuchciak <k.kuchciak@samsung.com>
Tue, 5 Sep 2017 13:34:11 +0000 (15:34 +0200)
Added tests for:
* action_executed_event
* faultd_started_event

Change-Id: I2c05bfe580e1ba7355268d0b8c12c49b55f0f1ec

Makefile.am
src/event_types/action_executed_event.c
src/event_types/faultd_started_event.c
src/event_types/faultd_started_event.h
tests/unit/action_executed_event_tests.c [new file with mode: 0644]
tests/unit/faultd_started_event_tests.c [new file with mode: 0644]

index 409144d268bf6e93ba7fda42277845f86ac95975..284d1e1499bf6c2b3f77dfca6ed03705144863d2 100644 (file)
@@ -189,7 +189,9 @@ test_CFLAGS = -I${top_srcdir}/src/util \
 
 test_SOURCES = \
     tests/unit/ejdb_tests.c \
+    tests/unit/action_executed_event_tests.c \
     tests/unit/decision_made_event_tests.c \
+    tests/unit/faultd_started_event_tests.c \
     tests/unit/resource_violation_event_tests.c \
     tests/unit/service_failed_event_tests.c \
     tests/unit/system_booted_event_tests.c \
@@ -206,7 +208,9 @@ test_SOURCES = \
     src/util/log.c \
     src/util/common.c \
     src/database/ejdb.c \
+    src/event_types/action_executed_event.c \
     src/event_types/decision_made_event.c \
+    src/event_types/faultd_started_event.c \
     src/event_types/resource_violation_event.c \
     src/event_types/service_failed_event.c \
     src/event_types/system_booted_event.c
index 96827a82e0229c58adcac7d1c8b583b7345e0a26..9886983e0c95b4fca03be33ba3a5553d24b76151 100644 (file)
@@ -116,6 +116,7 @@ static void ae_event_serialize(struct faultd_event *ev, struct faultd_object *ou
        faultd_object_append_object(out, AE_EV_ACTION_LOG, ae_ev->action_log);
        faultd_object_append_int(out, AE_EV_RESULT, ae_ev->result);
 }
+TEST_ENTRY_POINT(ae_event_serialize);
 
 static struct faultd_event_type action_executed_event_type = {
        .name = ACTION_EXECUTED_EVENT_ID,
index 9ed21b1837b3d45d365385142b87814ca830fe0c..cd9cd22adef44c53b25dd8b1134571c976001bec 100644 (file)
@@ -1,9 +1,6 @@
 #include <errno.h>
 #include <systemd/sd-id128.h>
 
-#include "event.h"
-#include "module.h"
-#include "common.h"
 #include "faultd_started_event.h"
 
 static int fs_event_allocate(struct faultd_event_type *type,
@@ -54,6 +51,7 @@ static void fs_event_serialize(struct faultd_event *ev, struct faultd_object *ou
 {
        faultd_event_serialize_internal(ev, out);
 }
+TEST_ENTRY_POINT(fs_event_serialize);
 
 static struct faultd_event_type faultd_started_event_type = {
        .name = FAULTD_STARTED_EVENT_ID,
index b685b8030d017bd56e53d139b2bd53a412f33302..25aa21ed9bf9ad3525928ab8a833fa7e6a0c6ae3 100644 (file)
 #ifndef _FAULTD_FAULTD_STARTED_EVENT_H
 #define _FAULTD_FAULTD_STARTED_EVENT_H
 
+#include "event.h"
+#include "module.h"
+#include "common.h"
+
 #define FAULTD_STARTED_EVENT_ID "faultd_started"
 
 struct faultd_started_event {
diff --git a/tests/unit/action_executed_event_tests.c b/tests/unit/action_executed_event_tests.c
new file mode 100644 (file)
index 0000000..9caa4f6
--- /dev/null
@@ -0,0 +1,81 @@
+#include "action_executed_event.h"
+#include "helpers.h"
+
+#define TESTED_MOD action_executed_event
+
+DECLARE_TEST_ENTRY_POINT(TESTED_MOD, ae_event_serialize, void);
+
+static struct faultd_event *alloc_event()
+{
+       struct action_executed_event *ae_ev;
+
+       ae_ev = calloc(1, sizeof(*ae_ev));
+       assert_non_null(ae_ev);
+
+       fill_event(&ae_ev->event);
+
+       ae_ev->reason = calloc(1, sizeof(*(ae_ev->reason)));
+       assert_non_null(ae_ev->reason);
+
+       ae_ev->reason->oid = generate_oid();
+       ae_ev->action = generate_string(STR_SIZE);
+       ae_ev->action_impl = generate_string(STR_SIZE);
+
+       faultd_object_new(&ae_ev->action_log);
+       faultd_object_append_string(ae_ev->action_log, AE_EV_ACTION, ae_ev->action);
+
+       ae_ev->result = generate_int();
+
+       return &ae_ev->event;
+}
+
+static void generate_test_attrs(struct serialize_test_data *td)
+{
+       struct action_executed_event *ae_ev = to_action_executed_event(td->ev);
+       struct serialized_element action_log[] = {
+               S_ELEMENT(AE_EV_ACTION, TYPE_STRING, &ae_ev->action)
+       };
+
+       struct serialized_element serialized_attrs[] = {
+               S_ELEMENT_EVENT(ae_ev->event),
+               S_ELEMENT(AE_EV_REASON, TYPE_OID, &ae_ev->reason->oid),
+               S_ELEMENT(AE_EV_ACTION, TYPE_STRING, &ae_ev->action),
+               S_ELEMENT(AE_EV_ACTION_IMPL, TYPE_STRING, &ae_ev->action_impl),
+               S_ELEMENT_OBJ(AE_EV_ACTION_LOG, ae_ev->action_log,
+                                         action_log, ARRAY_SIZE(action_log)),
+               S_ELEMENT(AE_EV_RESULT, TYPE_INT, &ae_ev->result),
+       };
+
+       td->test_data = serialized_elems_dup(serialized_attrs,
+                                                                                ARRAY_SIZE(serialized_attrs));
+       td->size = ARRAY_SIZE(serialized_attrs);
+}
+
+static int setup(void **state)
+{
+       return setup_event_serialization(state, alloc_event, generate_test_attrs,
+                                                                        (serialize_func_t)CALL_TEST_ENTRY_POINT(
+                                                                                TESTED_MOD, ae_event_serialize),
+                                                                        NULL);
+}
+
+static int teardown(void **state)
+{
+       struct serialize_test_data *td = *state;
+       struct action_executed_event *ae_ev = to_action_executed_event(td->ev);
+
+       faultd_object_unref(ae_ev->action_log);
+       free_event(&ae_ev->event);
+       free(ae_ev->action);
+       free(ae_ev->action_impl);
+       free(ae_ev->reason);
+       free(ae_ev);
+       free_test_data(td);
+
+       return 0;
+}
+
+FAULTD_TEST_GROUP(
+       FAULTD_TEST_CASE_NST("ae_ev_serialize_test", test_event_serialization,
+                                                setup, teardown)
+)
diff --git a/tests/unit/faultd_started_event_tests.c b/tests/unit/faultd_started_event_tests.c
new file mode 100644 (file)
index 0000000..0822e97
--- /dev/null
@@ -0,0 +1,56 @@
+#include "faultd_started_event.h"
+#include "helpers.h"
+
+#define TESTED_MOD faultd_started_event
+
+DECLARE_TEST_ENTRY_POINT(TESTED_MOD, fs_event_serialize, void);
+
+static struct faultd_event *alloc_event()
+{
+       struct faultd_started_event *fs_ev;
+
+       fs_ev = calloc(1, sizeof(*fs_ev));
+       assert_non_null(fs_ev);
+
+       fill_event(&fs_ev->event);
+
+       return &fs_ev->event;
+}
+
+static void generate_test_attrs(struct serialize_test_data *td)
+{
+       struct faultd_started_event *fs_ev = to_faultd_started_event(td->ev);
+
+       struct serialized_element serialized_attrs[] = {
+               S_ELEMENT_EVENT(fs_ev->event),
+       };
+
+       td->test_data = serialized_elems_dup(serialized_attrs,
+                                                                                ARRAY_SIZE(serialized_attrs));
+       td->size = ARRAY_SIZE(serialized_attrs);
+}
+
+static int setup(void **state)
+{
+       return setup_event_serialization(state, alloc_event, generate_test_attrs,
+                                                                        (serialize_func_t)CALL_TEST_ENTRY_POINT(
+                                                                                TESTED_MOD, fs_event_serialize),
+                                                                        NULL);
+}
+
+static int teardown(void **state)
+{
+       struct serialize_test_data *td = *state;
+       struct faultd_started_event *fs_ev = to_faultd_started_event(td->ev);
+
+       free_event(&fs_ev->event);
+       free(fs_ev);
+       free_test_data(td);
+
+       return 0;
+}
+
+FAULTD_TEST_GROUP(
+       FAULTD_TEST_CASE_NST("fs_ev_serialize_test", test_event_serialization,
+                                                setup, teardown)
+)