65#include "Mock_smTestAct.h"
67#include "smPseudoConditionalTest.h"
68#include "Mock_smPseudoConditionalTestAct.h"
70#include "smPseudoTest.h"
71#include "Mock_smPseudoTestAct.h"
73#include "smInitialPseudoTest.h"
74#include "Mock_smInitialPseudoTestAct.h"
76#include "Mock_rkhassert.h"
101typedef struct StateMachine
107typedef struct Composite
116static const RKH_ST_T *targetStates[16], *exitStates[16], *entryStates[16];
129 tzlink_open(0, NULL);
140setUpWoutUnitrazer(
void)
147loadStateMachineSymbols(
void)
156 RKH_TR_FWK_AO(smTest);
157 RKH_TR_FWK_STATE(smTest, &waiting);
158 RKH_TR_FWK_STATE(smTest, &s0);
159 RKH_TR_FWK_STATE(smTest, &s1);
160 RKH_TR_FWK_STATE(smTest, &s2);
161 RKH_TR_FWK_STATE(smTest, &s21);
162 RKH_TR_FWK_STATE(smTest, &s22);
163 RKH_TR_FWK_STATE(smTest, &s221);
164 RKH_TR_FWK_STATE(smTest, &s2211);
165 RKH_TR_FWK_STATE(smTest, &s222);
166 RKH_TR_FWK_STATE(smTest, &s2221);
167 RKH_TR_FWK_STATE(smTest, &s22211);
168 RKH_TR_FWK_STATE(smTest, &s3);
169 RKH_TR_FWK_STATE(smTest, &s31);
170 RKH_TR_FWK_STATE(smTest, &s4);
171 RKH_TR_FWK_STATE(smTest, &s5);
172 RKH_TR_FWK_STATE(smTest, &s2Final);
173 RKH_TR_FWK_STATE(smTest, &SmTest_Final);
175 RKH_TR_FWK_AO(smPseudoConditionalTest);
176 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_waiting);
177 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_choice1);
178 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_choice2);
179 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_choice3);
180 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_choice4);
181 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_choice5);
182 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_choice6);
183 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_s0);
184 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_s1);
185 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_s11);
186 RKH_TR_FWK_STATE(smPseudoConditionalTest, &smPCT_s12);
188 RKH_TR_FWK_AO(smPseudoTest);
189 RKH_TR_FWK_STATE(smPseudoTest, &smPT_waiting);
190 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s0);
191 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s1);
192 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s11);
193 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s12);
194 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s1Hist);
195 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s121);
196 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s122);
197 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s12Hist);
198 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s2);
199 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s21);
200 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s22);
201 RKH_TR_FWK_STATE(smPseudoTest, &smPT_s2Hist);
203 RKH_TR_FWK_AO(smInitialPseudoTest);
204 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s0);
205 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s1);
206 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s11);
207 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s12);
208 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s2);
209 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s21);
210 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s211);
211 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s3);
212 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s31);
213 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s32);
214 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s33);
215 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s331);
216 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s4);
217 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s41);
218 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s411);
219 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s5);
220 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s51);
221 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s511);
222 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s52);
223 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s6);
224 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s61);
225 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s62);
226 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s1Hist);
227 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s2Hist);
228 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s3Hist);
229 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s7);
230 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s71);
231 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s72);
232 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_choice1);
233 RKH_TR_FWK_STATE(smInitialPseudoTest, &smIPT_s5Final);
235 RKH_TR_FWK_AO(smInitial6);
236 RKH_TR_FWK_STATE(smInitial6, &smI6_s0);
237 RKH_TR_FWK_STATE(smInitial6, &smI6_s1);
242setRKHTraceFilters(
void)
244 RKH_FILTER_OFF_ALL_SIGNALS();
245 RKH_FILTER_OFF_GROUP_ALL_EVENTS(
RKH_TG_SM);
246 RKH_FILTER_OFF_SMA(smTest);
247 RKH_FILTER_OFF_SMA(smPseudoConditionalTest);
248 RKH_FILTER_OFF_SMA(smPseudoTest);
249 RKH_FILTER_OFF_SMA(smInitialPseudoTest);
254MockEffectCallback0(SmTest *
const me,
RKH_EVT_T *pe,
int cmock_num_calls)
256 TEST_ASSERT_NULL(getPropagatedEvent(smTest));
258 TEST_ASSERT_NOT_NULL(getPropagatedEvent(smTest));
262MockEffectCallback1(SmTest *
const me,
RKH_EVT_T *pe,
int cmock_num_calls)
264 TEST_ASSERT_NULL(getPropagatedEvent(smTest));
273 Mock_smTestAct_Init();
274 Mock_smPseudoConditionalTestAct_Init();
275 Mock_smInitialPseudoTestAct_Init();
277 loadStateMachineSymbols();
278 setRKHTraceFilters();
293 Mock_smTestAct_Verify();
294 Mock_smTestAct_Destroy();
296 Mock_smPseudoConditionalTestAct_Verify();
297 Mock_smPseudoConditionalTestAct_Destroy();
299 Mock_smInitialPseudoTestAct_Verify();
300 Mock_smInitialPseudoTestAct_Destroy();
310test_transitionFirstStateAfterInit(
void)
315 sm_init_expect(RKH_STATE_CAST(&waiting));
316 sm_trn_expect(RKH_STATE_CAST(&waiting), RKH_STATE_CAST(&waiting));
317 sm_tsState_expect(RKH_STATE_CAST(&waiting));
318 sm_enstate_expect(RKH_STATE_CAST(&waiting));
319 sm_nenex_expect(1, 0);
320 sm_state_expect(RKH_STATE_CAST(&waiting));
325 p = unitrazer_getLastOut();
326 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
330test_transitionSimpleToSimpleAtEqualLevel(
void)
334 stateList_create(targetStates, 1, &s1);
335 stateList_create(entryStates, 1, &s1);
336 stateList_create(exitStates, 1, &s0);
339 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
340 smTest_tr11_Expect(
RKH_CAST(SmTest, smTest), &evA);
341 smTest_nS1_Expect(
RKH_CAST(SmTest, smTest));
343 setProfile(smTest, RKH_STATE_CAST(&waiting),
344 RKH_STATE_CAST(&s0), RKH_STATE_CAST(&s0),
346 entryStates, exitStates, RKH_STATE_CAST(&s1), 1,
347 TRN_NOT_INTERNAL, INIT_STATE_MACHINE, &evA,
348 RKH_STATE_CAST(&s0));
352 p = unitrazer_getLastOut();
353 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
357test_transitionSimpleToSimpleFromHighToLowLevel(
void)
361 stateList_create(targetStates, 1, &s21);
362 stateList_create(entryStates, 2, &s2, &s21);
363 stateList_create(exitStates, 1, &s0);
366 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
367 smTest_tr12_Expect(
RKH_CAST(SmTest, smTest), &evB);
368 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
369 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
371 setProfile(smTest, RKH_STATE_CAST(&waiting),
372 RKH_STATE_CAST(&s0), RKH_STATE_CAST(&s0),
374 entryStates, exitStates, RKH_STATE_CAST(&s21), 1,
375 TRN_NOT_INTERNAL, INIT_STATE_MACHINE, &evB,
376 RKH_STATE_CAST(&s0));
380 p = unitrazer_getLastOut();
381 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
385test_transitionSimpleToSimpleFromLowToHighLevel(
void)
389 stateList_create(targetStates, 1, &s0);
390 stateList_create(entryStates, 1, &s0);
391 stateList_create(exitStates, 2, &s21, &s2);
394 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
395 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
396 smTest_tr13_Expect(
RKH_CAST(SmTest, smTest), &evB);
397 smTest_nS0_Expect(
RKH_CAST(SmTest, smTest));
399 setProfile(smTest, RKH_STATE_CAST(&waiting),
400 RKH_STATE_CAST(&s21), RKH_STATE_CAST(&s21),
402 entryStates, exitStates, RKH_STATE_CAST(&s0), 1,
403 TRN_NOT_INTERNAL, INIT_STATE_MACHINE, &evB,
404 RKH_STATE_CAST(&s21));
408 p = unitrazer_getLastOut();
409 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
413test_transitionSimpleToCompositeAtEqualLevel(
void)
424 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
425 smTest_tr21_Expect(
RKH_CAST(SmTest, smTest), &event);
426 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
428 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
430 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
431 sm_dch_expect(event.
e, RKH_STATE_CAST(&s0));
432 sm_trn_expect(RKH_STATE_CAST(&s0), RKH_STATE_CAST(&s2));
433 sm_tsState_expect(RKH_STATE_CAST(&s2));
434 sm_exstate_expect(RKH_STATE_CAST(&s0));
435 sm_enstate_expect(RKH_STATE_CAST(&s2));
436 sm_tsState_expect(RKH_STATE_CAST(&s21));
437 sm_enstate_expect(RKH_STATE_CAST(&s21));
438 sm_nenex_expect(nEnSt, nExSt);
439 sm_state_expect(RKH_STATE_CAST(&s21));
443 setState(smTest, RKH_STATE_CAST(&s0));
446 p = unitrazer_getLastOut();
447 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
451test_transitionSimpleToCompositeFromHighToLowLevel(
void)
462 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
463 smTest_tr22_Expect(
RKH_CAST(SmTest, smTest), &event);
464 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
465 smTest_nS22_Expect(
RKH_CAST(SmTest, smTest));
467 smTest_nS221_Expect(
RKH_CAST(SmTest, smTest));
469 smTest_nS2211_Expect(
RKH_CAST(SmTest, smTest));
471 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
472 sm_dch_expect(event.
e, RKH_STATE_CAST(&s0));
473 sm_trn_expect(RKH_STATE_CAST(&s0), RKH_STATE_CAST(&s22));
474 sm_tsState_expect(RKH_STATE_CAST(&s22));
475 sm_exstate_expect(RKH_STATE_CAST(&s0));
476 sm_enstate_expect(RKH_STATE_CAST(&s2));
477 sm_enstate_expect(RKH_STATE_CAST(&s22));
478 sm_tsState_expect(RKH_STATE_CAST(&s221));
479 sm_enstate_expect(RKH_STATE_CAST(&s221));
480 sm_tsState_expect(RKH_STATE_CAST(&s2211));
481 sm_enstate_expect(RKH_STATE_CAST(&s2211));
482 sm_nenex_expect(nEnSt, nExSt);
483 sm_state_expect(RKH_STATE_CAST(&s2211));
487 setState(smTest, RKH_STATE_CAST(&s0));
490 p = unitrazer_getLastOut();
491 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
495test_transitionSimpleToCompositeFromLowToHighLevel(
void)
506 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
507 smTest_tr23_Expect(
RKH_CAST(SmTest, smTest), &event);
509 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
511 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
512 sm_dch_expect(event.
e, RKH_STATE_CAST(&s21));
513 sm_trn_expect(RKH_STATE_CAST(&s21), RKH_STATE_CAST(&s2));
514 sm_tsState_expect(RKH_STATE_CAST(&s2));
515 sm_exstate_expect(RKH_STATE_CAST(&s21));
516 sm_tsState_expect(RKH_STATE_CAST(&s21));
517 sm_enstate_expect(RKH_STATE_CAST(&s21));
518 sm_nenex_expect(nEnSt, nExSt);
519 sm_state_expect(RKH_STATE_CAST(&s21));
523 setState(smTest, RKH_STATE_CAST(&s21));
526 p = unitrazer_getLastOut();
527 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
531test_transitionCompositeToSimpleAtEqualLevel(
void)
535 stateList_create(targetStates, 1, &s0);
536 stateList_create(entryStates, 1, &s0);
537 stateList_create(exitStates, 2, &s21, &s2);
540 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
541 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
542 smTest_tr31_Expect(
RKH_CAST(SmTest, smTest), &evA);
543 smTest_nS0_Expect(
RKH_CAST(SmTest, smTest));
545 setProfile(smTest, RKH_STATE_CAST(&waiting),
546 RKH_STATE_CAST(&s21), RKH_STATE_CAST(&s2),
548 entryStates, exitStates, RKH_STATE_CAST(&s0), 1,
549 TRN_NOT_INTERNAL, INIT_STATE_MACHINE, &evA,
550 RKH_STATE_CAST(&s21));
554 p = unitrazer_getLastOut();
555 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
559test_transitionCompositeToSimpleFromHighToLowLevel(
void)
563 stateList_create(targetStates, 1, &s21);
564 stateList_create(entryStates, 1, &s21);
565 stateList_create(exitStates, 1, &s21);
568 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
569 smTest_tr32_Expect(
RKH_CAST(SmTest, smTest), &evD);
570 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
572 setProfile(smTest, RKH_STATE_CAST(&waiting),
573 RKH_STATE_CAST(&s21), RKH_STATE_CAST(&s2),
575 entryStates, exitStates, RKH_STATE_CAST(&s21), 1,
576 TRN_NOT_INTERNAL, INIT_STATE_MACHINE, &evD,
577 RKH_STATE_CAST(&s21));
581 p = unitrazer_getLastOut();
582 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
586test_transitionLoopSimpleStateOnTop(
void)
590 stateList_create(targetStates, 1, &s1);
591 stateList_create(entryStates, 1, &s1);
592 stateList_create(exitStates, 1, &s1);
595 smTest_xS1_Expect(
RKH_CAST(SmTest, smTest));
596 smTest_tr53_Expect(
RKH_CAST(SmTest, smTest), &evA);
597 smTest_nS1_Expect(
RKH_CAST(SmTest, smTest));
599 setProfile(smTest, RKH_STATE_CAST(&waiting),
600 RKH_STATE_CAST(&s1), RKH_STATE_CAST(&s1),
602 entryStates, exitStates, RKH_STATE_CAST(&s1), 1,
603 TRN_NOT_INTERNAL, INIT_STATE_MACHINE, &evA,
604 RKH_STATE_CAST(&s1));
608 p = unitrazer_getLastOut();
609 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
613test_transitionLoopNestedSimpleState(
void)
617 stateList_create(targetStates, 1, &s31);
618 stateList_create(entryStates, 1, &s31);
619 stateList_create(exitStates, 1, &s31);
622 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
623 smTest_tr52_Expect(
RKH_CAST(SmTest, smTest), &evD);
624 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
626 setProfile(smTest, RKH_STATE_CAST(&waiting),
627 RKH_STATE_CAST(&s31), RKH_STATE_CAST(&s31),
628 targetStates, entryStates, exitStates,
629 RKH_STATE_CAST(&s31), 1, TRN_NOT_INTERNAL, INIT_STATE_MACHINE,
630 &evD, RKH_STATE_CAST(&s31));
634 p = unitrazer_getLastOut();
635 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
639test_transitionLoopCompositeStateOnTop(
void)
650 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
651 smTest_tr51_Expect(
RKH_CAST(SmTest, smTest), &event);
653 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
655 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
656 sm_dch_expect(event.
e, RKH_STATE_CAST(&s31));
657 sm_trn_expect(RKH_STATE_CAST(&s3), RKH_STATE_CAST(&s3));
658 sm_tsState_expect(RKH_STATE_CAST(&s3));
659 sm_exstate_expect(RKH_STATE_CAST(&s31));
660 sm_tsState_expect(RKH_STATE_CAST(&s31));
661 sm_enstate_expect(RKH_STATE_CAST(&s31));
662 sm_nenex_expect(nEnSt, nExSt);
663 sm_state_expect(RKH_STATE_CAST(&s31));
667 setState(smTest, RKH_STATE_CAST(&s31));
670 p = unitrazer_getLastOut();
671 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
675test_transitionLoopNestedCompositeState(
void)
686 smTest_xS2211_Expect(
RKH_CAST(SmTest, smTest));
687 smTest_xS221_Expect(
RKH_CAST(SmTest, smTest));
688 smTest_tr54_Expect(
RKH_CAST(SmTest, smTest), &event);
690 smTest_nS221_Expect(
RKH_CAST(SmTest, smTest));
692 smTest_nS2211_Expect(
RKH_CAST(SmTest, smTest));
694 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
695 sm_dch_expect(event.
e, RKH_STATE_CAST(&s2211));
696 sm_trn_expect(RKH_STATE_CAST(&s22), RKH_STATE_CAST(&s22));
697 sm_tsState_expect(RKH_STATE_CAST(&s22));
698 sm_exstate_expect(RKH_STATE_CAST(&s2211));
699 sm_exstate_expect(RKH_STATE_CAST(&s221));
700 sm_tsState_expect(RKH_STATE_CAST(&s221));
701 sm_enstate_expect(RKH_STATE_CAST(&s221));
702 sm_tsState_expect(RKH_STATE_CAST(&s2211));
703 sm_enstate_expect(RKH_STATE_CAST(&s2211));
704 sm_nenex_expect(nEnSt, nExSt);
705 sm_state_expect(RKH_STATE_CAST(&s2211));
709 setState(smTest, RKH_STATE_CAST(&s2211));
712 p = unitrazer_getLastOut();
713 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
717test_transitionCompositeToSimpleFromLowToHighLevel(
void)
721 stateList_create(targetStates, 1, &s0);
722 stateList_create(entryStates, 1, &s0);
723 stateList_create(exitStates, 3, &s221, &s22, &s2);
726 smTest_xS221_Expect(
RKH_CAST(SmTest, smTest));
727 smTest_xS22_Expect(
RKH_CAST(SmTest, smTest));
728 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
729 smTest_tr33_Expect(
RKH_CAST(SmTest, smTest), &evB);
730 smTest_nS0_Expect(
RKH_CAST(SmTest, smTest));
732 setProfile(smTest, RKH_STATE_CAST(&waiting),
733 RKH_STATE_CAST(&s221), RKH_STATE_CAST(&s22),
734 targetStates, entryStates, exitStates,
735 RKH_STATE_CAST(&s0), 1, TRN_NOT_INTERNAL, INIT_STATE_MACHINE,
736 &evB, RKH_STATE_CAST(&s221));
740 p = unitrazer_getLastOut();
741 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
745test_transitionCompositeToCompositeAtEqualLevel(
void)
756 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
757 smTest_xS3_Expect(
RKH_CAST(SmTest, smTest));
758 smTest_tr41_Expect(
RKH_CAST(SmTest, smTest), &event);
759 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
761 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
763 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
764 sm_dch_expect(event.
e, RKH_STATE_CAST(&s31));
765 sm_trn_expect(RKH_STATE_CAST(&s3), RKH_STATE_CAST(&s2));
766 sm_tsState_expect(RKH_STATE_CAST(&s2));
767 sm_exstate_expect(RKH_STATE_CAST(&s31));
768 sm_exstate_expect(RKH_STATE_CAST(&s3));
769 sm_enstate_expect(RKH_STATE_CAST(&s2));
770 sm_tsState_expect(RKH_STATE_CAST(&s21));
771 sm_enstate_expect(RKH_STATE_CAST(&s21));
772 sm_nenex_expect(nEnSt, nExSt);
773 sm_state_expect(RKH_STATE_CAST(&s21));
777 setState(smTest, RKH_STATE_CAST(&s31));
780 p = unitrazer_getLastOut();
781 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
785test_transitionCompositeToCompositeFromHighToLowLevel(
void)
796 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
797 smTest_xS3_Expect(
RKH_CAST(SmTest, smTest));
798 smTest_tr42_Expect(
RKH_CAST(SmTest, smTest), &event);
799 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
800 smTest_nS22_Expect(
RKH_CAST(SmTest, smTest));
802 smTest_nS221_Expect(
RKH_CAST(SmTest, smTest));
804 smTest_nS2211_Expect(
RKH_CAST(SmTest, smTest));
806 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
807 sm_dch_expect(event.
e, RKH_STATE_CAST(&s31));
808 sm_trn_expect(RKH_STATE_CAST(&s3), RKH_STATE_CAST(&s22));
809 sm_tsState_expect(RKH_STATE_CAST(&s22));
810 sm_exstate_expect(RKH_STATE_CAST(&s31));
811 sm_exstate_expect(RKH_STATE_CAST(&s3));
812 sm_enstate_expect(RKH_STATE_CAST(&s2));
813 sm_enstate_expect(RKH_STATE_CAST(&s22));
814 sm_tsState_expect(RKH_STATE_CAST(&s221));
815 sm_enstate_expect(RKH_STATE_CAST(&s221));
816 sm_tsState_expect(RKH_STATE_CAST(&s2211));
817 sm_enstate_expect(RKH_STATE_CAST(&s2211));
818 sm_nenex_expect(nEnSt, nExSt);
819 sm_state_expect(RKH_STATE_CAST(&s2211));
823 setState(smTest, RKH_STATE_CAST(&s31));
826 p = unitrazer_getLastOut();
827 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
831test_transitionCompositeToCompositeFromLowToHighLevel(
void)
842 smTest_xS2211_Expect(
RKH_CAST(SmTest, smTest));
843 smTest_xS221_Expect(
RKH_CAST(SmTest, smTest));
844 smTest_xS22_Expect(
RKH_CAST(SmTest, smTest));
845 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
846 smTest_tr43_Expect(
RKH_CAST(SmTest, smTest), &event);
847 smTest_nS3_Expect(
RKH_CAST(SmTest, smTest));
849 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
851 expInitSm((
RKH_SMA_T *)smTest, RKH_STATE_CAST(&waiting));
852 sm_dch_expect(event.
e, RKH_STATE_CAST(&s2211));
853 sm_trn_expect(RKH_STATE_CAST(&s22), RKH_STATE_CAST(&s3));
854 sm_tsState_expect(RKH_STATE_CAST(&s3));
855 sm_exstate_expect(RKH_STATE_CAST(&s2211));
856 sm_exstate_expect(RKH_STATE_CAST(&s221));
857 sm_exstate_expect(RKH_STATE_CAST(&s22));
858 sm_exstate_expect(RKH_STATE_CAST(&s2));
859 sm_enstate_expect(RKH_STATE_CAST(&s3));
860 sm_tsState_expect(RKH_STATE_CAST(&s31));
861 sm_enstate_expect(RKH_STATE_CAST(&s31));
862 sm_nenex_expect(nEnSt, nExSt);
863 sm_state_expect(RKH_STATE_CAST(&s31));
867 setState(smTest, RKH_STATE_CAST(&s2211));
870 p = unitrazer_getLastOut();
871 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
875test_transitionInternalInSimpleState(
void)
879 stateList_create(targetStates, 1, &s1);
880 stateList_create(entryStates, 0);
881 stateList_create(exitStates, 0);
884 smTest_tr14_Expect(
RKH_CAST(SmTest, smTest), &evB);
886 setProfile(smTest, RKH_STATE_CAST(&waiting),
887 RKH_STATE_CAST(&s1), RKH_STATE_CAST(&s1),
888 targetStates, entryStates, exitStates,
889 RKH_STATE_CAST(&s1), 1, TRN_INTERNAL, INIT_STATE_MACHINE,
890 &evB, RKH_STATE_CAST(&s1));
894 p = unitrazer_getLastOut();
895 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
899test_transitionInternalInCompositeState(
void)
903 stateList_create(targetStates, 1, &s3);
904 stateList_create(entryStates, 0);
905 stateList_create(exitStates, 0);
908 smTest_tr15_Expect(
RKH_CAST(SmTest, smTest), &evE);
910 setProfile(smTest, RKH_STATE_CAST(&waiting),
911 RKH_STATE_CAST(&s31), RKH_STATE_CAST(&s3),
912 targetStates, entryStates, exitStates,
913 RKH_STATE_CAST(&s31), 1, TRN_INTERNAL, INIT_STATE_MACHINE,
914 &evE, RKH_STATE_CAST(&s31));
918 p = unitrazer_getLastOut();
919 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
923test_transitionFails_EventNotFound(
void)
929 expInitSm(smTest, RKH_STATE_CAST(&waiting));
930 sm_dch_expect(evE.e, RKH_STATE_CAST(&s1));
931 sm_evtNotFound_expect(E);
934 setState(smTest, RKH_STATE_CAST(&s1));
937 p = unitrazer_getLastOut();
938 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
942test_transitionFails_GuardFalse(
void)
946 expInitSm(smTest, RKH_STATE_CAST(&waiting));
947 sm_grdFalse_expect();
948 sm_dch_expect(evC.e, RKH_STATE_CAST(&s1));
949 sm_evtNotFound_expect(C);
952 smTest_falseGuard_ExpectAndReturn(
RKH_CAST(SmTest, smTest), &evC,
956 setState(smTest, RKH_STATE_CAST(&s1));
959 p = unitrazer_getLastOut();
960 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
964test_transitionFails_ExceededHierarchicalLevel(
void)
968 expInitSm(smTest, RKH_STATE_CAST(&waiting));
970 sm_dch_expect(evE.e, RKH_STATE_CAST(&s0));
971 sm_trn_expect(RKH_STATE_CAST(&s0), RKH_STATE_CAST(&s22211));
972 sm_tsState_expect(RKH_STATE_CAST(&s22211));
973 sm_exHLevel_expect();
974 rkh_assert_Expect(
"rkhsm", 0);
975 rkh_assert_IgnoreArg_file();
976 rkh_assert_IgnoreArg_line();
979 setState(smTest, RKH_STATE_CAST(&s0));
982 p = unitrazer_getLastOut();
983 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
987test_transitionMultipleEnabledTrn_FiringFirstTrueGuard(
void)
1000 sm_ntrnact_ignore();
1003 sm_evtProc_ignore();
1004 sm_grdFalse_expect();
1007 setState(smTest, RKH_STATE_CAST(&s4));
1010 p = unitrazer_getLastOut();
1011 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1015test_transitionMultipleEnabledTrn_FiringFirstEmptyGuard(
void)
1026 sm_enstate_ignore();
1027 sm_exstate_ignore();
1028 sm_ntrnact_ignore();
1029 sm_evtProc_ignore();
1034 sm_tsState_expect(RKH_STATE_CAST(&waiting));
1035 sm_grdFalse_expect();
1036 sm_grdFalse_expect();
1037 sm_tsState_expect(RKH_STATE_CAST(&s4));
1040 setState(smTest, RKH_STATE_CAST(&s4));
1043 p = unitrazer_getLastOut();
1044 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1048test_transitionDefaultTrnWithAssociatedEffect(
void)
1059 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
1060 smTest_tr55_Expect(
RKH_CAST(SmTest, smTest), &event);
1061 smTest_nS3_Expect(
RKH_CAST(SmTest, smTest));
1063 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
1065 expInitSm(smTest, RKH_STATE_CAST(&waiting));
1066 sm_dch_expect(event.
e, RKH_STATE_CAST(&s0));
1067 sm_trn_expect(RKH_STATE_CAST(&s0), RKH_STATE_CAST(&s3));
1068 sm_tsState_expect(RKH_STATE_CAST(&s3));
1069 sm_exstate_expect(RKH_STATE_CAST(&s0));
1070 sm_enstate_expect(RKH_STATE_CAST(&s3));
1071 sm_tsState_expect(RKH_STATE_CAST(&s31));
1072 sm_enstate_expect(RKH_STATE_CAST(&s31));
1073 sm_nenex_expect(nEnSt, nExSt);
1074 sm_state_expect(RKH_STATE_CAST(&s31));
1075 sm_evtProc_expect();
1078 setState(smTest, RKH_STATE_CAST(&s0));
1081 p = unitrazer_getLastOut();
1082 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1086test_transitionGeneratedCompletionEventBySimpleState(
void)
1090 stateList_create(targetStates, 1, &s5);
1091 stateList_create(entryStates, 1, &s5);
1092 stateList_create(exitStates, 2, &s21, &s2);
1096 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1097 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1098 smTest_nS5_Expect(
RKH_CAST(SmTest, smTest));
1100 setProfile(smTest, RKH_STATE_CAST(&waiting),
1101 RKH_STATE_CAST(&s21), RKH_STATE_CAST(&s2),
1102 targetStates, entryStates, exitStates,
1103 RKH_STATE_CAST(&s5), 0, TRN_NOT_INTERNAL, INIT_STATE_MACHINE,
1104 &evE, RKH_STATE_CAST(&s21));
1107 stateList_create(targetStates, 1, &s4);
1108 stateList_create(entryStates, 1, &s4);
1109 stateList_create(exitStates, 1, &s5);
1111 smTest_xS5_Expect(
RKH_CAST(SmTest, smTest));
1114 setProfile(smTest, RKH_STATE_CAST(&waiting),
1115 NULL, RKH_STATE_CAST(&s5),
1116 targetStates, entryStates, exitStates,
1117 RKH_STATE_CAST(&s4), 1, TRN_NOT_INTERNAL,
1118 NO_INIT_STATE_MACHINE, &evCompletion, RKH_STATE_CAST(&s5));
1123 p = unitrazer_getLastOut();
1124 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1128test_transitionGeneratedCompletionEventByFinalState(
void)
1132 stateList_create(targetStates, 1, &s2Final);
1133 stateList_create(entryStates, 1, &s2Final);
1134 stateList_create(exitStates, 1, &s21);
1138 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1140 setProfile(smTest, RKH_STATE_CAST(&waiting),
1141 RKH_STATE_CAST(&s21), RKH_STATE_CAST(&s21),
1142 targetStates, entryStates, exitStates,
1143 RKH_STATE_CAST(&s2Final), 0, TRN_NOT_INTERNAL,
1144 INIT_STATE_MACHINE, &evF, RKH_STATE_CAST(&s21));
1147 stateList_create(targetStates, 1, &s4);
1148 stateList_create(entryStates, 1, &s4);
1149 stateList_create(exitStates, 2, &s2Final, &s2);
1151 smTest_guardS2_ExpectAndReturn(
RKH_CAST(SmTest, smTest),
1154 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1157 setProfile(smTest, RKH_STATE_CAST(&waiting),
1158 NULL, RKH_STATE_CAST(&s2),
1159 targetStates, entryStates, exitStates,
1160 RKH_STATE_CAST(&s4), 1, TRN_NOT_INTERNAL,
1161 NO_INIT_STATE_MACHINE, &evCompletion, RKH_STATE_CAST(&s2Final));
1166 p = unitrazer_getLastOut();
1167 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1171test_transitionSyncDispatchingToStateMachine(
void)
1177test_transitionToStateMachineFinalState(
void)
1181 stateList_create(targetStates, 1, &SmTest_Final);
1182 stateList_create(entryStates, 1, &SmTest_Final);
1183 stateList_create(exitStates, 1, &waiting);
1187 setProfile(smTest, RKH_STATE_CAST(&waiting),
1188 RKH_STATE_CAST(&waiting), RKH_STATE_CAST(&waiting),
1189 targetStates, entryStates, exitStates,
1190 RKH_STATE_CAST(&SmTest_Final), 1, TRN_NOT_INTERNAL,
1192 &evB, RKH_STATE_CAST(&waiting));
1196 p = unitrazer_getLastOut();
1197 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1211test_trnWoutUnitrazerFirstStateAfterInit(
void)
1213 setUpWoutUnitrazer();
1216 expectedState = RKH_STATE_CAST(&waiting);
1220 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1224test_trnWoutUnitrazerSimpleToSimpleAtEqualLevel(
void)
1226 setUpWoutUnitrazer();
1228 expectedState = RKH_STATE_CAST(&s1);
1231 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
1232 smTest_tr11_Expect(
RKH_CAST(SmTest, smTest), &evA);
1233 smTest_nS1_Expect(
RKH_CAST(SmTest, smTest));
1234 setProfileWoutUnitrazer(smTest,
1235 RKH_STATE_CAST(&s0),
1236 RKH_STATE_CAST(&s0),
1238 INIT_STATE_MACHINE);
1242 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1247test_trnWoutUnitrazerSimpleToSimpleFromHighToLowLevel(
void)
1249 setUpWoutUnitrazer();
1251 expectedState = RKH_STATE_CAST(&s21);
1254 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
1255 smTest_tr12_Expect(
RKH_CAST(SmTest, smTest), &evB);
1256 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
1257 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
1258 setProfileWoutUnitrazer(smTest,
1259 RKH_STATE_CAST(&s0),
1260 RKH_STATE_CAST(&s0),
1262 INIT_STATE_MACHINE);
1266 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1271test_trnWoutUnitrazerSimpleToSimpleFromLowToHighLevel(
void)
1273 setUpWoutUnitrazer();
1275 expectedState = RKH_STATE_CAST(&s0);
1278 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1279 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1280 smTest_tr13_Expect(
RKH_CAST(SmTest, smTest), &evB);
1281 smTest_nS0_Expect(
RKH_CAST(SmTest, smTest));
1282 setProfileWoutUnitrazer(smTest,
1283 RKH_STATE_CAST(&s21),
1284 RKH_STATE_CAST(&s21),
1286 INIT_STATE_MACHINE);
1290 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1295test_trnWoutUnitrazerSimpleToCompositeAtEqualLevel(
void)
1297 setUpWoutUnitrazer();
1299 expectedState = RKH_STATE_CAST(&s21);
1302 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
1303 smTest_tr21_Expect(
RKH_CAST(SmTest, smTest), &evC);
1304 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
1305 smTest_iS2_Expect(
RKH_CAST(SmTest, smTest), &evC);
1306 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
1307 setProfileWoutUnitrazer(smTest,
1308 RKH_STATE_CAST(&s0),
1309 RKH_STATE_CAST(&s0),
1311 INIT_STATE_MACHINE);
1315 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1320test_trnWoutUnitrazerSimpleToCompositeFromHighToLowLevel(
void)
1322 setUpWoutUnitrazer();
1324 expectedState = RKH_STATE_CAST(&s2211);
1327 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
1328 smTest_tr22_Expect(
RKH_CAST(SmTest, smTest), &evD);
1329 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
1330 smTest_nS22_Expect(
RKH_CAST(SmTest, smTest));
1331 smTest_iS22_Expect(
RKH_CAST(SmTest, smTest), &evD);
1332 smTest_nS221_Expect(
RKH_CAST(SmTest, smTest));
1333 smTest_iS221_Expect(
RKH_CAST(SmTest, smTest), &evD);
1334 smTest_nS2211_Expect(
RKH_CAST(SmTest, smTest));
1335 setProfileWoutUnitrazer(smTest,
1336 RKH_STATE_CAST(&s0),
1337 RKH_STATE_CAST(&s0),
1339 INIT_STATE_MACHINE);
1343 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1348test_trnWoutUnitrazerSimpleToCompositeFromLowToHighLevel(
void)
1350 setUpWoutUnitrazer();
1352 expectedState = RKH_STATE_CAST(&s21);
1355 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1356 smTest_tr23_Expect(
RKH_CAST(SmTest, smTest), &evC);
1357 smTest_iS2_Expect(
RKH_CAST(SmTest, smTest), &evC);
1358 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
1359 setProfileWoutUnitrazer(smTest,
1360 RKH_STATE_CAST(&s21),
1361 RKH_STATE_CAST(&s21),
1363 INIT_STATE_MACHINE);
1367 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1372test_trnWoutUnitrazerCompositeToSimpleAtEqualLevel(
void)
1374 setUpWoutUnitrazer();
1376 expectedState = RKH_STATE_CAST(&s0);
1379 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1380 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1381 smTest_tr31_Expect(
RKH_CAST(SmTest, smTest), &evA);
1382 smTest_nS0_Expect(
RKH_CAST(SmTest, smTest));
1383 setProfileWoutUnitrazer(smTest,
1384 RKH_STATE_CAST(&s21),
1385 RKH_STATE_CAST(&s2),
1387 INIT_STATE_MACHINE);
1391 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1396test_trnWoutUnitrazerCompositeToSimpleFromHighToLowLevel(
void)
1398 setUpWoutUnitrazer();
1400 expectedState = RKH_STATE_CAST(&s21);
1403 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1404 smTest_tr32_Expect(
RKH_CAST(SmTest, smTest), &evD);
1405 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
1406 setProfileWoutUnitrazer(smTest,
1407 RKH_STATE_CAST(&s21),
1408 RKH_STATE_CAST(&s2),
1410 INIT_STATE_MACHINE);
1414 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1419test_trnWoutUnitrazerLoopSimpleStateOnTop(
void)
1421 setUpWoutUnitrazer();
1423 expectedState = RKH_STATE_CAST(&s1);
1426 smTest_xS1_Expect(
RKH_CAST(SmTest, smTest));
1427 smTest_tr53_Expect(
RKH_CAST(SmTest, smTest), &evA);
1428 smTest_nS1_Expect(
RKH_CAST(SmTest, smTest));
1429 setProfileWoutUnitrazer(smTest,
1430 RKH_STATE_CAST(&s1),
1431 RKH_STATE_CAST(&s1),
1433 INIT_STATE_MACHINE);
1437 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1442test_trnWoutUnitrazerLoopNestedSimpleState(
void)
1444 setUpWoutUnitrazer();
1446 expectedState = RKH_STATE_CAST(&s31);
1449 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
1450 smTest_tr52_Expect(
RKH_CAST(SmTest, smTest), &evD);
1451 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
1452 setProfileWoutUnitrazer(smTest,
1453 RKH_STATE_CAST(&s31),
1454 RKH_STATE_CAST(&s31),
1456 INIT_STATE_MACHINE);
1460 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1465test_trnWoutUnitrazerLoopCompositeStateOnTop(
void)
1467 setUpWoutUnitrazer();
1469 expectedState = RKH_STATE_CAST(&s31);
1472 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
1473 smTest_tr51_Expect(
RKH_CAST(SmTest, smTest), &evA);
1474 smTest_iS3_Expect(
RKH_CAST(SmTest, smTest), &evA);
1475 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
1476 setProfileWoutUnitrazer(smTest,
1477 RKH_STATE_CAST(&s31),
1478 RKH_STATE_CAST(&s3),
1480 INIT_STATE_MACHINE);
1484 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1489test_trnWoutUnitrazerLoopNestedCompositeState(
void)
1491 setUpWoutUnitrazer();
1493 expectedState = RKH_STATE_CAST(&s2211);
1496 smTest_xS2211_Expect(
RKH_CAST(SmTest, smTest));
1497 smTest_xS221_Expect(
RKH_CAST(SmTest, smTest));
1498 smTest_tr54_Expect(
RKH_CAST(SmTest, smTest), &evD);
1499 smTest_iS22_Expect(
RKH_CAST(SmTest, smTest), &evD);
1500 smTest_nS221_Expect(
RKH_CAST(SmTest, smTest));
1501 smTest_iS221_Expect(
RKH_CAST(SmTest, smTest), &evD);
1502 smTest_nS2211_Expect(
RKH_CAST(SmTest, smTest));
1503 setProfileWoutUnitrazer(smTest,
1504 RKH_STATE_CAST(&s2211),
1505 RKH_STATE_CAST(&s22),
1507 INIT_STATE_MACHINE);
1511 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1516test_trnWoutUnitrazerCompositeToSimpleFromLowToHighLevel(
void)
1518 setUpWoutUnitrazer();
1520 expectedState = RKH_STATE_CAST(&s0);
1523 smTest_xS2211_Expect(
RKH_CAST(SmTest, smTest));
1524 smTest_xS221_Expect(
RKH_CAST(SmTest, smTest));
1525 smTest_xS22_Expect(
RKH_CAST(SmTest, smTest));
1526 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1527 smTest_tr33_Expect(
RKH_CAST(SmTest, smTest), &evB);
1528 smTest_nS0_Expect(
RKH_CAST(SmTest, smTest));
1529 setProfileWoutUnitrazer(smTest,
1530 RKH_STATE_CAST(&s2211),
1531 RKH_STATE_CAST(&s22),
1533 INIT_STATE_MACHINE);
1537 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1542test_trnWoutUnitrazerCompositeToCompositeAtEqualLevel(
void)
1544 setUpWoutUnitrazer();
1546 expectedState = RKH_STATE_CAST(&s21);
1549 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
1550 smTest_xS3_Expect(
RKH_CAST(SmTest, smTest));
1551 smTest_tr41_Expect(
RKH_CAST(SmTest, smTest), &evB);
1552 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
1553 smTest_iS2_Expect(
RKH_CAST(SmTest, smTest), &evB);
1554 smTest_nS21_Expect(
RKH_CAST(SmTest, smTest));
1555 setProfileWoutUnitrazer(smTest,
1556 RKH_STATE_CAST(&s31),
1557 RKH_STATE_CAST(&s3),
1559 INIT_STATE_MACHINE);
1563 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1568test_trnWoutUnitrazerCompositeToCompositeFromHighToLowLevel(
void)
1570 setUpWoutUnitrazer();
1572 expectedState = RKH_STATE_CAST(&s2211);
1575 smTest_xS31_Expect(
RKH_CAST(SmTest, smTest));
1576 smTest_xS3_Expect(
RKH_CAST(SmTest, smTest));
1577 smTest_tr42_Expect(
RKH_CAST(SmTest, smTest), &evC);
1578 smTest_nS2_Expect(
RKH_CAST(SmTest, smTest));
1579 smTest_nS22_Expect(
RKH_CAST(SmTest, smTest));
1580 smTest_iS22_Expect(
RKH_CAST(SmTest, smTest), &evC);
1581 smTest_nS221_Expect(
RKH_CAST(SmTest, smTest));
1582 smTest_iS221_Expect(
RKH_CAST(SmTest, smTest), &evC);
1583 smTest_nS2211_Expect(
RKH_CAST(SmTest, smTest));
1584 setProfileWoutUnitrazer(smTest,
1585 RKH_STATE_CAST(&s31),
1586 RKH_STATE_CAST(&s3),
1588 INIT_STATE_MACHINE);
1592 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1597test_trnWoutUnitrazerCompositeToCompositeFromLowToHighLevel(
void)
1599 setUpWoutUnitrazer();
1601 expectedState = RKH_STATE_CAST(&s31);
1604 smTest_xS2211_Expect(
RKH_CAST(SmTest, smTest));
1605 smTest_xS221_Expect(
RKH_CAST(SmTest, smTest));
1606 smTest_xS22_Expect(
RKH_CAST(SmTest, smTest));
1607 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1608 smTest_tr43_Expect(
RKH_CAST(SmTest, smTest), &evC);
1609 smTest_nS3_Expect(
RKH_CAST(SmTest, smTest));
1610 smTest_iS3_Expect(
RKH_CAST(SmTest, smTest), &evC);
1611 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
1612 setProfileWoutUnitrazer(smTest,
1613 RKH_STATE_CAST(&s2211),
1614 RKH_STATE_CAST(&s3),
1616 INIT_STATE_MACHINE);
1620 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1625test_trnWoutUnitrazerInternalInSimpleState(
void)
1627 setUpWoutUnitrazer();
1629 expectedState = RKH_STATE_CAST(&s1);
1632 smTest_tr14_Expect(
RKH_CAST(SmTest, smTest), &evB);
1633 setProfileWoutUnitrazer(smTest,
1634 RKH_STATE_CAST(&s1),
1635 RKH_STATE_CAST(&s1),
1637 INIT_STATE_MACHINE);
1641 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1646test_trnWoutUnitrazerInternalInCompositeState(
void)
1648 setUpWoutUnitrazer();
1650 expectedState = RKH_STATE_CAST(&s31);
1653 smTest_tr15_Expect(
RKH_CAST(SmTest, smTest), &evE);
1654 setProfileWoutUnitrazer(smTest,
1655 RKH_STATE_CAST(&s31),
1656 RKH_STATE_CAST(&s3),
1658 INIT_STATE_MACHINE);
1662 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1666test_trnWoutUnitrazerFails_EventNotFound(
void)
1668 setUpWoutUnitrazer();
1670 expectedState = RKH_STATE_CAST(&s1);
1673 setProfileWoutUnitrazer(smTest,
1674 RKH_STATE_CAST(&s1),
1675 RKH_STATE_CAST(&s1),
1677 INIT_STATE_MACHINE);
1681 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1686test_trnWoutUnitrazerFails_GuardFalseOnInternalTrn(
void)
1688 setUpWoutUnitrazer();
1690 expectedState = RKH_STATE_CAST(&s1);
1693 smTest_falseGuard_ExpectAndReturn(
RKH_CAST(SmTest, smTest), &evC,
1695 setProfileWoutUnitrazer(smTest,
1696 RKH_STATE_CAST(&s1),
1697 RKH_STATE_CAST(&s1),
1699 INIT_STATE_MACHINE);
1703 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1708test_trnWoutUnitrazerFails_GuardFalseOnExternalTrn(
void)
1710 setUpWoutUnitrazer();
1712 expectedState = RKH_STATE_CAST(&s1);
1715 smTest_falseGuard_ExpectAndReturn(
RKH_CAST(SmTest, smTest), &evD,
1717 setProfileWoutUnitrazer(smTest,
1718 RKH_STATE_CAST(&s1),
1719 RKH_STATE_CAST(&s1),
1721 INIT_STATE_MACHINE);
1725 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1730test_trnWoutUnitrazerFails_ExceededHierarchicalLevel(
void)
1732 setUpWoutUnitrazer();
1734 expectedState = RKH_STATE_CAST(&s0);
1737 setProfileWoutUnitrazer(smTest,
1738 RKH_STATE_CAST(&s0),
1739 RKH_STATE_CAST(&s0),
1741 INIT_STATE_MACHINE);
1742 rkh_assert_Expect(
"rkhsm", 0);
1743 rkh_assert_IgnoreArg_file();
1744 rkh_assert_IgnoreArg_line();
1748 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1753test_trnWoutUnitrazerMultipleEnabledTrn_FiringFirstTrueGuard(
void)
1755 setUpWoutUnitrazer();
1757 expectedState = RKH_STATE_CAST(&s4);
1762 setProfileWoutUnitrazer(smTest,
1763 RKH_STATE_CAST(&s4),
1764 RKH_STATE_CAST(&s4),
1766 INIT_STATE_MACHINE);
1770 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1775test_trnWoutUnitrazerMultipleEnabledTrn_FiringFirstEmptyGuard(
void)
1777 setUpWoutUnitrazer();
1779 expectedState = RKH_STATE_CAST(&s4);
1784 setProfileWoutUnitrazer(smTest,
1785 RKH_STATE_CAST(&s4),
1786 RKH_STATE_CAST(&s4),
1788 INIT_STATE_MACHINE);
1792 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1797test_trnWoutUnitrazerDefaultTrnWithAssociatedEffect(
void)
1799 setUpWoutUnitrazer();
1801 expectedState = RKH_STATE_CAST(&s31);
1804 smTest_xS0_Expect(
RKH_CAST(SmTest, smTest));
1805 smTest_tr55_Expect(
RKH_CAST(SmTest, smTest), &evF);
1806 smTest_nS3_Expect(
RKH_CAST(SmTest, smTest));
1807 smTest_iS3_Expect(
RKH_CAST(SmTest, smTest), &evF);
1808 smTest_nS31_Expect(
RKH_CAST(SmTest, smTest));
1809 setProfileWoutUnitrazer(smTest,
1810 RKH_STATE_CAST(&s0),
1811 RKH_STATE_CAST(&s0),
1813 INIT_STATE_MACHINE);
1817 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1822test_trnWoutUnitrazerGeneratedCompletionEventBySimpleState(
void)
1824 setUpWoutUnitrazer();
1826 expectedState = RKH_STATE_CAST(&s4);
1830 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1831 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1832 smTest_nS5_Expect(
RKH_CAST(SmTest, smTest));
1834 smTest_xS5_Expect(
RKH_CAST(SmTest, smTest));
1836 setProfileWoutUnitrazer(smTest,
1837 RKH_STATE_CAST(&s21),
1838 RKH_STATE_CAST(&s2),
1840 INIT_STATE_MACHINE);
1844 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1849test_trnWoutUnitrazerGeneratedCompletionEventByFinalState(
void)
1851 setUpWoutUnitrazer();
1853 expectedState = RKH_STATE_CAST(&s4);
1857 smTest_xS21_Expect(
RKH_CAST(SmTest, smTest));
1859 smTest_guardS2_ExpectAndReturn(
RKH_CAST(SmTest, smTest),
1862 smTest_xS2_Expect(
RKH_CAST(SmTest, smTest));
1864 setProfileWoutUnitrazer(smTest,
1865 RKH_STATE_CAST(&s21),
1866 RKH_STATE_CAST(&s21),
1868 INIT_STATE_MACHINE);
1872 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1877test_trnWoutUnitrazerSyncDispatchingToStateMachine(
void)
1881 setUpWoutUnitrazer();
1885test_trnWoutUnitrazerPropagateAnEvent(
void)
1887 setUpWoutUnitrazer();
1889 expectedState = RKH_STATE_CAST(&waiting);
1892 smTest_tr16_Expect(
RKH_CAST(SmTest, smTest), &evC);
1893 smTest_tr16_StubWithCallback(MockEffectCallback0);
1894 smTest_tr17_Expect(
RKH_CAST(SmTest, smTest), &evD);
1895 smTest_tr17_StubWithCallback(MockEffectCallback1);
1896 setProfileWoutUnitrazer(smTest,
1897 RKH_STATE_CAST(&waiting),
1898 RKH_STATE_CAST(&waiting),
1900 INIT_STATE_MACHINE);
1904 TEST_ASSERT_TRUE(expectedState == getState(smTest));
1917test_pseudostateConditionalFirstStateAfterInit(
void)
1921 sm_init_expect(RKH_STATE_CAST(&smPCT_waiting));
1922 sm_trn_expect(RKH_STATE_CAST(&smPCT_waiting),
1923 RKH_STATE_CAST(&smPCT_waiting));
1924 sm_tsState_expect(RKH_STATE_CAST(&smPCT_waiting));
1925 sm_enstate_expect(RKH_STATE_CAST(&smPCT_waiting));
1926 sm_nenex_expect(1, 0);
1927 sm_state_expect(RKH_STATE_CAST(&smPCT_waiting));
1928 sm_evtProc_expect();
1932 p = unitrazer_getLastOut();
1933 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1937test_pseudostateConditionalTrnToChoiceWithTrueCondition(
void)
1940 SmPseudoConditionalTest *me =
RKH_CAST(SmPseudoConditionalTest,
1941 smPseudoConditionalTest);
1944 smPCT_setCondition_Expect(
1945 RKH_CAST(SmPseudoConditionalTest, me), &evA);
1946 smPCT_onEventA_ExpectAndReturn(
1947 RKH_CAST(SmPseudoConditionalTest, me),
1950 RKH_CAST(SmPseudoConditionalTest, me), &evA);
1952 expInitSm((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_waiting));
1954 sm_dch_expect(evA.e, RKH_STATE_CAST(&smPCT_s0));
1955 sm_trn_expect(RKH_STATE_CAST(&smPCT_s0), RKH_STATE_CAST(&smPCT_choice1));
1956 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice1));
1959 sm_tsState_expect(RKH_STATE_CAST(&smPCT_s1));
1961 sm_exstate_expect(RKH_STATE_CAST(&smPCT_s0));
1963 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s1));
1964 sm_tsState_expect(RKH_STATE_CAST(&smPCT_s11));
1965 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s11));
1966 sm_nenex_expect(2, 1);
1968 sm_state_expect(RKH_STATE_CAST(&smPCT_s11));
1969 sm_evtProc_expect();
1973 setState((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_s0));
1977 p = unitrazer_getLastOut();
1978 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
1982test_pseudostateConditionalTrnToChoiceWithFalseCondition(
void)
1985 SmPseudoConditionalTest *me =
RKH_CAST(SmPseudoConditionalTest,
1986 smPseudoConditionalTest);
1989 smPCT_setCondition_Expect(
1990 RKH_CAST(SmPseudoConditionalTest, me), &evB);
1991 smPCT_onEventA_ExpectAndReturn(
1992 RKH_CAST(SmPseudoConditionalTest, me),
1994 smPCT_onEventD_ExpectAndReturn(
1995 RKH_CAST(SmPseudoConditionalTest, me),
1998 RKH_CAST(SmPseudoConditionalTest, me), &evB);
2000 expInitSm((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_waiting));
2002 sm_dch_expect(evB.e, RKH_STATE_CAST(&smPCT_s0));
2003 sm_trn_expect(RKH_STATE_CAST(&smPCT_s0), RKH_STATE_CAST(&smPCT_choice1));
2004 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice1));
2007 sm_tsState_expect(RKH_STATE_CAST(&smPCT_s12));
2009 sm_exstate_expect(RKH_STATE_CAST(&smPCT_s0));
2011 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s1));
2012 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s12));
2013 sm_nenex_expect(2, 1);
2015 sm_state_expect(RKH_STATE_CAST(&smPCT_s12));
2016 sm_evtProc_expect();
2019 setState((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_s0));
2023 p = unitrazer_getLastOut();
2024 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2028test_pseudostateConditionalTrnToChoiceWithoutElse(
void)
2031 SmPseudoConditionalTest *me =
RKH_CAST(SmPseudoConditionalTest,
2032 smPseudoConditionalTest);
2035 smPCT_onEventA_ExpectAndReturn(
2036 RKH_CAST(SmPseudoConditionalTest, me),
2039 expInitSm((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_waiting));
2041 sm_dch_expect(evC.e, RKH_STATE_CAST(&smPCT_s0));
2042 sm_trn_expect(RKH_STATE_CAST(&smPCT_s0), RKH_STATE_CAST(&smPCT_choice2));
2043 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice2));
2045 sm_cndNotFound_expect();
2048 setState((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_s0));
2052 p = unitrazer_getLastOut();
2053 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2057test_pseudostateConditionalTrnToChoiceReturnToSource(
void)
2060 SmPseudoConditionalTest *me =
RKH_CAST(SmPseudoConditionalTest,
2061 smPseudoConditionalTest);
2064 smPCT_onEventA_ExpectAndReturn(
RKH_CAST(SmPseudoConditionalTest, me),
2066 smPCT_onEventD_ExpectAndReturn(
RKH_CAST(SmPseudoConditionalTest, me),
2068 smPCT_tr4_Expect(
RKH_CAST(SmPseudoConditionalTest, me), &evD);
2070 expInitSm((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_waiting));
2072 sm_dch_expect(evD.e, RKH_STATE_CAST(&smPCT_s0));
2073 sm_trn_expect(RKH_STATE_CAST(&smPCT_s0), RKH_STATE_CAST(&smPCT_choice1));
2074 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice1));
2077 sm_tsState_expect(RKH_STATE_CAST(&smPCT_s0));
2079 sm_exstate_expect(RKH_STATE_CAST(&smPCT_s0));
2081 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s0));
2082 sm_nenex_expect(1, 1);
2084 sm_state_expect(RKH_STATE_CAST(&smPCT_s0));
2085 sm_evtProc_expect();
2088 setState((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_s0));
2092 p = unitrazer_getLastOut();
2093 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2097test_pseudostateConditionalFailsTrnSegmentsExceeded(
void)
2100 SmPseudoConditionalTest *me =
RKH_CAST(SmPseudoConditionalTest,
2101 smPseudoConditionalTest);
2104 smPCT_tr1_Expect(
RKH_CAST(SmPseudoConditionalTest, me), &evE);
2105 smPCT_guardTrue_ExpectAndReturn(
RKH_CAST(SmPseudoConditionalTest, me),
2107 smPCT_tr1_Expect(
RKH_CAST(SmPseudoConditionalTest, me), &evE);
2108 smPCT_guardTrue_ExpectAndReturn(
RKH_CAST(SmPseudoConditionalTest, me),
2110 smPCT_tr1_Expect(
RKH_CAST(SmPseudoConditionalTest, me), &evE);
2111 smPCT_guardTrue_ExpectAndReturn(
RKH_CAST(SmPseudoConditionalTest, me),
2113 smPCT_tr1_Expect(
RKH_CAST(SmPseudoConditionalTest, me), &evE);
2114 smPCT_guardTrue_ExpectAndReturn(
RKH_CAST(SmPseudoConditionalTest, me),
2116 smPCT_tr1_Expect(
RKH_CAST(SmPseudoConditionalTest, me), &evE);
2118 expInitSm((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_waiting));
2120 sm_dch_expect(evE.e, RKH_STATE_CAST(&smPCT_s0));
2121 sm_trn_expect(RKH_STATE_CAST(&smPCT_s0), RKH_STATE_CAST(&smPCT_choice3));
2122 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice3));
2125 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice4));
2127 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice5));
2129 sm_tsState_expect(RKH_STATE_CAST(&smPCT_choice6));
2131 sm_tsState_expect(RKH_STATE_CAST(&smPCT_s1));
2133 sm_exstate_expect(RKH_STATE_CAST(&smPCT_s0));
2135 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s1));
2136 sm_tsState_expect(RKH_STATE_CAST(&smPCT_s11));
2137 sm_enstate_expect(RKH_STATE_CAST(&smPCT_s11));
2138 sm_nenex_expect(2, 1);
2140 sm_state_expect(RKH_STATE_CAST(&smPCT_s11));
2141 sm_evtProc_expect();
2144 setState((
RKH_SMA_T *)me, RKH_STATE_CAST(&smPCT_s0));
2148 p = unitrazer_getLastOut();
2149 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2161test_pseudostateFirstStateAfterInit(
void)
2165 sm_init_expect(RKH_STATE_CAST(&smPT_waiting));
2166 sm_trn_expect(RKH_STATE_CAST(&smPT_waiting),
2167 RKH_STATE_CAST(&smPT_waiting));
2168 sm_tsState_expect(RKH_STATE_CAST(&smPT_waiting));
2169 sm_enstate_expect(RKH_STATE_CAST(&smPT_waiting));
2170 sm_nenex_expect(1, 0);
2171 sm_state_expect(RKH_STATE_CAST(&smPT_waiting));
2172 sm_evtProc_expect();
2176 p = unitrazer_getLastOut();
2177 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2181test_pseudostateTrnToEmptyShallowHistoryWithoutDefaultTrn(
void)
2190 expInitSm((
RKH_SMA_T *)smPseudoTest, RKH_STATE_CAST(&smPT_waiting));
2191 sm_dch_expect(event.
e, RKH_STATE_CAST(&smPT_s0));
2192 sm_trn_expect(RKH_STATE_CAST(&smPT_s0), RKH_STATE_CAST(&smPT_s1Hist));
2193 sm_tsState_expect(RKH_STATE_CAST(&smPT_s1Hist));
2194 sm_tsState_expect(RKH_STATE_CAST(&smPT_s1));
2195 sm_exstate_expect(RKH_STATE_CAST(&smPT_s0));
2196 sm_enstate_expect(RKH_STATE_CAST(&smPT_s1));
2197 sm_tsState_expect(RKH_STATE_CAST(&smPT_s11));
2198 sm_enstate_expect(RKH_STATE_CAST(&smPT_s11));
2199 sm_nenex_expect(nEnSt, nExSt);
2200 sm_state_expect(RKH_STATE_CAST(&smPT_s11));
2201 sm_evtProc_expect();
2204 setState((
RKH_SMA_T *)smPseudoTest, RKH_STATE_CAST(&smPT_s0));
2207 p = unitrazer_getLastOut();
2208 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2212test_pseudostateTrnToLoadedShallowHistoryWithoutDefaultTrn(
void)
2221 expInitSm((
RKH_SMA_T *)smPseudoTest, RKH_STATE_CAST(&smPT_waiting));
2222 sm_dch_expect(event.
e, RKH_STATE_CAST(&smPT_s0));
2223 sm_trn_expect(RKH_STATE_CAST(&smPT_s0), RKH_STATE_CAST(&smPT_s1Hist));
2224 sm_tsState_expect(RKH_STATE_CAST(&smPT_s1Hist));
2225 sm_tsState_expect(RKH_STATE_CAST(&smPT_s12));
2226 sm_exstate_expect(RKH_STATE_CAST(&smPT_s0));
2227 sm_enstate_expect(RKH_STATE_CAST(&smPT_s1));
2228 sm_enstate_expect(RKH_STATE_CAST(&smPT_s12));
2229 sm_tsState_expect(RKH_STATE_CAST(&smPT_s121));
2230 sm_enstate_expect(RKH_STATE_CAST(&smPT_s121));
2231 sm_nenex_expect(nEnSt, nExSt);
2232 sm_state_expect(RKH_STATE_CAST(&smPT_s121));
2233 sm_evtProc_expect();
2236 setState((
RKH_SMA_T *)smPseudoTest, RKH_STATE_CAST(&smPT_s0));
2237 setHistory(&smPT_s1Hist, RKH_STATE_CAST(&smPT_s12));
2240 p = unitrazer_getLastOut();
2241 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2245test_pseudostateExitFromCompositeWithLoadedShallowHistory(
void)
2250 stateList_create(targetStates, 1, &smPT_s0);
2251 stateList_create(exitStates, 3, &smPT_s121, &smPT_s12, &smPT_s1);
2252 stateList_create(entryStates, 1, &smPT_s0);
2253 setProfile(smPseudoTest, RKH_STATE_CAST(&smPT_waiting),
2254 RKH_STATE_CAST(&smPT_s121),
2255 RKH_STATE_CAST(&smPT_s1), targetStates,
2256 entryStates, exitStates,
2257 RKH_STATE_CAST(&smPT_s0), 0, TRN_NOT_INTERNAL, 1, &evA,
2258 RKH_STATE_CAST(&smPT_s121));
2261 state = getHistory(&smPT_s1Hist);
2262 TEST_ASSERT_EQUAL_PTR(RKH_STATE_CAST(&smPT_s12), state);
2264 p = unitrazer_getLastOut();
2265 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2269test_pseudostateTrnToEmptyDeepHistoryWithoutDefaultTrn(
void)
2278 expInitSm((
RKH_SMA_T *)smPseudoTest, RKH_STATE_CAST(&smPT_waiting));
2279 sm_dch_expect(event.
e, RKH_STATE_CAST(&smPT_s0));
2280 sm_trn_expect(RKH_STATE_CAST(&smPT_s0), RKH_STATE_CAST(&smPT_s12Hist));
2281 sm_tsState_expect(RKH_STATE_CAST(&smPT_s12Hist));
2282 sm_tsState_expect(RKH_STATE_CAST(&smPT_s12));
2283 sm_exstate_expect(RKH_STATE_CAST(&smPT_s0));
2284 sm_enstate_expect(RKH_STATE_CAST(&smPT_s1));
2285 sm_enstate_expect(RKH_STATE_CAST(&smPT_s12));
2286 sm_tsState_expect(RKH_STATE_CAST(&smPT_s121));
2287 sm_enstate_expect(RKH_STATE_CAST(&smPT_s121));
2288 sm_nenex_expect(nEnSt, nExSt);
2289 sm_state_expect(RKH_STATE_CAST(&smPT_s121));
2290 sm_evtProc_expect();
2293 setState((
RKH_SMA_T *)smPseudoTest, RKH_STATE_CAST(&smPT_s0));
2296 p = unitrazer_getLastOut();
2297 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2301test_pseudostateTrnToLoadedDeepHistoryWithoutDefaultTrn(
void)
2305 stateList_create(targetStates, 2, &smPT_s12Hist, &smPT_s122);
2306 stateList_create(exitStates, 1, &smPT_s0);
2307 stateList_create(entryStates, 3, &smPT_s1, &smPT_s12, &smPT_s122);
2308 setProfile(smPseudoTest, RKH_STATE_CAST(&smPT_waiting),
2309 RKH_STATE_CAST(&smPT_s0),
2310 RKH_STATE_CAST(&smPT_s0), targetStates,
2311 entryStates, exitStates,
2312 RKH_STATE_CAST(&smPT_s122), 0, TRN_NOT_INTERNAL, 1, &evC,
2313 RKH_STATE_CAST(&smPT_s0));
2315 setHistory(&smPT_s12Hist, RKH_STATE_CAST(&smPT_s122));
2318 p = unitrazer_getLastOut();
2319 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2323test_pseudostateExitFromCompositeWithLoadedDeepHistory(
void)
2328 stateList_create(targetStates, 1, &smPT_s122);
2329 stateList_create(exitStates, 1, &smPT_s0);
2330 stateList_create(entryStates, 3, &smPT_s1, &smPT_s12, &smPT_s122);
2331 setProfile(smPseudoTest, RKH_STATE_CAST(&smPT_waiting),
2332 RKH_STATE_CAST(&smPT_s0),
2333 RKH_STATE_CAST(&smPT_s0), targetStates,
2334 entryStates, exitStates,
2335 RKH_STATE_CAST(&smPT_s122), 0, TRN_NOT_INTERNAL, 1, &evD,
2336 RKH_STATE_CAST(&smPT_s0));
2339 state = getHistory(&smPT_s12Hist);
2340 TEST_ASSERT_EQUAL_PTR(RKH_STATE_CAST(&smPT_s122), state);
2342 p = unitrazer_getLastOut();
2343 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2347test_pseudostateTrnToEmptyShallowHistoryWithDefaultTrn(
void)
2351 smPT_trueGuard_ExpectAndReturn(
RKH_CAST(SmPseudoTest, smPseudoTest),
2353 smPT_trS2History_Expect(
RKH_CAST(SmPseudoTest, smPseudoTest), &evE);
2355 stateList_create(targetStates, 2, &smPT_s2Hist, &smPT_s22);
2356 stateList_create(exitStates, 1, &smPT_s0);
2357 stateList_create(entryStates, 2, &smPT_s2, &smPT_s22);
2358 setProfile(smPseudoTest, RKH_STATE_CAST(&smPT_waiting),
2359 RKH_STATE_CAST(&smPT_s0),
2360 RKH_STATE_CAST(&smPT_s0), targetStates,
2361 entryStates, exitStates,
2362 RKH_STATE_CAST(&smPT_s22), 1, TRN_NOT_INTERNAL, 1, &evE,
2363 RKH_STATE_CAST(&smPT_s0));
2367 p = unitrazer_getLastOut();
2368 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2372test_pseudostateTrnToLoadedShallowHistoryWithDefaultTrn(
void)
2376 stateList_create(targetStates, 2, &smPT_s2Hist, &smPT_s21);
2377 stateList_create(exitStates, 1, &smPT_s0);
2378 stateList_create(entryStates, 2, &smPT_s2, &smPT_s21);
2379 setProfile(smPseudoTest, RKH_STATE_CAST(&smPT_waiting),
2380 RKH_STATE_CAST(&smPT_s0),
2381 RKH_STATE_CAST(&smPT_s0), targetStates,
2382 entryStates, exitStates,
2383 RKH_STATE_CAST(&smPT_s21), 0, TRN_NOT_INTERNAL, 1, &evE,
2384 RKH_STATE_CAST(&smPT_s0));
2386 setHistory(&smPT_s2Hist, RKH_STATE_CAST(&smPT_s21));
2389 p = unitrazer_getLastOut();
2390 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2403test_InitPseudostateFirstStateAfterInit(
void)
2406 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2408 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2409 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2415 p = unitrazer_getLastOut();
2416 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2420test_InitPseudostateTrnToEmptyShHistoryToSimpleState(
void)
2423 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2429 stateList_create(exitStates, 1, &smIPT_s0);
2431 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2432 smIPT_nS0_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2433 smIPT_xS0_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2434 smIPT_nS1_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2435 smIPT_tr1_Expect((SmInitialPseudoTest *)smInitialPseudoTest, &evA);
2436 smIPT_nS11_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2439 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evA);
2444 p = unitrazer_getLastOut();
2445 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2449test_InitPseudostateTrnToLoadedShHistory(
void)
2452 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2454 {(
RKH_ST_T *)&smIPT_s1Hist, NULL },
2458 stateList_create(exitStates, 1, &smIPT_s0);
2460 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2461 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2462 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2463 smIPT_nS1_Expect((SmInitialPseudoTest *)me);
2464 smIPT_nS12_Expect((SmInitialPseudoTest *)me);
2467 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evA);
2470 setHistory(&smIPT_s1Hist, RKH_STATE_CAST(&smIPT_s12));
2473 p = unitrazer_getLastOut();
2474 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2478test_InitPseudostateTrnToEmptyShHistoryToCmpState(
void)
2481 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2488 stateList_create(exitStates, 1, &smIPT_s0);
2490 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2491 smIPT_nS0_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2492 smIPT_xS0_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2493 smIPT_nS2_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2494 smIPT_nS21_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2495 smIPT_nS211_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2498 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evD);
2503 p = unitrazer_getLastOut();
2504 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2508test_InitPseudostateTrnToEmptyDeepHistoryToSimpleState(
void)
2511 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2517 stateList_create(exitStates, 1, &smIPT_s0);
2519 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2520 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2521 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2522 smIPT_nS3_Expect((SmInitialPseudoTest *)me);
2523 smIPT_nS31_Expect((SmInitialPseudoTest *)me);
2526 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evB);
2531 p = unitrazer_getLastOut();
2532 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2536test_InitPseudostateTrnToLoadedDeepHistory(
void)
2539 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2545 stateList_create(exitStates, 1, &smIPT_s0);
2547 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2548 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2549 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2550 smIPT_nS3_Expect((SmInitialPseudoTest *)me);
2551 smIPT_nS32_Expect((SmInitialPseudoTest *)me);
2554 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evB);
2557 setHistory(&smIPT_s3Hist, RKH_STATE_CAST(&smIPT_s32));
2560 p = unitrazer_getLastOut();
2561 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2565test_InitPseudostateTrnToLoadedDeepHistoryToNestedState(
void)
2568 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2569 TargetEntrySt tgEnSt[5] = {{(
RKH_ST_T *)&smIPT_s3, (
RKH_ST_T *)&smIPT_s3 },
2575 stateList_create(exitStates, 1, &smIPT_s0);
2577 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2578 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2579 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2580 smIPT_nS3_Expect((SmInitialPseudoTest *)me);
2581 smIPT_nS33_Expect((SmInitialPseudoTest *)me);
2582 smIPT_nS331_Expect((SmInitialPseudoTest *)me);
2585 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evB);
2588 setHistory(&smIPT_s3Hist, RKH_STATE_CAST(&smIPT_s331));
2591 p = unitrazer_getLastOut();
2592 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2596test_InitPseudostateTrnToEmptyShHistoryToNestedSimpleState(
void)
2599 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2606 stateList_create(exitStates, 1, &smIPT_s0);
2608 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2609 smIPT_nS0_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2610 smIPT_xS0_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2611 smIPT_nS4_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2612 smIPT_nS41_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2613 smIPT_nS411_Expect((SmInitialPseudoTest *)smInitialPseudoTest);
2616 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evC);
2621 p = unitrazer_getLastOut();
2622 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2626test_InitPseudostateTrnToBranchToSimpleState(
void)
2629 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2631 {(
RKH_ST_T *)&smIPT_choice1, NULL},
2636 stateList_create(exitStates, 1, &smIPT_s0);
2640 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2641 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2642 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2643 smIPT_nS5_Expect((SmInitialPseudoTest *)me);
2644 smIPT_tr2_Expect((SmInitialPseudoTest *)me, &evE);
2646 smIPT_nS52_Expect((SmInitialPseudoTest *)me);
2649 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evE);
2654 p = unitrazer_getLastOut();
2655 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2659test_InitPseudostateTrnToBranchToCmpState(
void)
2662 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2664 {(
RKH_ST_T *)&smIPT_choice1, NULL},
2671 stateList_create(exitStates, 1, &smIPT_s0);
2674 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2675 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2676 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2677 smIPT_nS5_Expect((SmInitialPseudoTest *)me);
2678 smIPT_tr2_Expect((SmInitialPseudoTest *)me, &evE);
2683 smIPT_nS51_Expect((SmInitialPseudoTest *)me);
2684 smIPT_nS511_Expect((SmInitialPseudoTest *)me);
2687 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evE);
2692 p = unitrazer_getLastOut();
2693 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2697test_InitPseudostateTrnToBranchToNestedSimpleState(
void)
2700 SmInitialPseudoTest *me =
RKH_CAST(SmInitialPseudoTest,
2701 smInitialPseudoTest);
2703 {(
RKH_ST_T *)&smIPT_choice1, NULL},
2708 stateList_create(exitStates, 1, &smIPT_s0);
2710 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2711 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2712 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2713 smIPT_nS5_Expect((SmInitialPseudoTest *)me);
2714 smIPT_tr2_Expect((SmInitialPseudoTest *)me, &evE);
2717 smIPT_nS51_Expect((SmInitialPseudoTest *)me);
2718 smIPT_nS511_Expect((SmInitialPseudoTest *)me);
2721 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evE);
2726 p = unitrazer_getLastOut();
2727 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2731test_InitPseudostateTrnToBranchToNestedCmpState(
void)
2734 SmInitialPseudoTest *me =
RKH_CAST(SmInitialPseudoTest,
2735 smInitialPseudoTest);
2737 {(
RKH_ST_T *)&smIPT_choice1, NULL},
2743 stateList_create(exitStates, 1, &smIPT_s0);
2745 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2746 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2747 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2748 smIPT_nS5_Expect((SmInitialPseudoTest *)me);
2749 smIPT_tr2_Expect((SmInitialPseudoTest *)me, &evE);
2753 smIPT_nS51_Expect((SmInitialPseudoTest *)me);
2754 smIPT_nS512_Expect((SmInitialPseudoTest *)me);
2755 smIPT_nS5121_Expect((SmInitialPseudoTest *)me);
2758 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evE);
2763 p = unitrazer_getLastOut();
2764 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2768test_InitPseudostateTrnToBranchToFinalState(
void)
2771 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
2772 TargetEntrySt tgEnSt[4] =
2774 {(
RKH_ST_T *)&smIPT_choice1, NULL},
2779 stateList_create(exitStates, 1, &smIPT_s0);
2783 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2784 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2785 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2786 smIPT_nS5_Expect((SmInitialPseudoTest *)me);
2787 smIPT_tr2_Expect((SmInitialPseudoTest *)me, &evE);
2794 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evE);
2797 stateList_create(targetStates, 1, &smIPT_s0);
2798 stateList_create(entryStates, 1, &smIPT_s0);
2799 stateList_create(exitStates, 2, &smIPT_s5Final, &smIPT_s5);
2801 smIPT_xS5_Expect((SmInitialPseudoTest *)me);
2802 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2804 setProfile(smInitialPseudoTest, RKH_STATE_CAST(&smIPT_s5),
2805 NULL, RKH_STATE_CAST(&smIPT_s5),
2806 targetStates, entryStates, exitStates,
2807 RKH_STATE_CAST(&smIPT_s0), 1, TRN_NOT_INTERNAL,
2808 NO_INIT_STATE_MACHINE, &evCompletion,
2809 RKH_STATE_CAST(&smIPT_s5Final));
2814 p = unitrazer_getLastOut();
2815 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2819test_InitPseudostateTrnToJunctionToSimpleState(
void)
2822 SmInitialPseudoTest *me =
RKH_CAST(SmInitialPseudoTest,
2823 smInitialPseudoTest);
2825 {(
RKH_ST_T *)&smIPT_junction1, NULL},
2829 stateList_create(exitStates, 1, &smIPT_s0);
2831 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2832 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2833 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2834 smIPT_nS6_Expect((SmInitialPseudoTest *)me);
2836 smIPT_tr3_Expect((SmInitialPseudoTest *)me, &evF);
2837 smIPT_nS62_Expect((SmInitialPseudoTest *)me);
2840 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evF);
2845 p = unitrazer_getLastOut();
2846 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2850test_InitPseudostateTrnToJunctionToCmpState(
void)
2853 SmInitialPseudoTest *me =
RKH_CAST(SmInitialPseudoTest,
2854 smInitialPseudoTest);
2856 {(
RKH_ST_T *)&smIPT_junction1, NULL},
2861 stateList_create(exitStates, 1, &smIPT_s0);
2863 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2864 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
2865 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
2866 smIPT_nS6_Expect((SmInitialPseudoTest *)me);
2870 smIPT_tr3_Expect((SmInitialPseudoTest *)me, &evF);
2871 smIPT_nS61_Expect((SmInitialPseudoTest *)me);
2872 smIPT_nS611_Expect((SmInitialPseudoTest *)me);
2875 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evF);
2880 p = unitrazer_getLastOut();
2881 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2885test_InitPseudostateSMInitialToSimpleState(
void)
2890 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2891 smI0_nS0_Expect((SmInitialPseudoTest *)me);
2897 p = unitrazer_getLastOut();
2898 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2902test_InitPseudostateSMInitialToCmpState(
void)
2907 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2908 smI1_nS0_Expect((SmInitialPseudoTest *)me);
2909 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2910 smI1_nS01_Expect((SmInitialPseudoTest *)me);
2911 sm_init_expect(RKH_STATE_CAST(&smI1_s0));
2912 sm_trn_expect(RKH_STATE_CAST(&smI1_s0), RKH_STATE_CAST(&smI1_s0));
2913 sm_tsState_expect(RKH_STATE_CAST(&smI1_s0));
2914 sm_enstate_expect(RKH_STATE_CAST(&smI1_s0));
2915 sm_tsState_expect(RKH_STATE_CAST(&smI1_s01));
2916 sm_enstate_expect(RKH_STATE_CAST(&smI1_s01));
2917 sm_nenex_expect(2, 0);
2918 sm_state_expect(RKH_STATE_CAST(&smI1_s01));
2919 sm_evtProc_expect();
2923 p = unitrazer_getLastOut();
2924 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2928test_InitPseudostateSMInitialToNestedSimpleState(
void)
2933 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2934 smI2_nS0_Expect((SmInitialPseudoTest *)me);
2935 smI2_nS01_Expect((SmInitialPseudoTest *)me);
2936 sm_init_expect(RKH_STATE_CAST(&smI2_s01));
2937 sm_trn_expect(RKH_STATE_CAST(&smI2_s01), RKH_STATE_CAST(&smI2_s01));
2938 sm_tsState_expect(RKH_STATE_CAST(&smI2_s01));
2939 sm_enstate_expect(RKH_STATE_CAST(&smI2_s0));
2940 sm_enstate_expect(RKH_STATE_CAST(&smI2_s01));
2941 sm_nenex_expect(2, 0);
2942 sm_state_expect(RKH_STATE_CAST(&smI2_s01));
2943 sm_evtProc_expect();
2947 p = unitrazer_getLastOut();
2948 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2952test_InitPseudostateSMInitialToNestedCmpState(
void)
2957 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2958 smI3_nS0_Expect((SmInitialPseudoTest *)me);
2959 smI3_nS01_Expect((SmInitialPseudoTest *)me);
2960 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2961 smI3_nS011_Expect((SmInitialPseudoTest *)me);
2962 sm_init_expect(RKH_STATE_CAST(&smI3_s01));
2963 sm_trn_expect(RKH_STATE_CAST(&smI3_s01), RKH_STATE_CAST(&smI3_s01));
2964 sm_tsState_expect(RKH_STATE_CAST(&smI3_s01));
2965 sm_enstate_expect(RKH_STATE_CAST(&smI3_s0));
2966 sm_enstate_expect(RKH_STATE_CAST(&smI3_s01));
2967 sm_tsState_expect(RKH_STATE_CAST(&smI3_s011));
2968 sm_enstate_expect(RKH_STATE_CAST(&smI3_s011));
2969 sm_nenex_expect(3, 0);
2970 sm_state_expect(RKH_STATE_CAST(&smI3_s011));
2971 sm_evtProc_expect();
2975 p = unitrazer_getLastOut();
2976 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
2980test_InitPseudostateSMInitialToJunctionToSimpleState(
void)
2987 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2988 smIPT_tr1_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
2989 smI4_nS0_Expect((SmInitialPseudoTest *)me);
2990 sm_init_expect(RKH_STATE_CAST(&smI4_junction1));
2991 sm_trn_expect(RKH_STATE_CAST(&smI4_junction1),
2992 RKH_STATE_CAST(&smI4_junction1));
2993 sm_tsState_expect(RKH_STATE_CAST(&smI4_junction1));
2994 sm_tsState_expect(RKH_STATE_CAST(&smI4_s0));
2995 sm_enstate_expect(RKH_STATE_CAST(&smI4_s0));
2996 sm_nenex_expect(1, 0);
2997 sm_state_expect(RKH_STATE_CAST(&smI4_s0));
2998 sm_evtProc_expect();
3002 p = unitrazer_getLastOut();
3003 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
3007test_InitPseudostateSMInitialToJunctionToCmpState(
void)
3016 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3017 smIPT_tr2_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3018 smI4_nS1_Expect((SmInitialPseudoTest *)me);
3019 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3020 smI4_nS11_Expect((SmInitialPseudoTest *)me);
3021 sm_init_expect(RKH_STATE_CAST(&smI4_junction1));
3022 sm_trn_expect(RKH_STATE_CAST(&smI4_junction1),
3023 RKH_STATE_CAST(&smI4_junction1));
3024 sm_tsState_expect(RKH_STATE_CAST(&smI4_junction1));
3025 sm_tsState_expect(RKH_STATE_CAST(&smI4_s1));
3026 sm_enstate_expect(RKH_STATE_CAST(&smI4_s1));
3027 sm_tsState_expect(RKH_STATE_CAST(&smI4_s11));
3028 sm_enstate_expect(RKH_STATE_CAST(&smI4_s11));
3029 sm_nenex_expect(2, 0);
3030 sm_state_expect(RKH_STATE_CAST(&smI4_s11));
3031 sm_evtProc_expect();
3035 p = unitrazer_getLastOut();
3036 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
3040test_InitPseudostateSMInitialToBranchToSimpleState(
void)
3045 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3048 smIPT_tr1_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3049 smI5_nS0_Expect((SmInitialPseudoTest *)me);
3050 sm_init_expect(RKH_STATE_CAST(&smI5_branch1));
3051 sm_trn_expect(RKH_STATE_CAST(&smI5_branch1),
3052 RKH_STATE_CAST(&smI5_branch1));
3053 sm_tsState_expect(RKH_STATE_CAST(&smI5_branch1));
3054 sm_tsState_expect(RKH_STATE_CAST(&smI5_s0));
3055 sm_enstate_expect(RKH_STATE_CAST(&smI5_s0));
3056 sm_nenex_expect(1, 0);
3057 sm_state_expect(RKH_STATE_CAST(&smI5_s0));
3058 sm_evtProc_expect();
3062 p = unitrazer_getLastOut();
3063 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
3067test_InitPseudostateSMInitialToBranchToCmpState(
void)
3072 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3077 smIPT_tr2_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3078 smI5_nS1_Expect((SmInitialPseudoTest *)me);
3079 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3080 smI5_nS11_Expect((SmInitialPseudoTest *)me);
3081 sm_init_expect(RKH_STATE_CAST(&smI5_branch1));
3082 sm_trn_expect(RKH_STATE_CAST(&smI5_branch1),
3083 RKH_STATE_CAST(&smI5_branch1));
3084 sm_tsState_expect(RKH_STATE_CAST(&smI5_branch1));
3085 sm_tsState_expect(RKH_STATE_CAST(&smI5_s1));
3086 sm_enstate_expect(RKH_STATE_CAST(&smI5_s1));
3087 sm_tsState_expect(RKH_STATE_CAST(&smI5_s11));
3088 sm_enstate_expect(RKH_STATE_CAST(&smI5_s11));
3089 sm_nenex_expect(2, 0);
3090 sm_state_expect(RKH_STATE_CAST(&smI5_s11));
3091 sm_evtProc_expect();
3095 p = unitrazer_getLastOut();
3096 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
3100test_InitPseudostateTrnToInitialToSimpleStateWithNullTrn(
void)
3103 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitialPseudoTest;
3108 stateList_create(exitStates, 1, &smIPT_s0);
3110 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3111 smIPT_nS0_Expect((SmInitialPseudoTest *)me);
3112 smIPT_xS0_Expect((SmInitialPseudoTest *)me);
3113 smIPT_nS7_Expect((SmInitialPseudoTest *)me);
3114 smIPT_nS71_Expect((SmInitialPseudoTest *)me);
3115 smIPT_xS71_Expect((SmInitialPseudoTest *)me);
3116 smIPT_tr4_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCompletion);
3117 smIPT_nS72_Expect((SmInitialPseudoTest *)me);
3120 (
RKH_ST_T *)&smIPT_s0, tgEnSt, exitStates, &evG);
3123 sm_dch_expect(evCompletion.
e, RKH_STATE_CAST(&smIPT_s71));
3124 sm_trn_expect(RKH_STATE_CAST(&smIPT_s71), RKH_STATE_CAST(&smIPT_s72));
3125 sm_tsState_expect(RKH_STATE_CAST(&smIPT_s72));
3126 sm_exstate_expect(RKH_STATE_CAST(&smIPT_s71));
3127 sm_enstate_expect(RKH_STATE_CAST(&smIPT_s72));
3128 sm_nenex_expect(1, 1);
3129 sm_state_expect(RKH_STATE_CAST(&smIPT_s72));
3130 sm_evtProc_expect();
3135 p = unitrazer_getLastOut();
3136 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
3140test_InitPseudostateSMInitialToSimpleStateWithNullTrn(
void)
3143 SmInitialPseudoTest *me = (SmInitialPseudoTest *)smInitial6;
3145 smIPT_init_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCreation);
3146 smIPT_tr4_Expect((SmInitialPseudoTest *)me, (
RKH_EVT_T *)&evCompletion);
3151 sm_dch_expect(evCompletion.
e, RKH_STATE_CAST(&smI6_s0));
3152 sm_trn_expect(RKH_STATE_CAST(&smI6_s0), RKH_STATE_CAST(&smI6_s1));
3153 sm_tsState_expect(RKH_STATE_CAST(&smI6_s1));
3154 sm_exstate_expect(RKH_STATE_CAST(&smI6_s0));
3155 sm_enstate_expect(RKH_STATE_CAST(&smI6_s1));
3156 sm_nenex_expect(1, 1);
3157 sm_state_expect(RKH_STATE_CAST(&smI6_s1));
3158 sm_evtProc_expect();
3162 p = unitrazer_getLastOut();
3163 TEST_ASSERT_EQUAL(UT_PROC_SUCCESS, p->status);
#define RKH_UPCAST(BaseType_, me_)
Convert a pointer to a base-class.
#define RKH_FALSE
Standard define.
#define RKH_TRUE
Standard define.
#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...
ruint rkh_sm_dispatch(RKH_SM_T *me, RKH_EVT_T *e)
Executes a state machine in a run-to-completation (RTC) model.
void rkh_sm_propagate(RKH_SM_T *me, RKH_EVT_T *e)
Propagate an event to self. This event will be processed subsequently, without exiting from the curre...
RKH_RCODE_T
Return codes from rkh_sm_dispatch() function.
void rkh_sm_init(RKH_SM_T *me)
Inits a previously created state machine calling its initializing action.
void rkh_sm_clear_history(RKHROM RKH_SHIST_T *h)
Erase the history of a state. It can be a shallow or deep history.
Specifies the interface of the mapping table manager to deal with native priority algorithm.
#define RKH_CAST(_type, _obj)
Perform downcast of a reference of a base class to one of its derived classes.
Specifies the interface of the state-machine manager.
Specifies the interface of trace facility.
#define RKH_TG_SM
State Machine group (SM)
#define RKH_TE_FWK_ASSERT
Specifies the runtime filter operations for the trace facility.
Defines the trace records.
Specifies the trace stream manager (circular buffer).
Represents events without parameters.
RKH_SIG_T e
Signal of the event instance.
Describes the state machine.
Describes the SMA (active object in UML).
Describes the common properties of regular states (basic, composite, and submachine).
Interface of unit test with Trazer application.
#define sm_cleanup()
Return the system under test to its initial state after the test.
#define sm_init()
Establish the preconditions to the tests.
#define sm_verify()
Makes sure there are no unused expectations, if there are, this function causes the test to fail.