diff options
Diffstat (limited to 'test/extensions_test.cpp')
-rw-r--r-- | test/extensions_test.cpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/test/extensions_test.cpp b/test/extensions_test.cpp new file mode 100644 index 0000000..17c3395 --- /dev/null +++ b/test/extensions_test.cpp @@ -0,0 +1,98 @@ +#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()); +} |