4 static int test_eventstring2event(const xmlChar
*string
, isds_error error
,
5 const struct isds_event
*correct_event
, struct isds_event
*new_event
) {
8 err
= eventstring2event(string
, new_event
);
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
)
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
) {
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
) {
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 "
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
);
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
72 ABORT_UNIT("isds_init() failed\n");
74 /* Known event prefixes */
75 input
= BAD_CAST
"EV0: some text";
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";
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";
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";
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";
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";
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";
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";
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";
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";
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";
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";
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";
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 */
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";
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
);