TimedTransitionsTest.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* Generated by YAKINDU Statechart Tools code generator. */
  2. #include "gtest/gtest.h"
  3. #include "TimedTransitions.h"
  4. #include "TimedTransitionsRequired.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 TimedTransitions statechart;
  9. class TimedTransitionsTest : public ::testing::Test{
  10. protected:
  11. virtual void SetUp() {
  12. timedTransitions_init(&statechart);
  13. sc_timer_service_init(
  14. &timer_service,
  15. (sc_raise_time_event_fp) &timedTransitions_raiseTimeEvent,
  16. (sc_run_cycle_fp) &timedTransitions_runCycle,
  17. false,
  18. 200,
  19. &statechart
  20. );
  21. }
  22. };
  23. TEST_F(TimedTransitionsTest, Timer01) {
  24. timedTransitions_enter(&statechart);
  25. EXPECT_TRUE(timedTransitions_isStateActive(&statechart, TimedTransitions_main_region_Start));
  26. sc_timer_service_proceed_time(&timer_service, 2030);
  27. sc_timer_service_proceed_cycles(&timer_service, 1);
  28. EXPECT_TRUE(timedTransitions_isStateActive(&statechart, TimedTransitions_main_region_End));
  29. }
  30. void timedTransitions_setTimer(TimedTransitions* statechart, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic){
  31. sc_timer_t timer;
  32. sc_timer_init(&timer, time_ms, periodic, evid);
  33. insert_timer(&timer_service, timer);
  34. }
  35. void timedTransitions_unsetTimer(TimedTransitions* handle, const sc_eventid evid){
  36. delete_task(&timer_service, find_time_event(&timer_service, evid));
  37. }