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
73 /* Known event prefixes */
74 input
= BAD_CAST
"EV0: some text";
76 event_type
= EVENT_ENTERED_SYSTEM
;
77 event
.type
= &event_type
;
78 event
.description
= "some text";
79 TEST((char*)input
, test_eventstring2event
, input
,
80 IE_SUCCESS
, &event
, &output
);
82 input
= BAD_CAST
"EV1: some text";
84 event_type
= EVENT_ACCEPTED_BY_RECIPIENT
;
85 event
.type
= &event_type
;
86 event
.description
= "some text";
87 TEST((char*)input
, test_eventstring2event
, input
,
88 IE_SUCCESS
, &event
, &output
);
90 input
= BAD_CAST
"EV2: some text";
92 event_type
= EVENT_ACCEPTED_BY_FICTION
;
93 event
.type
= &event_type
;
94 event
.description
= "some text";
95 TEST((char*)input
, test_eventstring2event
, input
,
96 IE_SUCCESS
, &event
, &output
);
98 input
= BAD_CAST
"EV3: some text";
100 event_type
= EVENT_UNDELIVERABLE
;
101 event
.type
= &event_type
;
102 event
.description
= "some text";
103 TEST((char*)input
, test_eventstring2event
, input
,
104 IE_SUCCESS
, &event
, &output
);
106 input
= BAD_CAST
"EV4: some text";
108 event_type
= EVENT_COMMERCIAL_ACCEPTED
;
109 event
.type
= &event_type
;
110 event
.description
= "some text";
111 TEST((char*)input
, test_eventstring2event
, input
,
112 IE_SUCCESS
, &event
, &output
);
114 input
= BAD_CAST
"EV5: some text";
116 event_type
= EVENT_DELIVERED
;
117 event
.type
= &event_type
;
118 event
.description
= "some text";
119 TEST((char*)input
, test_eventstring2event
, input
,
120 IE_SUCCESS
, &event
, &output
);
122 input
= BAD_CAST
"EV11: some text";
124 event_type
= EVENT_PRIMARY_LOGIN
;
125 event
.type
= &event_type
;
126 event
.description
= "some text";
127 TEST((char*)input
, test_eventstring2event
, input
,
128 IE_SUCCESS
, &event
, &output
);
130 input
= BAD_CAST
"EV12: some text";
132 event_type
= EVENT_ENTRUSTED_LOGIN
;
133 event
.type
= &event_type
;
134 event
.description
= "some text";
135 TEST((char*)input
, test_eventstring2event
, input
,
136 IE_SUCCESS
, &event
, &output
);
138 input
= BAD_CAST
"EV13: some text";
140 event_type
= EVENT_SYSCERT_LOGIN
;
141 event
.type
= &event_type
;
142 event
.description
= "some text";
143 TEST((char*)input
, test_eventstring2event
, input
,
144 IE_SUCCESS
, &event
, &output
);
146 /* Unknown event prefixes */
147 input
= BAD_CAST
"EV-1: unknown event";
149 event_type
= EVENT_UKNOWN
;
150 event
.type
= &event_type
;
151 event
.description
= (char *) input
;
152 TEST((char*)input
, test_eventstring2event
, input
,
153 IE_SUCCESS
, &event
, &output
);
155 input
= BAD_CAST
"EV6: intermediate undefined event";
157 event_type
= EVENT_UKNOWN
;
158 event
.type
= &event_type
;
159 event
.description
= (char *) input
;
160 TEST((char*)input
, test_eventstring2event
, input
,
161 IE_SUCCESS
, &event
, &output
);
163 input
= BAD_CAST
"EV10: intermediate undefined event";
165 event_type
= EVENT_UKNOWN
;
166 event
.type
= &event_type
;
167 event
.description
= (char *) input
;
168 TEST((char*)input
, test_eventstring2event
, input
,
169 IE_SUCCESS
, &event
, &output
);
171 input
= BAD_CAST
"EV14: out of range event";
173 event_type
= EVENT_UKNOWN
;
174 event
.type
= &event_type
;
175 event
.description
= (char *) input
;
176 TEST((char*)input
, test_eventstring2event
, input
,
177 IE_SUCCESS
, &event
, &output
);
179 /* Other valid cases */
181 event_type
= EVENT_UKNOWN
;
182 event
.type
= &event_type
;
183 event
.description
= "";
184 TEST("Empty input", test_eventstring2event
, BAD_CAST
"",
185 IE_SUCCESS
, &event
, &output
);
187 /* Invalid invocations */
188 TEST("NULL input", test_eventstring2event
, NULL
,
189 IE_INVAL
, NULL
, &output
);
191 input
= BAD_CAST
"EV1: some text";
193 event_type
= EVENT_ACCEPTED_BY_RECIPIENT
;
194 event
.type
= &event_type
;
195 event
.description
= "some text";
196 TEST("NULL output", test_eventstring2event
, input
,
197 IE_INVAL
, &event
, NULL
);