diff options
author | Harisuddin Mohamed Isa <harisuddin@gmail.com> | 2020-01-15 20:05:33 +0800 |
---|---|---|
committer | Harisuddin Mohamed Isa <harisuddin@gmail.com> | 2020-02-03 11:56:44 +0800 |
commit | 0f717e1063154f0baec62f80e043d4d1c3317ce0 (patch) | |
tree | 4c2e91a3a7fe18bdd7456c7a77212c8501d15bfe /test | |
parent | 56e08263d6c3c7dccca02a7b3338cc0a37f4d716 (diff) | |
download | phosphor-logging-0f717e1063154f0baec62f80e043d4d1c3317ce0.tar.gz phosphor-logging-0f717e1063154f0baec62f80e043d4d1c3317ce0.zip |
PEL: Print SRC section into JSON
For BMC created errors, look up the reason code in
the message registry for error description and also
meaning of data stored in hexwords 6-9 (if any).
Added registry message field in peltool list output.
"Primary SRC": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x1000",
"SRC Version": "0x02",
"SRC Format": "0x55",
"Power Control Net Fault": "False",
"Error Details": {
"Message": "PS 0x64 had a PGOOD Fault",
"PS_NUM": "0x64"
},
"Valid Word Count": "0x09",
"Reference Code": "BD8D1001",
"Hex Word 2": "00000055",
"Hex Word 3": "00000010",
"Hex Word 4": "00000000",
"Hex Word 5": "00000000",
"Hex Word 6": "00000064",
"Hex Word 7": "00000000",
"Hex Word 8": "00000000",
"Hex Word 9": "00000000"
}
"Primary SRC": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x4552",
"SRC Version": "0x02",
"SRC Format": "0x2008000",
"Power Control Net Fault": "False",
"Valid Word Count": "0x04",
"Reference Code": "B2001020",
"Hex Word 2": "02008000",
"Hex Word 3": "00000000",
"Hex Word 4": "00000012",
"Callout Section": {
"Callout Count": "1",
"Callouts": [{
"FRU Type": "Symbolic FRU",
"Priority": "Medium Priority",
"Part Number": "NEXTLVL"
}]
}
}
Testing: Manually run peltool and verified out. All unit tests passed.
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com>
Change-Id: I124627ba785413ebda02305b7d9f95431922e714
Diffstat (limited to 'test')
-rw-r--r-- | test/openpower-pels/Makefile.include | 8 | ||||
-rw-r--r-- | test/openpower-pels/pel_manager_test.cpp | 5 | ||||
-rw-r--r-- | test/openpower-pels/registry_test.cpp | 41 |
3 files changed, 50 insertions, 4 deletions
diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include index 6905dc3..2bed701 100644 --- a/test/openpower-pels/Makefile.include +++ b/test/openpower-pels/Makefile.include @@ -289,9 +289,13 @@ src_test_LDADD = \ $(top_builddir)/extensions/openpower-pels/callout.o \ $(top_builddir)/extensions/openpower-pels/callouts.o \ $(top_builddir)/extensions/openpower-pels/fru_identity.o \ + $(top_builddir)/extensions/openpower-pels/json_utils.o \ + $(top_builddir)/extensions/openpower-pels/paths.o \ $(top_builddir)/extensions/openpower-pels/mru.o \ $(top_builddir)/extensions/openpower-pels/mtms.o \ $(top_builddir)/extensions/openpower-pels/pce_identity.o \ + $(top_builddir)/extensions/openpower-pels/pel_values.o \ + $(top_builddir)/extensions/openpower-pels/registry.o \ $(top_builddir)/extensions/openpower-pels/src.o src_test_LDFLAGS = $(test_ldflags) @@ -309,9 +313,13 @@ extended_user_header_test_LDADD = \ $(top_builddir)/extensions/openpower-pels/data_interface.o \ $(top_builddir)/extensions/openpower-pels/extended_user_header.o \ $(top_builddir)/extensions/openpower-pels/fru_identity.o \ + $(top_builddir)/extensions/openpower-pels/json_utils.o \ $(top_builddir)/extensions/openpower-pels/mru.o \ $(top_builddir)/extensions/openpower-pels/mtms.o \ + $(top_builddir)/extensions/openpower-pels/paths.o \ + $(top_builddir)/extensions/openpower-pels/pel_values.o \ $(top_builddir)/extensions/openpower-pels/pce_identity.o \ + $(top_builddir)/extensions/openpower-pels/registry.o \ $(top_builddir)/extensions/openpower-pels/src.o extended_user_header_test_LDFLAGS = $(test_ldflags) diff --git a/test/openpower-pels/pel_manager_test.cpp b/test/openpower-pels/pel_manager_test.cpp index 8f3df22..08124ff 100644 --- a/test/openpower-pels/pel_manager_test.cpp +++ b/test/openpower-pels/pel_manager_test.cpp @@ -122,6 +122,11 @@ TEST_F(ManagerTest, TestCreateWithMessageRegistry) "SRC": { "ReasonCode": "0x2030" + }, + "Documentation": + { + "Description": "A PGOOD Fault", + "Message": "PS had a PGOOD Fault" } } ] diff --git a/test/openpower-pels/registry_test.cpp b/test/openpower-pels/registry_test.cpp index c193c3f..2944ce0 100644 --- a/test/openpower-pels/registry_test.cpp +++ b/test/openpower-pels/registry_test.cpp @@ -35,6 +35,12 @@ const auto registryData = R"( "SRC": { "ReasonCode": "0x2030" + }, + + "Documentation": + { + "Description": "A PGOOD Fault", + "Message": "PS had a PGOOD Fault" } }, @@ -66,6 +72,20 @@ const auto registryData = R"( "AdditionalDataPropSource": "VOLTAGE" } } + }, + + "Documentation": + { + "Description": "A PGOOD Fault", + "Message": "PS %1 had a PGOOD Fault", + "MessageArgSources": + [ + "SRCWord6" + ], + "Notes": [ + "In the UserData section there is a JSON", + "dump that provides debug information." + ] } } ] @@ -104,7 +124,7 @@ TEST_F(RegistryTest, TestNoEntry) auto path = RegistryTest::writeData(registryData); Registry registry{path}; - auto entry = registry.lookup("foo"); + auto entry = registry.lookup("foo", LookupType::name); EXPECT_FALSE(entry); } @@ -113,7 +133,8 @@ TEST_F(RegistryTest, TestFindEntry) auto path = RegistryTest::writeData(registryData); Registry registry{path}; - auto entry = registry.lookup("xyz.openbmc_project.Power.OverVoltage"); + auto entry = registry.lookup("xyz.openbmc_project.Power.OverVoltage", + LookupType::name); ASSERT_TRUE(entry); EXPECT_EQ(entry->name, "xyz.openbmc_project.Power.OverVoltage"); EXPECT_EQ(entry->subsystem, 0x62); @@ -147,6 +168,17 @@ TEST_F(RegistryTest, TestFindEntry) EXPECT_NE(std::find((*sid).begin(), (*sid).end(), 5), (*sid).end()); EXPECT_NE(std::find((*sid).begin(), (*sid).end(), 6), (*sid).end()); EXPECT_NE(std::find((*sid).begin(), (*sid).end(), 7), (*sid).end()); + + EXPECT_EQ(entry->doc.description, "A PGOOD Fault"); + EXPECT_EQ(entry->doc.message, "PS %1 had a PGOOD Fault"); + auto& hexwordSource = entry->doc.messageArgSources; + EXPECT_TRUE(hexwordSource); + EXPECT_EQ((*hexwordSource).size(), 1); + EXPECT_EQ((*hexwordSource).front(), "SRCWord6"); + + entry = registry.lookup("0x2333", LookupType::reasonCode); + ASSERT_TRUE(entry); + EXPECT_EQ(entry->name, "xyz.openbmc_project.Power.OverVoltage"); } // Check the entry that mostly uses defaults @@ -155,7 +187,8 @@ TEST_F(RegistryTest, TestFindEntryMinimal) auto path = RegistryTest::writeData(registryData); Registry registry{path}; - auto entry = registry.lookup("xyz.openbmc_project.Power.Fault"); + auto entry = + registry.lookup("xyz.openbmc_project.Power.Fault", LookupType::name); ASSERT_TRUE(entry); EXPECT_EQ(entry->name, "xyz.openbmc_project.Power.Fault"); EXPECT_EQ(entry->subsystem, 0x61); @@ -180,7 +213,7 @@ TEST_F(RegistryTest, TestBadJSON) Registry registry{path}; - EXPECT_FALSE(registry.lookup("foo")); + EXPECT_FALSE(registry.lookup("foo", LookupType::name)); } // Test the helper functions the use the pel_values data. |