PEL: Add support for raw symbolic FRUs and procs

Allow the FRUIdentity and Callout objects to take the raw maintenance
procedure and symbolic FRU names as opposed to just the PEL message
registry names.  This will allow the values to come from sources
besides the registry, such as the device tree used by PHAL.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I4171fb7128ae1b1b5e3e635f7f95b7f7df7c6638
diff --git a/test/openpower-pels/fru_identity_test.cpp b/test/openpower-pels/fru_identity_test.cpp
index b13bf3f..116fe4d 100644
--- a/test/openpower-pels/fru_identity_test.cpp
+++ b/test/openpower-pels/fru_identity_test.cpp
@@ -201,6 +201,12 @@
         EXPECT_FALSE(fru.getCCIN());
         EXPECT_FALSE(fru.getSN());
     }
+
+    {
+        // Raw maintenance procedure
+        FRUIdentity fru{"BMCSPXXLONG", CalloutValueType::raw};
+        EXPECT_EQ(fru.getMaintProc().value(), "BMCSPXX");
+    }
 }
 
 // Test the constructor that takes in a symbolic FRU.
@@ -263,4 +269,11 @@
         EXPECT_FALSE(fru.getCCIN());
         EXPECT_FALSE(fru.getSN());
     }
+
+    // Raw symbolic FRU
+    {
+        FRUIdentity fru{"SOMEFRULONG", CalloutValueType::raw, false};
+
+        EXPECT_EQ(fru.getPN().value(), "SOMEFRU");
+    }
 }