summaryrefslogtreecommitdiffstats
path: root/test/extensions_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/extensions_test.cpp')
-rw-r--r--test/extensions_test.cpp98
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());
+}
OpenPOWER on IntegriCloud