test: Check for isds_init() failure in tests
[libisds.git] / test / offline / isds-eventstring2event.c
blobc28c39b9f9424141bcd942bca3c380cda6e557cb
1 #include "../test.h"
2 #include "isds.c"
4 static int test_eventstring2event(const xmlChar *string, isds_error error,
5 const struct isds_event *correct_event, struct isds_event *new_event) {
6 isds_error err;
8 err = eventstring2event(string, new_event);
10 if (error != err)
11 FAIL_TEST("eventstring2event() returned wrong error code: "
12 "expected=%s, got=%s",
13 isds_strerror(error), isds_strerror(err));
14 if (err != IE_SUCCESS)
15 PASS_TEST;
17 if (new_event && correct_event) {
18 if (!correct_event->time && new_event->time)
19 FAIL_TEST("Returned event time is not NULL as expected");
20 if (correct_event->time) {
21 if (!new_event->time)
22 FAIL_TEST("Returned event time is NULL as not expected");
23 if (correct_event->time->tv_sec != new_event->time->tv_sec)
24 FAIL_TEST("Returned event time differs in tv_sec: "
25 "expected=%d, got=%d",
26 correct_event->time->tv_sec, new_event->time->tv_sec);
27 if (correct_event->time->tv_usec != new_event->time->tv_usec)
28 FAIL_TEST("Returned event time differs in tv_usec: "
29 "expected=%d, got=%d",
30 correct_event->time->tv_usec, new_event->time->tv_usec);
33 if (!correct_event->type && new_event->type)
34 FAIL_TEST("Returned event type is not NULL as expected");
35 if (correct_event->type) {
36 if (!new_event->type)
37 FAIL_TEST("Returned event type is NULL as not expected");
38 if (*correct_event->type != *new_event->type)
39 FAIL_TEST("Returned wrong event type: expected=%d, got=%d",
40 *correct_event->type, *new_event->type);
43 if (!correct_event->description && new_event->description)
44 FAIL_TEST("Returned event description is not NUTLL as expected");
45 if (correct_event->description) {
46 if (!new_event->description)
47 FAIL_TEST("Returned event description is NULL as "
48 "not expected");
49 if (strcmp(correct_event->description, new_event->description))
50 FAIL_TEST("Returned wrong event description: "
51 "expected=`%s', got=`%s'",
52 correct_event->description, new_event->description);
56 PASS_TEST;
60 int main(int argc, char **argv) {
61 INIT_TEST("eventstring to event conversion");
63 xmlChar *input = NULL;
64 isds_event_type event_type;
65 struct isds_event event;
66 struct isds_event output = {
67 .time = NULL, .type = NULL, .description = NULL
71 if (isds_init())
72 ABORT_UNIT("isds_init() failed\n");
74 /* Known event prefixes */
75 input = BAD_CAST "EV0: some text";
76 event.time = NULL;
77 event_type = EVENT_ENTERED_SYSTEM;
78 event.type = &event_type;
79 event.description = "some text";
80 TEST((char*)input, test_eventstring2event, input,
81 IE_SUCCESS, &event, &output);
83 input = BAD_CAST "EV1: some text";
84 event.time = NULL;
85 event_type = EVENT_ACCEPTED_BY_RECIPIENT;
86 event.type = &event_type;
87 event.description = "some text";
88 TEST((char*)input, test_eventstring2event, input,
89 IE_SUCCESS, &event, &output);
91 input = BAD_CAST "EV2: some text";
92 event.time = NULL;
93 event_type = EVENT_ACCEPTED_BY_FICTION;
94 event.type = &event_type;
95 event.description = "some text";
96 TEST((char*)input, test_eventstring2event, input,
97 IE_SUCCESS, &event, &output);
99 input = BAD_CAST "EV3: some text";
100 event.time = NULL;
101 event_type = EVENT_UNDELIVERABLE;
102 event.type = &event_type;
103 event.description = "some text";
104 TEST((char*)input, test_eventstring2event, input,
105 IE_SUCCESS, &event, &output);
107 input = BAD_CAST "EV4: some text";
108 event.time = NULL;
109 event_type = EVENT_COMMERCIAL_ACCEPTED;
110 event.type = &event_type;
111 event.description = "some text";
112 TEST((char*)input, test_eventstring2event, input,
113 IE_SUCCESS, &event, &output);
115 input = BAD_CAST "EV5: some text";
116 event.time = NULL;
117 event_type = EVENT_DELIVERED;
118 event.type = &event_type;
119 event.description = "some text";
120 TEST((char*)input, test_eventstring2event, input,
121 IE_SUCCESS, &event, &output);
123 input = BAD_CAST "EV11: some text";
124 event.time = NULL;
125 event_type = EVENT_PRIMARY_LOGIN;
126 event.type = &event_type;
127 event.description = "some text";
128 TEST((char*)input, test_eventstring2event, input,
129 IE_SUCCESS, &event, &output);
131 input = BAD_CAST "EV12: some text";
132 event.time = NULL;
133 event_type = EVENT_ENTRUSTED_LOGIN;
134 event.type = &event_type;
135 event.description = "some text";
136 TEST((char*)input, test_eventstring2event, input,
137 IE_SUCCESS, &event, &output);
139 input = BAD_CAST "EV13: some text";
140 event.time = NULL;
141 event_type = EVENT_SYSCERT_LOGIN;
142 event.type = &event_type;
143 event.description = "some text";
144 TEST((char*)input, test_eventstring2event, input,
145 IE_SUCCESS, &event, &output);
147 /* Unknown event prefixes */
148 input = BAD_CAST "EV-1: unknown event";
149 event.time = NULL;
150 event_type = EVENT_UKNOWN;
151 event.type = &event_type;
152 event.description = (char *) input;
153 TEST((char*)input, test_eventstring2event, input,
154 IE_SUCCESS, &event, &output);
156 input = BAD_CAST "EV6: intermediate undefined event";
157 event.time = NULL;
158 event_type = EVENT_UKNOWN;
159 event.type = &event_type;
160 event.description = (char *) input;
161 TEST((char*)input, test_eventstring2event, input,
162 IE_SUCCESS, &event, &output);
164 input = BAD_CAST "EV10: intermediate undefined event";
165 event.time = NULL;
166 event_type = EVENT_UKNOWN;
167 event.type = &event_type;
168 event.description = (char *) input;
169 TEST((char*)input, test_eventstring2event, input,
170 IE_SUCCESS, &event, &output);
172 input = BAD_CAST "EV14: out of range event";
173 event.time = NULL;
174 event_type = EVENT_UKNOWN;
175 event.type = &event_type;
176 event.description = (char *) input;
177 TEST((char*)input, test_eventstring2event, input,
178 IE_SUCCESS, &event, &output);
180 /* Other valid cases */
181 event.time = NULL;
182 event_type = EVENT_UKNOWN;
183 event.type = &event_type;
184 event.description = "";
185 TEST("Empty input", test_eventstring2event, BAD_CAST "",
186 IE_SUCCESS, &event, &output);
188 /* Invalid invocations */
189 TEST("NULL input", test_eventstring2event, NULL,
190 IE_INVAL, NULL, &output);
192 input = BAD_CAST "EV1: some text";
193 event.time = NULL;
194 event_type = EVENT_ACCEPTED_BY_RECIPIENT;
195 event.type = &event_type;
196 event.description = "some text";
197 TEST("NULL output", test_eventstring2event, input,
198 IE_INVAL, &event, NULL);
200 isds_cleanup();
201 SUM_TEST();