123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /* Generated by YAKINDU Statechart Tools code generator. */
- #include "gtest/gtest.h"
- #include "ParentFirstExecutionHierarchy.h"
- #include "sc_timer_service.h"
- //! The timers are managed by a timer service. */
- static sc_unit_timer_service_t timer_service;
- static ParentFirstExecutionHierarchy statechart;
- class ParentFirstExecutionHierarchyTest : public ::testing::Test{
- protected:
- virtual void SetUp() {
- parentFirstExecutionHierarchy_init(&statechart);
- sc_timer_service_init(
- &timer_service,
- 0,
- (sc_run_cycle_fp) &parentFirstExecutionHierarchy_runCycle,
- false,
- 200,
- &statechart
- );
- }
- };
- void assertNoLocalReaction(){
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_a_local(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aa_local(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aaa_local(&statechart));
- }
- TEST_F(ParentFirstExecutionHierarchyTest, childShouldTakeTransition) {
- parentFirstExecutionHierarchy_enter(&statechart);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_A_r_AA_r_AAA));
- parentFirstExecutionHierarchyIface_set_disable_a(&statechart,true);
- parentFirstExecutionHierarchyIface_set_disable_aa(&statechart,true);
- parentFirstExecutionHierarchyIface_raise_e(&statechart);
- sc_timer_service_proceed_cycles(&timer_service, 1);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_B));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_a_reacted(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aa_reacted(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_aaa_reacted(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_a_local(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_aa_local(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aaa_local(&statechart));
- }
- TEST_F(ParentFirstExecutionHierarchyTest, parentShouldTakeTransition) {
- parentFirstExecutionHierarchy_enter(&statechart);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_A_r_AA_r_AAA));
- parentFirstExecutionHierarchyIface_set_disable_a(&statechart,true);
- parentFirstExecutionHierarchyIface_raise_e(&statechart);
- sc_timer_service_proceed_cycles(&timer_service, 1);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_B));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_a_reacted(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_aa_reacted(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aaa_reacted(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_a_local(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aa_local(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aaa_local(&statechart));
- }
- TEST_F(ParentFirstExecutionHierarchyTest, grandparentShouldTakeTransition) {
- parentFirstExecutionHierarchy_enter(&statechart);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_A_r_AA_r_AAA));
- parentFirstExecutionHierarchyIface_raise_e(&statechart);
- sc_timer_service_proceed_cycles(&timer_service, 1);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_B));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_a_reacted(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aa_reacted(&statechart));
- EXPECT_TRUE(!parentFirstExecutionHierarchyIface_get_aaa_reacted(&statechart));
- assertNoLocalReaction();
- }
- TEST_F(ParentFirstExecutionHierarchyTest, expectLocalReactrionsExecuteWithNoTransition) {
- parentFirstExecutionHierarchy_enter(&statechart);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_A_r_AA_r_AAA));
- sc_timer_service_proceed_cycles(&timer_service, 1);
- EXPECT_TRUE(parentFirstExecutionHierarchy_isStateActive(&statechart, ParentFirstExecutionHierarchy_ParentFirstExecutionHierarchy_r_A_r_AA_r_AAA));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_a_local(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_aa_local(&statechart));
- EXPECT_TRUE(parentFirstExecutionHierarchyIface_get_aaa_local(&statechart));
- }
|