1 #include "elog_entry.hpp" 2 #include "extensions.hpp" 3 4 #include <sdbusplus/test/sdbus_mock.hpp> 5 6 #include <gtest/gtest.h> 7 8 using namespace phosphor::logging; 9 10 void startup1(internal::Manager& /*manager*/) 11 { 12 } 13 14 void startup2(internal::Manager& /*manager*/) 15 { 16 } 17 18 void create1(const std::string& /*message*/, uint32_t /*id*/, 19 uint64_t /*timestamp*/, Entry::Level /*severity*/, 20 const AdditionalDataArg& /*additionalData*/, 21 const AssociationEndpointsArg& /*assocs*/, const FFDCArg& /*ffdc*/) 22 { 23 } 24 25 void create2(const std::string& /*message*/, uint32_t /*id*/, 26 uint64_t /*timestamp*/, Entry::Level /*severity*/, 27 const AdditionalDataArg& /*additionalData*/, 28 const AssociationEndpointsArg& /*assocs*/, const FFDCArg& /*ffdc*/) 29 { 30 } 31 32 void deleteLog1(uint32_t /*id*/) 33 { 34 } 35 36 void deleteLog2(uint32_t /*id*/) 37 { 38 } 39 40 void deleteProhibited1(uint32_t /*id*/, bool& prohibited) 41 { 42 prohibited = true; 43 } 44 45 void deleteProhibited2(uint32_t /*id*/, bool& prohibited) 46 { 47 prohibited = true; 48 } 49 50 DISABLE_LOG_ENTRY_CAPS() 51 REGISTER_EXTENSION_FUNCTION(startup1) 52 REGISTER_EXTENSION_FUNCTION(startup2) 53 REGISTER_EXTENSION_FUNCTION(create1) 54 REGISTER_EXTENSION_FUNCTION(create2) 55 REGISTER_EXTENSION_FUNCTION(deleteProhibited1) 56 REGISTER_EXTENSION_FUNCTION(deleteProhibited2) 57 REGISTER_EXTENSION_FUNCTION(deleteLog1) 58 REGISTER_EXTENSION_FUNCTION(deleteLog2) 59 60 TEST(ExtensionsTest, FunctionCallTest) 61 { 62 sdbusplus::SdBusMock sdbusMock; 63 sdbusplus::bus_t bus = sdbusplus::get_mocked_new(&sdbusMock); 64 internal::Manager manager(bus, "testpath"); 65 66 EXPECT_EQ(Extensions::getStartupFunctions().size(), 2); 67 for (auto& s : Extensions::getStartupFunctions()) 68 { 69 s(manager); 70 } 71 72 AdditionalDataArg ad; 73 AssociationEndpointsArg assocs; 74 FFDCArg ffdc; 75 EXPECT_EQ(Extensions::getCreateFunctions().size(), 2); 76 for (auto& c : Extensions::getCreateFunctions()) 77 { 78 c("test", 5, 6, Entry::Level::Informational, ad, assocs, ffdc); 79 } 80 81 EXPECT_EQ(Extensions::getDeleteFunctions().size(), 2); 82 for (auto& d : Extensions::getDeleteFunctions()) 83 { 84 d(5); 85 } 86 87 EXPECT_EQ(Extensions::getDeleteProhibitedFunctions().size(), 2); 88 for (auto& p : Extensions::getDeleteProhibitedFunctions()) 89 { 90 bool prohibited = false; 91 p(5, prohibited); 92 EXPECT_TRUE(prohibited); 93 } 94 95 EXPECT_TRUE(Extensions::disableDefaultLogCaps()); 96 } 97