|  | #include "elog_entry.hpp" | 
|  | #include "extensions.hpp" | 
|  |  | 
|  | #include <gtest/gtest.h> | 
|  |  | 
|  | using namespace phosphor::logging; | 
|  |  | 
|  | // gtest doesn't like this happening in another file, so do it here. | 
|  | StartupFunctions Extensions::startupFunctions{}; | 
|  | CreateFunctions Extensions::createFunctions{}; | 
|  | DeleteFunctions Extensions::deleteFunctions{}; | 
|  | DeleteProhibitedFunctions Extensions::deleteProhibitedFunctions{}; | 
|  | Extensions::DefaultErrorCaps Extensions::defaultErrorCaps = | 
|  | Extensions::DefaultErrorCaps::enable; | 
|  |  | 
|  | void startup1(internal::Manager& manager) | 
|  | { | 
|  | } | 
|  |  | 
|  | void startup2(internal::Manager& manager) | 
|  | { | 
|  | } | 
|  |  | 
|  | void create1(const std::string& message, uint32_t id, uint64_t timestamp, | 
|  | Entry::Level severity, const AdditionalDataArg& additionalData, | 
|  | const AssociationEndpointsArg& assocs) | 
|  | { | 
|  | } | 
|  |  | 
|  | void create2(const std::string& message, uint32_t id, uint64_t timestamp, | 
|  | Entry::Level severity, const AdditionalDataArg& additionalData, | 
|  | const AssociationEndpointsArg& assocs) | 
|  | { | 
|  | } | 
|  |  | 
|  | void deleteLog1(uint32_t id) | 
|  | { | 
|  | } | 
|  |  | 
|  | void deleteLog2(uint32_t id) | 
|  | { | 
|  | } | 
|  |  | 
|  | void deleteProhibited1(uint32_t id, bool& prohibited) | 
|  | { | 
|  | prohibited = true; | 
|  | } | 
|  |  | 
|  | void deleteProhibited2(uint32_t id, bool& prohibited) | 
|  | { | 
|  | prohibited = true; | 
|  | } | 
|  |  | 
|  | DISABLE_LOG_ENTRY_CAPS(); | 
|  | REGISTER_EXTENSION_FUNCTION(startup1); | 
|  | REGISTER_EXTENSION_FUNCTION(startup2); | 
|  | REGISTER_EXTENSION_FUNCTION(create1); | 
|  | REGISTER_EXTENSION_FUNCTION(create2); | 
|  | REGISTER_EXTENSION_FUNCTION(deleteProhibited1); | 
|  | REGISTER_EXTENSION_FUNCTION(deleteProhibited2); | 
|  | REGISTER_EXTENSION_FUNCTION(deleteLog1); | 
|  | REGISTER_EXTENSION_FUNCTION(deleteLog2); | 
|  |  | 
|  | TEST(ExtensionsTest, FunctionCallTest) | 
|  | { | 
|  | auto bus = sdbusplus::bus::new_default(); | 
|  | internal::Manager manager(bus, "testpath"); | 
|  |  | 
|  | EXPECT_EQ(Extensions::getStartupFunctions().size(), 2); | 
|  | for (auto& s : Extensions::getStartupFunctions()) | 
|  | { | 
|  | s(manager); | 
|  | } | 
|  |  | 
|  | AdditionalDataArg ad; | 
|  | AssociationEndpointsArg assocs; | 
|  | EXPECT_EQ(Extensions::getCreateFunctions().size(), 2); | 
|  | for (auto& c : Extensions::getCreateFunctions()) | 
|  | { | 
|  | c("test", 5, 6, Entry::Level::Informational, ad, assocs); | 
|  | } | 
|  |  | 
|  | EXPECT_EQ(Extensions::getDeleteFunctions().size(), 2); | 
|  | for (auto& d : Extensions::getDeleteFunctions()) | 
|  | { | 
|  | d(5); | 
|  | } | 
|  |  | 
|  | EXPECT_EQ(Extensions::getDeleteProhibitedFunctions().size(), 2); | 
|  | for (auto& p : Extensions::getDeleteProhibitedFunctions()) | 
|  | { | 
|  | bool prohibited = false; | 
|  | p(5, prohibited); | 
|  | EXPECT_TRUE(prohibited); | 
|  | } | 
|  |  | 
|  | EXPECT_TRUE(Extensions::disableDefaultLogCaps()); | 
|  | } |