blob: 31115af56f6d0609cf031acd0062e54acb9c7ee0 [file] [log] [blame]
#include "elog_entry.hpp"
#include "extensions.hpp"
#include <sdbusplus/test/sdbus_mock.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*/, 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 FFDCArg& /*ffdc*/)
{
}
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)
{
sdbusplus::SdBusMock sdbusMock;
sdbusplus::bus::bus bus = sdbusplus::get_mocked_new(&sdbusMock);
internal::Manager manager(bus, "testpath");
EXPECT_EQ(Extensions::getStartupFunctions().size(), 2);
for (auto& s : Extensions::getStartupFunctions())
{
s(manager);
}
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, ffdc);
}
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());
}