Implement createWithFFDCFiles

This commit adds support for the createWithFFDCFiles D-Bus method.  This
method creates a new OpenBMC event log, just like create() does, but it
also adds a new parameter to pass through information about files
containing FFDC (First Failure Data Capture) to any extensions.  This
FFDC may be stored by the extensions code to provide additional debug
information about an error.

The FFDC parameter is a vector of tuples.  Each tuple contains:
* Format Type - An enumeration describing the format of the data
* Subtype - If the format type is custom, then this can be used
            to provide a format type that is specific to the
            creator.
* Version - If the format type is custom, then this can be used
            to provide the version of the custom data.
* FD      - A file descriptor to the file containing the FFDC.
            This does not need to be closed (an attempt will fail)
            by phosphor-log-manager.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I3e8e03d6393dfc145e9fd11bd078595868bb3767
diff --git a/test/extensions_test.cpp b/test/extensions_test.cpp
index 17c3395..d210115 100644
--- a/test/extensions_test.cpp
+++ b/test/extensions_test.cpp
@@ -23,13 +23,13 @@
 
 void create1(const std::string& message, uint32_t id, uint64_t timestamp,
              Entry::Level severity, const AdditionalDataArg& additionalData,
-             const AssociationEndpointsArg& assocs)
+             const AssociationEndpointsArg& assocs, const FFDCArg& ffdc)
 {
 }
 
 void create2(const std::string& message, uint32_t id, uint64_t timestamp,
              Entry::Level severity, const AdditionalDataArg& additionalData,
-             const AssociationEndpointsArg& assocs)
+             const AssociationEndpointsArg& assocs, const FFDCArg& ffdc)
 {
 }
 
@@ -74,10 +74,11 @@
 
     AdditionalDataArg ad;
     AssociationEndpointsArg assocs;
+    FFDCArg ffdc;
     EXPECT_EQ(Extensions::getCreateFunctions().size(), 2);
     for (auto& c : Extensions::getCreateFunctions())
     {
-        c("test", 5, 6, Entry::Level::Informational, ad, assocs);
+        c("test", 5, 6, Entry::Level::Informational, ad, assocs, ffdc);
     }
 
     EXPECT_EQ(Extensions::getDeleteFunctions().size(), 2);