RKH
Loading...
Searching...
No Matches
test_utrzexpect.c
Go to the documentation of this file.
1
13/* -------------------------- Development history -------------------------- */
14/*
15 * 2015.11.11 LeFr v1.0.00 Initial version
16 */
17
18/* -------------------------------- Authors -------------------------------- */
19/*
20 * LeFr Leandro Francucci lf@vortexmakes.com
21 */
22
23/* --------------------------------- Notes --------------------------------- */
24/* ----------------------------- Include files ----------------------------- */
25
26#include "unity_fixture.h"
27#include "unitrazer.h"
28#include "rkh.h"
29#include "aotest.h"
30#include "aotest_act.h"
31#include "test_common.h"
32
33/* ----------------------------- Local macros ------------------------------ */
34#define str(a) #a
35
36#define utrzExpect_Ok_check() \
37 { \
38 UtrzProcessOut *p; \
39 p = unitrazer_getLastOut(); \
40 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status); \
41 }
42
43#define utrzExpect_OutOfSequence_check(ex, rc) \
44 { \
45 UtrzProcessOut *p; \
46 p = unitrazer_getLastOut(); \
47 TEST_ASSERT_EQUAL(UT_PROC_FAIL, p->status); \
48 TEST_ASSERT_EQUAL_STRING("Out of order Trace event." \
49 " occurred: '"rc"' expected: '"ex"'.", p->msg); \
50 }
51
52#define utrzExpect_WithUnexpectedArg_check( ev, an, e, r ) \
53 { \
54 UtrzProcessOut *p; \
55 p = unitrazer_getLastOut(); \
56 TEST_ASSERT_EQUAL(UT_PROC_FAIL, p->status); \
57 TEST_ASSERT_EQUAL_STRING("Event '"ev"' occurred with unexpected " \
58 "value for argument '"an"="r"' expected " \
59 "value='"e"'.", p->msg); \
60 }
61
62#define utrzExpect_WithUnexpectedArgNoName_check( ev, e, r ) \
63 { \
64 UtrzProcessOut *p; \
65 p = unitrazer_getLastOut(); \
66 TEST_ASSERT_EQUAL(UT_PROC_FAIL, p->status); \
67 TEST_ASSERT_EQUAL_STRING("Event '"ev"' occurred with unexpected " \
68 "value for argument '"r"' expected " \
69 "value='"e"'.", p->msg); \
70 }
71
72/* ------------------------------- Constants ------------------------------- */
73/* ---------------------------- Local data types --------------------------- */
74/* ---------------------------- Global variables --------------------------- */
75
76TEST_GROUP(utrzExpect);
77
78/* ---------------------------- Local variables ---------------------------- */
79/* ----------------------- Local function prototypes ----------------------- */
80/* ---------------------------- Local functions ---------------------------- */
81/* ---------------------------- Global functions --------------------------- */
82
83TEST_SETUP(utrzExpect)
84{
85 /* -------- Setup ---------------
86 * Establish the preconditions to the test
87 */
88 common_test_setup();
89}
90
91TEST_TEAR_DOWN(utrzExpect)
92{
93 /* -------- Cleanup -------------
94 * Return the system under test to its initial state after the test
95 */
96 common_tear_down();
97}
98
106TEST(utrzExpect, sm_init_Ok)
107{
108 sm_init_expect(CST(&s21));
109
110 RKH_TR_SM_INIT(aotest, &s21);
111
112 utrzExpect_Ok_check();
113}
114
115TEST(utrzExpect, sm_init_OutOfSequence)
116{
117 sm_init_expect(CST(&s21));
118
119 RKH_TR_SM_ENSTATE(aotest, CST(&s21));
120
121 utrzExpect_OutOfSequence_check( "INIT", "ENSTATE" );
122}
123
124TEST(utrzExpect, sm_init_WithUnexpectedArg)
125{
126 sm_init_expect(CST(&s21));
127
128 RKH_TR_SM_INIT(aotest, &s211);
129
130 utrzExpect_WithUnexpectedArg_check( "INIT", "ist", str(s21), str(s211) );
131}
132
133TEST(utrzExpect, sm_clrh_Ok)
134{
135 sm_clrh_expect(CST(&s21));
136
137 RKH_TR_SM_CLRH(aotest, &s21);
138
139 utrzExpect_Ok_check();
140}
141
142TEST(utrzExpect, sm_clrh_OutOfSequence)
143{
144 sm_clrh_expect(CST(&s21));
145
146 RKH_TR_SM_ENSTATE(aotest, CST(&s21));
147
148 utrzExpect_OutOfSequence_check( "CLRH", "ENSTATE" );
149}
150
151TEST(utrzExpect, sm_clrh_WithUnexpectedArg)
152{
153 sm_clrh_expect(CST(&s21));
154
155 RKH_TR_SM_CLRH(aotest, &s211);
156
157 utrzExpect_WithUnexpectedArg_check( "CLRH", "h", str(s21), str(s211) );
158}
159
160TEST(utrzExpect, sm_trn_Ok)
161{
162 sm_trn_expect(CST(&s21), CST(&s211));
163
164 RKH_TR_SM_TRN(aotest, &s21, &s211);
165
166 utrzExpect_Ok_check();
167}
168
169TEST(utrzExpect, sm_trn_OutOfSequence)
170{
171 sm_trn_expect(CST(&s21), CST(&s211));
172
173 RKH_TR_SM_ENSTATE(aotest, CST(&s21));
174
175 utrzExpect_OutOfSequence_check( "TRN", "ENSTATE" );
176}
177
178TEST(utrzExpect, sm_trn_WithUnexpectedArg)
179{
180 sm_trn_expect(CST(&s21), CST(&s211));
181
182 RKH_TR_SM_TRN(aotest, &s21, &s21);
183
184 utrzExpect_WithUnexpectedArg_check( "TRN", "tst", str(s211), str(s21) );
185
186 sm_trn_expect(CST(&s21), CST(&s211));
187
188 RKH_TR_SM_TRN(aotest, &s211, &s211);
189
190 utrzExpect_WithUnexpectedArg_check( "TRN", "sst", str(s21), str(s211) );
191}
192
193
194TEST(utrzExpect, sm_trn_WithAnyArgs)
195{
196 sm_trn_expectAnyArgs();
197
198 RKH_TR_SM_TRN(aotest, &s211, &s211);
199
200 utrzExpect_Ok_check();
201}
202
203TEST(utrzExpect, sm_state_Ok)
204{
205 sm_state_expect(CST(&s21));
206
207 RKH_TR_SM_STATE(aotest, &s21);
208
209 utrzExpect_Ok_check();
210}
211
212TEST(utrzExpect, sm_state_OutOfSequence)
213{
214 sm_state_expect(CST(&s21));
215
216 RKH_TR_SM_ENSTATE(aotest, CST(&s21));
217
218 utrzExpect_OutOfSequence_check( "STATE", "ENSTATE" );
219}
220
221TEST(utrzExpect, sm_state_WithUnexpectedArg)
222{
223 sm_state_expect(CST(&s21));
224
225 RKH_TR_SM_STATE(aotest, &s211);
226
227 utrzExpect_WithUnexpectedArg_check( "STATE", "nxtst", str(s21), str(s211) );
228}
229
230TEST(utrzExpect, sm_enstate_Ok)
231{
232 sm_enstate_expect(CST(&s21));
233
234 RKH_TR_SM_ENSTATE(aotest, &s21);
235
236 utrzExpect_Ok_check();
237}
238
239TEST(utrzExpect, sm_enstate_OutOfSequence)
240{
241 sm_enstate_expect(CST(&s21));
242
243 RKH_TR_SM_STATE(aotest, &s21);
244
245 utrzExpect_OutOfSequence_check( "ENSTATE", "STATE" );
246}
247
248TEST(utrzExpect, sm_enstate_WithUnexpectedArg)
249{
250 sm_enstate_expect(CST(&s21));
251
252 RKH_TR_SM_ENSTATE(aotest, &s211);
253
254 utrzExpect_WithUnexpectedArg_check( "ENSTATE", "st", str(s21), str(s211) );
255}
256
257TEST(utrzExpect, sm_exstate_Ok)
258{
259 sm_exstate_expect(CST(&s21));
260
261 RKH_TR_SM_EXSTATE(aotest, &s21);
262
263 utrzExpect_Ok_check();
264}
265
266TEST(utrzExpect, sm_exstate_OutOfSequence)
267{
268 sm_exstate_expect(CST(&s21));
269
270 RKH_TR_SM_STATE(aotest, &s21);
271
272 utrzExpect_OutOfSequence_check( "EXSTATE", "STATE" );
273}
274
275TEST(utrzExpect, sm_exstate_WithUnexpectedArg)
276{
277 sm_exstate_expect(CST(&s21));
278
279 RKH_TR_SM_EXSTATE(aotest, &s211);
280
281 utrzExpect_WithUnexpectedArg_check( "EXSTATE", "st", str(s21), str(s211) );
282}
283
284TEST(utrzExpect, sm_nenex_Ok)
285{
286 sm_nenex_expect(2,3);
287
288 RKH_TR_SM_NENEX(aotest, 2, 3);
289
290 utrzExpect_Ok_check();
291}
292
293TEST(utrzExpect, sm_nenex_OutOfSequence)
294{
295 sm_nenex_expect(2,3);
296
297 RKH_TR_SM_STATE(aotest, &s21);
298
299 utrzExpect_OutOfSequence_check( "NENEX", "STATE" );
300}
301
302TEST(utrzExpect, sm_nenex_WithUnexpectedArg)
303{
304 sm_nenex_expect(2,3);
305
306 RKH_TR_SM_NENEX(aotest, 3, 3);
307
308 utrzExpect_WithUnexpectedArg_check("NENEX", "nen", "2", "3");
309
310 sm_nenex_expect(2,3);
311
312 RKH_TR_SM_NENEX(aotest, 2, 2);
313
314 utrzExpect_WithUnexpectedArg_check("NENEX", "nex", "3", "2");
315}
316
317TEST(utrzExpect, sm_ntrnact_Ok)
318{
319 sm_ntrnact_expect(2,3);
320
321 RKH_TR_SM_NTRNACT(aotest, 2, 3);
322
323 utrzExpect_Ok_check();
324}
325
326TEST(utrzExpect, sm_ntrnact_OutOfSequence)
327{
328 sm_ntrnact_expect(2,3);
329
330 RKH_TR_SM_STATE(aotest, &s21);
331
332 utrzExpect_OutOfSequence_check( "NTRNACT", "STATE" );
333}
334
335TEST(utrzExpect, sm_ntrnact_WithUnexpectedArg)
336{
337 sm_ntrnact_expect(2,3);
338
339 RKH_TR_SM_NTRNACT(aotest, 3, 3);
340
341 utrzExpect_WithUnexpectedArg_check("NTRNACT", "nta", "2", "3");
342
343 sm_ntrnact_expect(2,3);
344
345 RKH_TR_SM_NTRNACT(aotest, 2, 2);
346
347 utrzExpect_WithUnexpectedArg_check("NTRNACT", "nts", "3", "2");
348}
349
350TEST(utrzExpect, sm_tsstate_Ok)
351{
352 sm_tsState_expect(CST(&s21));
353
354 RKH_TR_SM_TS_STATE(aotest, &s21);
355
356 utrzExpect_Ok_check();
357}
358
359TEST(utrzExpect, sm_tsstate_OutOfSequence)
360{
361 sm_tsState_expect(CST(&s21));
362
363 RKH_TR_SM_STATE(aotest, &s21);
364
365 utrzExpect_OutOfSequence_check( "TS_STATE", "STATE" );
366}
367
368TEST(utrzExpect, sm_tsstate_WithUnexpectedArg)
369{
370 sm_tsState_expect(CST(&s21));
371
372 RKH_TR_SM_TS_STATE(aotest, &s211);
373
374 utrzExpect_WithUnexpectedArg_check("TS_STATE", "st", str(s21), str(s211) );
375}
376
377TEST(utrzExpect, sm_evtproc_Ok)
378{
379 sm_evtProc_expect();
380
381 RKH_TR_SM_EVT_PROC(aotest);
382
383 utrzExpect_Ok_check();
384}
385
386TEST(utrzExpect, sm_evtproc_OutOfSequence)
387{
388 sm_evtProc_expect();
389
390 RKH_TR_SM_STATE(aotest, &s21);
391
392 utrzExpect_OutOfSequence_check( "EVT_PROC", "STATE" );
393}
394
395TEST(utrzExpect, sm_evtnfound_Ok)
396{
397 RKH_STATIC_EVENT(e, A);
398
399 sm_evtNotFound_expect(A);
400
401 RKH_TR_SM_EVT_NFOUND(aotest, (&e));
402
403 utrzExpect_Ok_check();
404}
405
406TEST(utrzExpect, sm_evtnfound_OutOfSequence)
407{
408 sm_evtNotFound_expect(A);
409
410 RKH_TR_SM_STATE(aotest, &s21);
411
412 utrzExpect_OutOfSequence_check( "EVT_NFOUND", "STATE" );
413}
414
415TEST(utrzExpect, sm_evtnfound_WithUnexpectedArg)
416{
417 RKH_STATIC_EVENT(ev, B);
418
419 sm_evtNotFound_expect(A);
420
421 RKH_TR_SM_EVT_NFOUND(aotest, (&ev));
422
423 utrzExpect_WithUnexpectedArg_check("EVT_NFOUND", "sig", str(A), str(B));
424}
425
426TEST(utrzExpect, sm_grdfalse_Ok)
427{
428 sm_grdFalse_expect();
429
430 RKH_TR_SM_GRD_FALSE(aotest);
431
432 utrzExpect_Ok_check();
433}
434
435TEST(utrzExpect, sm_grdfalse_OutOfSequence)
436{
437 sm_grdFalse_expect();
438
439 RKH_TR_SM_STATE(aotest, &s21);
440
441 utrzExpect_OutOfSequence_check( "GRD_FALSE", "STATE" );
442}
443
444TEST(utrzExpect, sm_cndnfound_Ok)
445{
446 sm_cndNotFound_expect();
447
448 RKH_TR_SM_CND_NFOUND(aotest);
449
450 utrzExpect_Ok_check();
451}
452
453TEST(utrzExpect, sm_cndnfound_OutOfSequence)
454{
455 sm_cndNotFound_expect();
456
457 RKH_TR_SM_STATE(aotest, &s21);
458
459 utrzExpect_OutOfSequence_check( "CND_NFOUND", "STATE" );
460}
461
462TEST(utrzExpect, sm_unkstate_Ok)
463{
464 sm_unknState_expect();
465
466 RKH_TR_SM_UNKN_STATE(aotest);
467
468 utrzExpect_Ok_check();
469}
470
471TEST(utrzExpect, sm_unkstate_OutOfSequence)
472{
473 sm_unknState_expect();
474
475 RKH_TR_SM_STATE(aotest, &s21);
476
477 utrzExpect_OutOfSequence_check( "UNKN_STATE", "STATE" );
478}
479
480TEST(utrzExpect, sm_exhlevel_Ok)
481{
482 sm_exHLevel_expect();
483
484 RKH_TR_SM_EX_HLEVEL(aotest);
485
486 utrzExpect_Ok_check();
487}
488
489TEST(utrzExpect, sm_exhlevel_OutOfSequence)
490{
491 sm_exHLevel_expect();
492
493 RKH_TR_SM_STATE(aotest, &s21);
494
495 utrzExpect_OutOfSequence_check( "EX_HLEVEL", "STATE" );
496}
497
498TEST(utrzExpect, sm_extseg_Ok)
499{
500 sm_exTSeg_expect();
501
502 RKH_TR_SM_EX_TSEG(aotest);
503
504 utrzExpect_Ok_check();
505}
506
507TEST(utrzExpect, sm_extseg_OutOfSequence)
508{
509 sm_exTSeg_expect();
510
511 RKH_TR_SM_STATE(aotest, &s21);
512
513 utrzExpect_OutOfSequence_check( "EX_TSEG", "STATE" );
514}
515
516TEST(utrzExpect, sm_exeAct_Ok)
517{
518 sm_exeAct_expect(RKH_SUBTE_SM_EXE_ACT_EN,
519 CST(&s21), foo_set2zero );
520
521 RKH_TR_SM_EXE_ACT( RKH_SUBTE_SM_EXE_ACT_EN, aotest, &s21, foo_set2zero );
522
523 utrzExpect_Ok_check();
524}
525
526TEST(utrzExpect, sm_exeAct_OutOfSequence)
527{
528 sm_exeAct_expect(RKH_SUBTE_SM_EXE_ACT_EN,
529 CST(&s21), foo_set2zero );
530
531 RKH_TR_SM_ENSTATE(aotest, CST(&s21));
532
533 utrzExpect_OutOfSequence_check( "EXE_ACT", "ENSTATE" );
534}
535
536TEST(utrzExpect, sm_exeAct_WithUnexpectedArg)
537{
538 sm_exeAct_expect(RKH_SUBTE_SM_EXE_ACT_EN,
539 CST(&s21), foo_set2zero );
540
541 RKH_TR_SM_EXE_ACT( RKH_SUBTE_SM_EXE_ACT_EN, aotest, &s211, foo_set2zero );
542
543 utrzExpect_WithUnexpectedArg_check("EXE_ACT", "st", str(s21), str(s211));
544
545 sm_exeAct_expect(RKH_SUBTE_SM_EXE_ACT_EN,
546 CST(&s21), foo_set2zero );
547
548 RKH_TR_SM_EXE_ACT( RKH_SUBTE_SM_EXE_ACT_EN, aotest, &s21, foo_set2one );
549
550 utrzExpect_WithUnexpectedArg_check("EXE_ACT", "fn",
551 str(foo_set2zero), str(foo_set2one));
552
553 sm_exeAct_expect(RKH_SUBTE_SM_EXE_ACT_EN,
554 CST(&s21), foo_set2zero );
555
556 RKH_TR_SM_EXE_ACT( RKH_SUBTE_SM_EXE_ACT_EX, aotest, &s21, foo_set2one );
557
558 utrzExpect_WithUnexpectedArgNoName_check("EXE_ACT", "Entry", "Exit");
559}
560
561TEST(utrzExpect, sm_exeAct_WithAnyArgs)
562{
563 sm_exeAct_expectAnyArgs();
564
565 RKH_TR_SM_EXE_ACT( RKH_SUBTE_SM_EXE_ACT_INI, aotest, &s211, foo_set2one );
566
567 utrzExpect_Ok_check();
568}
569
574/* ------------------------------ End of file ------------------------------ */
#define RKH_STATIC_EVENT(ev_obj, ev_sig)
This macro declares and initializes the event structure ev_ob with ev_sig signal number and establish...
RKH framwwork platform - independent interface.
@ RKH_SUBTE_SM_EXE_ACT_EX
@ RKH_SUBTE_SM_EXE_ACT_EN
@ RKH_SUBTE_SM_EXE_ACT_INI
Interface of unit test with Trazer application.