diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/openpower-pels/additional_data_test.cpp | 7 | ||||
-rw-r--r-- | test/openpower-pels/pel_test.cpp | 29 |
2 files changed, 36 insertions, 0 deletions
diff --git a/test/openpower-pels/additional_data_test.cpp b/test/openpower-pels/additional_data_test.cpp index 2be06c4..1bf4af7 100644 --- a/test/openpower-pels/additional_data_test.cpp +++ b/test/openpower-pels/additional_data_test.cpp @@ -24,4 +24,11 @@ TEST(AdditionalDataTest, GetKeywords) EXPECT_FALSE(ad.getValue("HELLOWORLD")); EXPECT_FALSE(ad.getValue("VALUE5")); + + auto json = ad.toJSON(); + std::string expected = R"({"KEY1":"VALUE1","KEY2":"VALUE2","KEY3":""})"; + EXPECT_EQ(json.dump(), expected); + + ad.remove("KEY1"); + EXPECT_FALSE(ad.getValue("KEY1")); } diff --git a/test/openpower-pels/pel_test.cpp b/test/openpower-pels/pel_test.cpp index b0c6528..6494c52 100644 --- a/test/openpower-pels/pel_test.cpp +++ b/test/openpower-pels/pel_test.cpp @@ -231,3 +231,32 @@ TEST_F(PELTest, InvalidGenericTest) EXPECT_TRUE(foundGeneric); } + +// Create a UserData section out of AdditionalData +TEST_F(PELTest, MakeUDSectionTest) +{ + std::vector<std::string> ad{"KEY1=VALUE1", "KEY2=VALUE2", "KEY3=VALUE3", + "ESEL=TEST"}; + AdditionalData additionalData{ad}; + + auto ud = util::makeADUserDataSection(additionalData); + + EXPECT_TRUE(ud->valid()); + EXPECT_EQ(ud->header().id, 0x5544); + EXPECT_EQ(ud->header().version, 0x01); + EXPECT_EQ(ud->header().subType, 0x01); + EXPECT_EQ(ud->header().componentID, 0x2000); + + const auto& d = ud->data(); + + std::string jsonString{d.begin(), d.end()}; + std::string expected = + R"({"KEY1":"VALUE1","KEY2":"VALUE2","KEY3":"VALUE3"})"; + EXPECT_EQ(jsonString, expected); + + // Ensure we can read this as JSON + auto newJSON = nlohmann::json::parse(jsonString); + EXPECT_EQ(newJSON["KEY1"], "VALUE1"); + EXPECT_EQ(newJSON["KEY2"], "VALUE2"); + EXPECT_EQ(newJSON["KEY3"], "VALUE3"); +}
\ No newline at end of file |