xref: /openbmc/phosphor-logging/test/serialization_test_properties.cpp (revision 109b4a5c1f1a9cad8176a05dc2066a61e5cf22ea)
1 #include "elog_entry.hpp"
2 #include "elog_serialize.hpp"
3 #include "serialization_tests.hpp"
4 
5 namespace phosphor
6 {
7 namespace logging
8 {
9 namespace test
10 {
11 
TEST_F(TestSerialization,testProperties)12 TEST_F(TestSerialization, testProperties)
13 {
14     auto id = 99;
15     phosphor::logging::AssociationList assocations{};
16     std::map<std::string, std::string> testData = {{"additional", "1"},
17                                                    {"data", "yes"}};
18     uint64_t timestamp{100};
19     std::string message{"test error"};
20     std::string fwLevel{"level42"};
21     std::string inputPath = getEntrySerializePath(id, TestSerialization::dir);
22     auto input = std::make_unique<Entry>(
23         bus, std::string(OBJ_ENTRY) + '/' + std::to_string(id), id, timestamp,
24         Entry::Level::Informational, std::move(message), std::move(testData),
25         std::move(assocations), fwLevel, inputPath, manager);
26     auto path = serialize(*input, TestSerialization::dir);
27     EXPECT_EQ(path, inputPath);
28 
29     auto idStr = path.filename();
30     id = std::stol(idStr.c_str());
31     auto output = std::make_unique<Entry>(
32         bus, std::filesystem::path(OBJ_ENTRY) / idStr, id, manager);
33     deserialize(path, *output);
34 
35     EXPECT_EQ(input->id(), output->id());
36     EXPECT_EQ(input->severity(), output->severity());
37     EXPECT_EQ(input->timestamp(), output->timestamp());
38     EXPECT_EQ(input->message(), output->message());
39     EXPECT_EQ(input->additionalData(), output->additionalData());
40     EXPECT_EQ(input->resolved(), output->resolved());
41     EXPECT_EQ(input->associations(), output->associations());
42     EXPECT_EQ(input->version(), output->version());
43     EXPECT_EQ(input->purpose(), output->purpose());
44     EXPECT_EQ(input->updateTimestamp(), output->updateTimestamp());
45 }
46 
47 } // namespace test
48 } // namespace logging
49 } // namespace phosphor
50