diff options
| author | Matt Spinler <spinler@us.ibm.com> | 2019-07-08 16:50:06 -0500 |
|---|---|---|
| committer | Matt Spinler <spinler@us.ibm.com> | 2019-07-26 12:38:38 -0500 |
| commit | 15ee6aee19ec5357392078dfe692b7f02baeb725 (patch) | |
| tree | 26c2cedd42e75f9d970a117b1b12655cf4a93880 /test | |
| parent | 1787c5215b337ba55530b15fd51acaf5164ad3ea (diff) | |
| download | phosphor-logging-15ee6aee19ec5357392078dfe692b7f02baeb725.tar.gz phosphor-logging-15ee6aee19ec5357392078dfe692b7f02baeb725.zip | |
PEL: Add class to wrap AdditionalData
The AdditionalData property on the xyz.openbmc_project.Logging.Entry
interface is a vector of strings of the form: "KEY=VALUE". The
PEL processing code will be interested in those keys and values, and
this class adds a way to get at those values based on a key without
having to do string parsing each time. It returns an
std::optional<std::string> value, and if the key isn't found, then the
std::optional value will be empty.
For Example:
AdditionalData ad{additionalDataPropertyValue};
// Get the value for the FOO key
std::optional<std::string> val = ad.getValue("FOO");
if (val)
std::cout << (*val).size();
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I6ba458840278784b1cc6a0ed88a7fece8794df7d
Diffstat (limited to 'test')
| -rw-r--r-- | test/Makefile.am | 4 | ||||
| -rw-r--r-- | test/openpower-pels/Makefile.include | 10 | ||||
| -rw-r--r-- | test/openpower-pels/additional_data_test.cpp | 27 |
3 files changed, 41 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index a95677d..6499764 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -110,3 +110,7 @@ extensions_test_LDFLAGS = $(test_ldflags) # TODO Remove once the test-case failure is resolved openbmc/phosphor-logging#11 XFAIL_TESTS = elog_errorwrap_test + +if ENABLE_PEL_EXTENSION +include openpower-pels/Makefile.include +endif diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include new file mode 100644 index 0000000..98a0acd --- /dev/null +++ b/test/openpower-pels/Makefile.include @@ -0,0 +1,10 @@ +TESTS += $(check_PROGRAMS) + +check_PROGRAMS += \ + additional_data_test + +additional_data_test_SOURCES = %reldir%/additional_data_test.cpp +additional_data_test_CPPFLAGS = $(test_cppflags) +additional_data_test_CXXFLAGS = $(test_cxxflags) +additional_data_test_LDADD = $(test_ldadd) +additional_data_test_LDFLAGS = $(test_ldflags) diff --git a/test/openpower-pels/additional_data_test.cpp b/test/openpower-pels/additional_data_test.cpp new file mode 100644 index 0000000..2be06c4 --- /dev/null +++ b/test/openpower-pels/additional_data_test.cpp @@ -0,0 +1,27 @@ +#include "extensions/openpower-pels/additional_data.hpp" + +#include <gtest/gtest.h> + +using namespace openpower::pels; + +TEST(AdditionalDataTest, GetKeywords) +{ + std::vector<std::string> data{"KEY1=VALUE1", "KEY2=VALUE2", + "KEY3=", "HELLOWORLD", "=VALUE5"}; + AdditionalData ad{data}; + + EXPECT_TRUE(ad.getValue("KEY1")); + EXPECT_EQ(*(ad.getValue("KEY1")), "VALUE1"); + + EXPECT_TRUE(ad.getValue("KEY2")); + EXPECT_EQ(*(ad.getValue("KEY2")), "VALUE2"); + + EXPECT_FALSE(ad.getValue("x")); + + auto value3 = ad.getValue("KEY3"); + EXPECT_TRUE(value3); + EXPECT_TRUE((*value3).empty()); + + EXPECT_FALSE(ad.getValue("HELLOWORLD")); + EXPECT_FALSE(ad.getValue("VALUE5")); +} |

