forked from Mirrorlandia_minetest/minetest
Log: Silence errorstream during unittests
This commit is contained in:
parent
10e0cf8b2c
commit
093b1b47d9
18
src/log.cpp
18
src/log.cpp
@ -60,6 +60,21 @@ void log_remove_output(ILogOutput *out)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void log_set_lev_silence(enum LogMessageLevel lev, bool silence)
|
||||||
|
{
|
||||||
|
log_threadnamemutex.Lock();
|
||||||
|
|
||||||
|
for (std::list<ILogOutput *>::iterator
|
||||||
|
it = log_outputs[lev].begin();
|
||||||
|
it != log_outputs[lev].end();
|
||||||
|
++it) {
|
||||||
|
ILogOutput *out = *it;
|
||||||
|
out->silence = silence;
|
||||||
|
}
|
||||||
|
|
||||||
|
log_threadnamemutex.Unlock();
|
||||||
|
}
|
||||||
|
|
||||||
void log_register_thread(const std::string &name)
|
void log_register_thread(const std::string &name)
|
||||||
{
|
{
|
||||||
threadid_t id = get_current_thread_id();
|
threadid_t id = get_current_thread_id();
|
||||||
@ -107,6 +122,9 @@ void log_printline(enum LogMessageLevel lev, const std::string &text)
|
|||||||
for(std::list<ILogOutput*>::iterator i = log_outputs[lev].begin();
|
for(std::list<ILogOutput*>::iterator i = log_outputs[lev].begin();
|
||||||
i != log_outputs[lev].end(); i++){
|
i != log_outputs[lev].end(); i++){
|
||||||
ILogOutput *out = *i;
|
ILogOutput *out = *i;
|
||||||
|
if (out->silence)
|
||||||
|
continue;
|
||||||
|
|
||||||
out->printLog(os.str());
|
out->printLog(os.str());
|
||||||
out->printLog(os.str(), lev);
|
out->printLog(os.str(), lev);
|
||||||
out->printLog(lev, text);
|
out->printLog(lev, text);
|
||||||
|
@ -24,7 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Use this for logging everything.
|
Use this for logging everything.
|
||||||
|
|
||||||
If you need to explicitly print something, use dstream or cout or cerr.
|
If you need to explicitly print something, use dstream or cout or cerr.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -39,18 +39,25 @@ enum LogMessageLevel {
|
|||||||
class ILogOutput
|
class ILogOutput
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
ILogOutput() :
|
||||||
|
silence(false)
|
||||||
|
{}
|
||||||
|
|
||||||
/* line: Full line with timestamp, level and thread */
|
/* line: Full line with timestamp, level and thread */
|
||||||
virtual void printLog(const std::string &line){};
|
virtual void printLog(const std::string &line){};
|
||||||
/* line: Full line with timestamp, level and thread */
|
/* line: Full line with timestamp, level and thread */
|
||||||
virtual void printLog(const std::string &line, enum LogMessageLevel lev){};
|
virtual void printLog(const std::string &line, enum LogMessageLevel lev){};
|
||||||
/* line: Only actual printed text */
|
/* line: Only actual printed text */
|
||||||
virtual void printLog(enum LogMessageLevel lev, const std::string &line){};
|
virtual void printLog(enum LogMessageLevel lev, const std::string &line){};
|
||||||
|
|
||||||
|
bool silence;
|
||||||
};
|
};
|
||||||
|
|
||||||
void log_add_output(ILogOutput *out, enum LogMessageLevel lev);
|
void log_add_output(ILogOutput *out, enum LogMessageLevel lev);
|
||||||
void log_add_output_maxlev(ILogOutput *out, enum LogMessageLevel lev);
|
void log_add_output_maxlev(ILogOutput *out, enum LogMessageLevel lev);
|
||||||
void log_add_output_all_levs(ILogOutput *out);
|
void log_add_output_all_levs(ILogOutput *out);
|
||||||
void log_remove_output(ILogOutput *out);
|
void log_remove_output(ILogOutput *out);
|
||||||
|
void log_set_lev_silence(enum LogMessageLevel lev, bool silence);
|
||||||
|
|
||||||
void log_register_thread(const std::string &name);
|
void log_register_thread(const std::string &name);
|
||||||
void log_deregister_thread();
|
void log_deregister_thread();
|
||||||
|
@ -2177,6 +2177,8 @@ void run_tests()
|
|||||||
IWritableNodeDefManager *ndef = createNodeDefManager();
|
IWritableNodeDefManager *ndef = createNodeDefManager();
|
||||||
define_some_nodes(idef, ndef);
|
define_some_nodes(idef, ndef);
|
||||||
|
|
||||||
|
log_set_lev_silence(LMT_ERROR, true);
|
||||||
|
|
||||||
infostream<<"run_tests() started"<<std::endl;
|
infostream<<"run_tests() started"<<std::endl;
|
||||||
TEST(TestUtilities);
|
TEST(TestUtilities);
|
||||||
TEST(TestPath);
|
TEST(TestPath);
|
||||||
@ -2198,6 +2200,8 @@ void run_tests()
|
|||||||
dout_con<<"=== END RUNNING UNIT TESTS FOR CONNECTION ==="<<std::endl;
|
dout_con<<"=== END RUNNING UNIT TESTS FOR CONNECTION ==="<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log_set_lev_silence(LMT_ERROR, false);
|
||||||
|
|
||||||
delete idef;
|
delete idef;
|
||||||
delete ndef;
|
delete ndef;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user