5 unsigned volatile int unit_CNT;
6 unsigned volatile int unit_CLKFREQ;
13 int default_hz = 99999999;
18 static void setUp(
void) {
20 unit_CLKFREQ = 80000000;
23 static void tearDown(
void) {
30 static void test_SchedulerReadPeriodIncremented(
void) {
36 TEST_ASSERT_FALSE(scheduler.Run());
40 for (
int i = 0; i < 6000; i++) {
41 unit_CNT += unit_CLKFREQ / default_hz / 2;
42 TEST_ASSERT_FALSE(scheduler.Run());
43 unit_CNT += unit_CLKFREQ / default_hz / 2;
44 TEST_ASSERT_TRUE(scheduler.Run());
54 static void test_SchedulerLowBoth(
void) {
57 TEST_ASSERT_FALSE(scheduler.Run());
60 static void test_SchedulerLowBothOpposite(
void) {
63 unit_CNT = 0x7FFFFFFF;
65 TEST_ASSERT_TRUE(scheduler.Run());
68 static void test_SchedulerHighBoth(
void) {
69 unit_CNT = 0xF0000000;
71 TEST_ASSERT_FALSE(scheduler.Run());
74 static void test_SchedulerHighBothOpposite(
void) {
75 unit_CNT = 0x80000000;
77 unit_CNT = 0xFFFFFFFF;
78 TEST_ASSERT_TRUE(scheduler.Run());
81 static void test_SchedulerRollover(
void) {
82 unit_CNT = 0xFFFFFFFF;
84 TEST_ASSERT_FALSE(scheduler.Run());
87 static void test_SchedulerRolloverOpposite(
void) {
88 unit_CNT = 0xFFFFFFFF;
91 TEST_ASSERT_TRUE(scheduler.Run());
94 static void test_SchedulerMedian(
void) {
98 TEST_ASSERT_FALSE(scheduler.Run());
101 static void test_SchedulerMedianOpposite(
void) {
102 unit_CNT = 0x80000000;
104 unit_CNT = 0x7FFFFFFF;
106 TEST_ASSERT_TRUE(scheduler.Run());
111 static void test_SchedulerNotCalledForMultiplePeriods(
void) {
114 TEST_ASSERT_FALSE(scheduler.Run());
115 unit_CNT += (scheduler.GetTicksPerPeriod(default_hz) * 4) + 1;
116 TEST_ASSERT_TRUE(scheduler.Run());
117 TEST_ASSERT_TRUE(scheduler.Run());
118 TEST_ASSERT_TRUE(scheduler.Run());
119 TEST_ASSERT_TRUE(scheduler.Run());
120 TEST_ASSERT_FALSE(scheduler.Run());