added sequence count provider abstraction
This commit is contained in:
@ -1 +1,2 @@
|
||||
target_sources(${FSFW_TEST_TGT} PRIVATE testUnsignedByteField.cpp)
|
||||
target_sources(${FSFW_TEST_TGT} PRIVATE testUnsignedByteField.cpp
|
||||
testSeqCountProvider.cpp)
|
||||
|
35
unittests/util/testSeqCountProvider.cpp
Normal file
35
unittests/util/testSeqCountProvider.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
#include "fsfw/util/SeqCountProvider.h"
|
||||
|
||||
TEST_CASE("Seq Count Providers", "[util]") {
|
||||
auto genericProviderTest = [](ProvidesSeqCountIF& provider, unsigned expectedWidth) {
|
||||
CHECK(provider.get() == 0);
|
||||
CHECK(provider.bitWidth() == expectedWidth);
|
||||
CHECK(provider.getAndIncrement() == 0);
|
||||
CHECK(provider.getAndIncrement() == 1);
|
||||
CHECK(provider.get() == 2);
|
||||
provider.increment();
|
||||
provider.increment();
|
||||
CHECK(provider.get() == 4);
|
||||
};
|
||||
{
|
||||
SeqCountProviderU16 provider;
|
||||
genericProviderTest(provider, 16);
|
||||
}
|
||||
|
||||
{
|
||||
SeqCountProviderU32 provider;
|
||||
genericProviderTest(provider, 32);
|
||||
}
|
||||
|
||||
{
|
||||
SeqCountProviderU8 provider;
|
||||
genericProviderTest(provider, 8);
|
||||
for (unsigned i = 4; i < UINT8_MAX + 1; i++) {
|
||||
provider.increment();
|
||||
}
|
||||
// Verify wrap-around.
|
||||
CHECK(provider.get() == 0);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user