#include "common/DataStore.hpp" #include "test/Test.hpp" #include TEST_CASE("CDataStore::CDataStore", "[datastore]") { SECTION("constructs new data store") { CDataStore msg; SUCCEED(); } } TEST_CASE("CDataStore::Get", "[datastore]") { SECTION("gets uint8_t") { uint8_t writeVal = 8; uint8_t readVal = -1; CDataStore msg; msg.Put(writeVal); msg.Finalize(); msg.Get(readVal); REQUIRE(readVal == writeVal); } SECTION("gets uint16_t") { uint16_t writeVal = 0x1234; uint16_t readVal = -1; CDataStore msg; msg.Put(writeVal); msg.Finalize(); msg.Get(readVal); REQUIRE(readVal == writeVal); } SECTION("gets uint32_t") { uint32_t writeVal = 0x12345678; uint32_t readVal = 0x12345678; CDataStore msg; msg.Put(writeVal); msg.Finalize(); msg.Get(readVal); REQUIRE(readVal == writeVal); } SECTION("gets uint64_t") { uint64_t writeVal = 0x1122334455667788; uint64_t readVal = 0x1122334455667788; CDataStore msg; msg.Put(writeVal); msg.Finalize(); msg.Get(readVal); REQUIRE(readVal == writeVal); } SECTION("gets float") { float writeVal = 1.5f; float readVal = -1.0f; CDataStore msg; msg.Put(writeVal); msg.Finalize(); msg.Get(readVal); REQUIRE(readVal == writeVal); } SECTION("gets string") { const char* writeVal = "foobar"; char readVal[7] = "barfoo"; CDataStore msg; msg.PutString(writeVal); msg.Finalize(); msg.GetString(readVal, sizeof(readVal)); REQUIRE(SStrCmp(readVal, writeVal, STORM_MAX_STR) == 0); REQUIRE(msg.IsRead()); } SECTION("gets string honoring maxchars > 0") { const char* writeVal = "foobar"; char readVal[7] = "bar"; CDataStore msg; msg.PutString(writeVal); msg.Finalize(); msg.GetString(readVal, 3); REQUIRE(SStrCmp(readVal, "foo", STORM_MAX_STR) == 0); REQUIRE(msg.m_read == 3); } SECTION("gets string honoring maxchars of 0") { const char* writeVal = "foobar"; char readVal[7] = "bar"; CDataStore msg; msg.PutString(writeVal); msg.Finalize(); msg.GetString(readVal, 0); REQUIRE(msg.m_read == 0); } }