summaryrefslogtreecommitdiffstats
path: root/test/openpower-pels
diff options
context:
space:
mode:
authorMatt Spinler <spinler@us.ibm.com>2019-09-20 14:09:20 -0500
committerMatt Spinler <spinler@us.ibm.com>2019-10-09 13:11:51 +0000
commitfdb6a202fbd42124d1e6cdaf220e87a623894534 (patch)
treed67a4cba03fefe2e3a265b2357b1fcce68bfdeaf /test/openpower-pels
parent8c686cca8a3a0f9e010ef282cfd902c6f97d9e90 (diff)
downloadphosphor-logging-fdb6a202fbd42124d1e6cdaf220e87a623894534.tar.gz
phosphor-logging-fdb6a202fbd42124d1e6cdaf220e87a623894534.zip
PEL: Create UserHeader from parameters
Add a constructor to the UserHeader section class so it can be built from the message registry entry for that error along with the event log severity. This will be used when creating PELs from OpenBMC event logs. Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I7e432f59de7b3f0ba77c3e5887ed5ec3f442ed44
Diffstat (limited to 'test/openpower-pels')
-rw-r--r--test/openpower-pels/user_header_test.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/test/openpower-pels/user_header_test.cpp b/test/openpower-pels/user_header_test.cpp
index 0f22132..d3eedfc 100644
--- a/test/openpower-pels/user_header_test.cpp
+++ b/test/openpower-pels/user_header_test.cpp
@@ -1,3 +1,5 @@
+#include "elog_entry.hpp"
+#include "extensions/openpower-pels/pel_types.hpp"
#include "extensions/openpower-pels/private_header.hpp"
#include "extensions/openpower-pels/user_header.hpp"
#include "pel_utils.hpp"
@@ -91,3 +93,70 @@ TEST(UserHeaderTest, CorruptDataTest2)
EXPECT_EQ(uh.valid(), false);
}
+
+// Construct the User Header from the message registry
+TEST(UserHeaderTest, ConstructionTest)
+{
+ using namespace openpower::pels::message;
+ Entry regEntry;
+
+ regEntry.name = "test";
+ regEntry.subsystem = 5;
+ regEntry.severity = 0x40;
+ regEntry.actionFlags = 0xC000;
+ regEntry.eventType = 1;
+ regEntry.eventScope = 2;
+
+ UserHeader uh(regEntry, phosphor::logging::Entry::Level::Error);
+
+ ASSERT_TRUE(uh.valid());
+ EXPECT_EQ(uh.header().id, 0x5548);
+ EXPECT_EQ(uh.header().size, UserHeader::flattenedSize());
+ EXPECT_EQ(uh.header().version, 0x01);
+ EXPECT_EQ(uh.header().subType, 0x00);
+ EXPECT_EQ(uh.header().componentID,
+ static_cast<uint16_t>(ComponentID::phosphorLogging));
+
+ ASSERT_EQ(uh.subsystem(), 5);
+ ASSERT_EQ(uh.severity(), 0x40);
+ ASSERT_EQ(uh.eventType(), 1);
+ ASSERT_EQ(uh.scope(), 2);
+ ASSERT_EQ(uh.problemDomain(), 0);
+ ASSERT_EQ(uh.problemVector(), 0);
+ ASSERT_EQ(uh.actionFlags(), 0xC000);
+}
+
+// Test that the severity comes from the event log if not
+// in the message registry
+TEST(UserHeaderTest, UseEventLogSevTest)
+{
+ using namespace openpower::pels::message;
+ Entry regEntry;
+
+ regEntry.name = "test";
+ regEntry.subsystem = 5;
+ regEntry.actionFlags = 0xC000;
+ regEntry.eventType = 1;
+ regEntry.eventScope = 2;
+ // Leave off severity
+
+ UserHeader uh(regEntry, phosphor::logging::Entry::Level::Error);
+ ASSERT_EQ(uh.severity(), 0x40);
+}
+
+// Test that the optional event type & scope fields work
+TEST(UserHeaderTest, DefaultEventTypeScopeTest)
+{
+ using namespace openpower::pels::message;
+ Entry regEntry;
+
+ regEntry.name = "test";
+ regEntry.subsystem = 5;
+ regEntry.severity = 0x40;
+ regEntry.actionFlags = 0xC000;
+
+ UserHeader uh(regEntry, phosphor::logging::Entry::Level::Error);
+
+ ASSERT_EQ(uh.eventType(), 0);
+ ASSERT_EQ(uh.scope(), 0x03);
+}
OpenPOWER on IntegriCloud