forked from organicmaps/organicmaps
SetLogMessageFn now returns old function pointer.
This commit is contained in:
parent
f15f79bdcc
commit
dd135f2c5a
3 changed files with 17 additions and 18 deletions
|
@ -2,15 +2,15 @@
|
|||
#include "../../testing/testing.hpp"
|
||||
|
||||
#include "../logging.hpp"
|
||||
|
||||
#include "../../std/utility.hpp"
|
||||
#include "../../std/vector.hpp"
|
||||
|
||||
|
||||
namespace
|
||||
{
|
||||
static vector<pair<my::LogLevel, string> > g_LoggedMessages;
|
||||
void TestLogMessage(my::LogLevel level, my::SrcPoint const &, string const & msg)
|
||||
void TestLogMessage(my::LogLevel, my::SrcPoint const &, string const &)
|
||||
{
|
||||
g_LoggedMessages.push_back(make_pair(level, msg));
|
||||
}
|
||||
|
||||
bool g_SomeFunctionCalled;
|
||||
|
@ -19,25 +19,22 @@ namespace
|
|||
g_SomeFunctionCalled = true;
|
||||
return 3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
UNIT_TEST(LoggingSimple)
|
||||
UNIT_TEST(Logging_Level)
|
||||
{
|
||||
my::LogLevel const logLevelSaved = my::g_LogLevel;
|
||||
my::g_LogLevel = LWARNING;
|
||||
g_LoggedMessages.clear();
|
||||
|
||||
g_SomeFunctionCalled = false;
|
||||
void (*logMessageSaved)(my::LogLevel, my::SrcPoint const &, string const &) = my::LogMessage;
|
||||
my::LogMessage = &TestLogMessage;
|
||||
my::LogMessageFn logMessageSaved = my::SetLogMessageFn(&TestLogMessage);
|
||||
|
||||
LOG(LINFO, ("This should not pass", SomeFunction()));
|
||||
//TEST_EQUAL(g_LoggedMessages, (vector<pair<my::LogLevel, string> >()), (::my::g_LogLevel));
|
||||
TEST(!g_SomeFunctionCalled, ());
|
||||
LOG(LWARNING, ("Test", SomeFunction()));
|
||||
vector<pair<my::LogLevel, string> > expectedLoggedMessages;
|
||||
expectedLoggedMessages.push_back(make_pair(LWARNING, string("Test 3")));
|
||||
//TEST_EQUAL(g_LoggedMessages, expectedLoggedMessages, ());
|
||||
|
||||
LOG(LWARNING, ("This should pass", SomeFunction()));
|
||||
TEST(g_SomeFunctionCalled, ());
|
||||
my::LogMessage = logMessageSaved;
|
||||
|
||||
my::SetLogMessageFn(logMessageSaved);
|
||||
my::g_LogLevel = logLevelSaved;
|
||||
}
|
||||
|
|
|
@ -59,10 +59,11 @@ namespace my
|
|||
|
||||
LogMessageFn LogMessage = &LogMessageDefault;
|
||||
|
||||
void SetLogMessageFn(LogMessageFn fn)
|
||||
LogMessageFn SetLogMessageFn(LogMessageFn fn)
|
||||
{
|
||||
LogMessage = fn;
|
||||
};
|
||||
std::swap(LogMessage, fn);
|
||||
return fn;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
LogLevel g_LogLevel = LDEBUG;
|
||||
|
|
|
@ -19,7 +19,8 @@ namespace my
|
|||
extern LogMessageFn LogMessage;
|
||||
extern LogLevel g_LogLevel;
|
||||
|
||||
void SetLogMessageFn(LogMessageFn fn);
|
||||
/// @return Pointer to previous message function.
|
||||
LogMessageFn SetLogMessageFn(LogMessageFn fn);
|
||||
}
|
||||
|
||||
using ::my::LDEBUG;
|
||||
|
|
Loading…
Add table
Reference in a new issue