|
@@ -8,31 +8,164 @@
|
|
|
#include "../Firmware/Timer.h"
|
|
|
#include "../Firmware/TimerRemaining.h"
|
|
|
|
|
|
+static unsigned long now = 0;
|
|
|
+
|
|
|
unsigned long millis()
|
|
|
{
|
|
|
- return 1;
|
|
|
+ return now;
|
|
|
}
|
|
|
|
|
|
-TEST_CASE( "LongTimer tested.", "[timer]" )
|
|
|
+static void basicTimer()
|
|
|
{
|
|
|
LongTimer timer;
|
|
|
- REQUIRE( timer.running() == false);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
|
|
|
timer.start();
|
|
|
- REQUIRE( timer.running() == true);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
|
|
|
timer.stop();
|
|
|
- REQUIRE( timer.running() == false);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+
|
|
|
+ timer.start();
|
|
|
+ CHECK( timer.expired(0) == true);
|
|
|
+ CHECK( timer.expired(0) == false);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+
|
|
|
+ timer.start();
|
|
|
+ CHECK( timer.expired(1) == false);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.expired(1) == true);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ --now;
|
|
|
+
|
|
|
+ timer.start();
|
|
|
+ CHECK( timer.expired(ULONG_MAX - 1) == false);
|
|
|
+ now+= ULONG_MAX - 2;
|
|
|
+ CHECK( timer.expired(ULONG_MAX - 1) == false);
|
|
|
+ now++;
|
|
|
+ CHECK( timer.expired(ULONG_MAX - 1) == true);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ now-= ULONG_MAX - 1;
|
|
|
|
|
|
timer.start();
|
|
|
- REQUIRE( timer.expired(0) == true );
|
|
|
- REQUIRE( timer.expired(0) == false );
|
|
|
- REQUIRE( timer.running() == false);
|
|
|
+ CHECK( timer.expired(ULONG_MAX) == false);
|
|
|
+ now+= ULONG_MAX - 1;
|
|
|
+ CHECK( timer.expired(ULONG_MAX) == false);
|
|
|
+ now++;
|
|
|
+ CHECK( timer.expired(ULONG_MAX) == true);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ now-= ULONG_MAX;
|
|
|
|
|
|
timer.start();
|
|
|
- REQUIRE( timer.expired(1) == false );
|
|
|
- REQUIRE( timer.running() == true);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.expired(12*3600000ul + 38*60000ul + 15000) == false);
|
|
|
+ now+= 12*3600000ul + 38*60000ul + 14999;
|
|
|
+ CHECK( timer.expired(12*3600000ul + 38*60000ul + 15000) == false);
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.expired(12*3600000ul + 38*60000ul + 15000) == true);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ now-= 12*3600000ul + 38*60000ul + 15000;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+TEST_CASE( "LongTimer test.", "[timer]" )
|
|
|
+{
|
|
|
+ now = 0;
|
|
|
+ basicTimer();
|
|
|
+ now = 1;
|
|
|
+ basicTimer();
|
|
|
+ now = ULONG_MAX;
|
|
|
+ basicTimer();
|
|
|
+ now = ULONG_MAX - 1;
|
|
|
+ basicTimer();
|
|
|
+ now = 12*3600000ul + 38*60000ul + 15000;
|
|
|
+ basicTimer();
|
|
|
+}
|
|
|
+
|
|
|
+static void basicRemaining()
|
|
|
+{
|
|
|
+ TimerRemaining timer;
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+
|
|
|
+ timer.start(100);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == 100);
|
|
|
+ now += 99;
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == 1);
|
|
|
+
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ now -=100;
|
|
|
+
|
|
|
+ timer.start(1);
|
|
|
+ timer.stop();
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+
|
|
|
+ timer.start(0);
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+
|
|
|
+ timer.start(1);
|
|
|
+ CHECK( timer.remaining() == 1);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ --now;
|
|
|
+
|
|
|
+ timer.start(ULONG_MAX - 1);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == ULONG_MAX - 1);
|
|
|
+ now+= ULONG_MAX - 2;
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == 1);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ now-= ULONG_MAX - 1;
|
|
|
+
|
|
|
+ timer.start(ULONG_MAX);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == ULONG_MAX);
|
|
|
+ now+= ULONG_MAX - 1;
|
|
|
+ CHECK( timer.remaining() == 1);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+
|
|
|
+ timer.start(12*3600000ul + 38*60000ul + 15000);
|
|
|
+ CHECK( timer.running() == true);
|
|
|
+ CHECK( timer.remaining() == 12*3600000ul + 38*60000ul + 15000);
|
|
|
+ now+= 12*3600000ul + 38*60000ul + 14999;
|
|
|
+ CHECK( timer.remaining() == 1);
|
|
|
+ ++now;
|
|
|
+ CHECK( timer.remaining() == 0);
|
|
|
+ CHECK( timer.running() == false);
|
|
|
+ now-= 12*3600000ul + 38*60000ul + 15000;
|
|
|
+}
|
|
|
+
|
|
|
+TEST_CASE( "TimerRemaining test.", "[timer]" )
|
|
|
+{
|
|
|
+ now = 0;
|
|
|
+ basicRemaining();
|
|
|
+ now = 1;
|
|
|
+ basicRemaining();
|
|
|
+ now = ULONG_MAX;
|
|
|
+ basicRemaining();
|
|
|
+ now = ULONG_MAX - 1;
|
|
|
+ basicRemaining();
|
|
|
+
|
|
|
+ now = 12*3600000ul + 38*60000ul + 15000;
|
|
|
+ basicRemaining();
|
|
|
|
|
|
- TimerRemaining otherTimer;
|
|
|
- otherTimer.start(100);
|
|
|
}
|