fsfw/unittests/timemanager/TestCountdown.cpp

29 lines
819 B
C++

#include <fsfw/timemanager/Countdown.h>
#include <catch2/catch_test_macros.hpp>
#include "CatchDefinitions.h"
TEST_CASE("Countdown Tests", "[TestCountdown]") {
INFO("Countdown Tests");
Countdown count(20);
REQUIRE(count.timeout == 20);
REQUIRE(count.setTimeout(100) == static_cast<uint16_t>(returnvalue::OK));
REQUIRE(count.timeout == 100);
REQUIRE(count.setTimeout(150) == static_cast<uint16_t>(returnvalue::OK));
REQUIRE(count.isBusy());
REQUIRE(not count.hasTimedOut());
uint32_t number = count.getRemainingMillis();
REQUIRE(number > 0);
bool blocked = false;
while (not count.hasTimedOut()) {
blocked = true;
};
REQUIRE(blocked);
number = count.getRemainingMillis();
REQUIRE(number == 0);
count.resetTimer();
REQUIRE(not count.hasTimedOut());
REQUIRE(count.isBusy());
}