EventDrivenTriggeredByTimeEventTest.cc 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /* Generated by YAKINDU Statechart Tools code generator. */
  2. #include "gtest/gtest.h"
  3. #include "EventDrivenTriggeredByTimeEvent.h"
  4. #include "EventDrivenTriggeredByTimeEventRequired.h"
  5. #include "sc_timer_service.h"
  6. //! The timers are managed by a timer service. */
  7. static sc_unit_timer_service_t timer_service;
  8. static EventDrivenTriggeredByTimeEvent statechart;
  9. class EventDrivenTriggeredByTimeEventTest : public ::testing::Test{
  10. protected:
  11. virtual void SetUp() {
  12. eventDrivenTriggeredByTimeEvent_init(&statechart);
  13. sc_timer_service_init(
  14. &timer_service,
  15. (sc_raise_time_event_fp) &eventDrivenTriggeredByTimeEvent_raiseTimeEvent,
  16. (sc_run_cycle_fp) &eventDrivenTriggeredByTimeEvent_runCycle,
  17. true,
  18. 200,
  19. &statechart
  20. );
  21. }
  22. };
  23. TEST_F(EventDrivenTriggeredByTimeEventTest, timeEventTriggersRunCycle) {
  24. eventDrivenTriggeredByTimeEvent_enter(&statechart);
  25. EXPECT_TRUE(eventDrivenTriggeredByTimeEvent_isStateActive(&statechart, EventDrivenTriggeredByTimeEvent_EventDrivenTriggeredByTimeEvent_r_A));
  26. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_x(&statechart)== 0l);
  27. sc_timer_service_proceed_time(&timer_service, 999);
  28. EXPECT_TRUE(eventDrivenTriggeredByTimeEvent_isStateActive(&statechart, EventDrivenTriggeredByTimeEvent_EventDrivenTriggeredByTimeEvent_r_A));
  29. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_x(&statechart)== 0l);
  30. sc_timer_service_proceed_time(&timer_service, 1);
  31. EXPECT_TRUE(eventDrivenTriggeredByTimeEvent_isStateActive(&statechart, EventDrivenTriggeredByTimeEvent_EventDrivenTriggeredByTimeEvent_r_B));
  32. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_x(&statechart)== 0l);
  33. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_transition_count(&statechart)== 1l);
  34. sc_timer_service_proceed_time(&timer_service, 1000);
  35. EXPECT_TRUE(eventDrivenTriggeredByTimeEvent_isStateActive(&statechart, EventDrivenTriggeredByTimeEvent_EventDrivenTriggeredByTimeEvent_r_A));
  36. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_x(&statechart)== 0l);
  37. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_transition_count(&statechart)== 2l);
  38. sc_timer_service_proceed_time(&timer_service, 999000);
  39. EXPECT_TRUE(eventDrivenTriggeredByTimeEvent_isStateActive(&statechart, EventDrivenTriggeredByTimeEvent_EventDrivenTriggeredByTimeEvent_r_B));
  40. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_x(&statechart)== 0l);
  41. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_transition_count(&statechart)== 1001l);
  42. sc_timer_service_proceed_time(&timer_service, 999000);
  43. EXPECT_TRUE(eventDrivenTriggeredByTimeEvent_isStateActive(&statechart, EventDrivenTriggeredByTimeEvent_EventDrivenTriggeredByTimeEvent_r_A));
  44. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_x(&statechart)== 0l);
  45. EXPECT_TRUE(eventDrivenTriggeredByTimeEventIface_get_transition_count(&statechart)== 2000l);
  46. eventDrivenTriggeredByTimeEvent_exit(&statechart);
  47. }
  48. void eventDrivenTriggeredByTimeEvent_setTimer(EventDrivenTriggeredByTimeEvent* statechart, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic){
  49. sc_timer_t timer;
  50. sc_timer_init(&timer, time_ms, periodic, evid);
  51. insert_timer(&timer_service, timer);
  52. }
  53. void eventDrivenTriggeredByTimeEvent_unsetTimer(EventDrivenTriggeredByTimeEvent* handle, const sc_eventid evid){
  54. delete_task(&timer_service, find_time_event(&timer_service, evid));
  55. }