mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Log: Silence errorstream during unittests
This commit is contained in:
		
							
								
								
									
										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)
 | 
			
		||||
{
 | 
			
		||||
	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();
 | 
			
		||||
			i != log_outputs[lev].end(); i++){
 | 
			
		||||
		ILogOutput *out = *i;
 | 
			
		||||
		if (out->silence)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		out->printLog(os.str());
 | 
			
		||||
		out->printLog(os.str(), lev);
 | 
			
		||||
		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.
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	If you need to explicitly print something, use dstream or cout or cerr.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
@@ -39,18 +39,25 @@ enum LogMessageLevel {
 | 
			
		||||
class ILogOutput
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	ILogOutput() :
 | 
			
		||||
		silence(false)
 | 
			
		||||
	{}
 | 
			
		||||
 | 
			
		||||
	/* line: Full line with timestamp, level and thread */
 | 
			
		||||
	virtual void printLog(const std::string &line){};
 | 
			
		||||
	/* line: Full line with timestamp, level and thread */
 | 
			
		||||
	virtual void printLog(const std::string &line, enum LogMessageLevel lev){};
 | 
			
		||||
	/* line: Only actual printed text */
 | 
			
		||||
	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_maxlev(ILogOutput *out, enum LogMessageLevel lev);
 | 
			
		||||
void log_add_output_all_levs(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_deregister_thread();
 | 
			
		||||
 
 | 
			
		||||
@@ -2177,6 +2177,8 @@ void run_tests()
 | 
			
		||||
	IWritableNodeDefManager *ndef = createNodeDefManager();
 | 
			
		||||
	define_some_nodes(idef, ndef);
 | 
			
		||||
 | 
			
		||||
	log_set_lev_silence(LMT_ERROR, true);
 | 
			
		||||
 | 
			
		||||
	infostream<<"run_tests() started"<<std::endl;
 | 
			
		||||
	TEST(TestUtilities);
 | 
			
		||||
	TEST(TestPath);
 | 
			
		||||
@@ -2198,6 +2200,8 @@ void run_tests()
 | 
			
		||||
		dout_con<<"=== END RUNNING UNIT TESTS FOR CONNECTION ==="<<std::endl;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log_set_lev_silence(LMT_ERROR, false);
 | 
			
		||||
 | 
			
		||||
	delete idef;
 | 
			
		||||
	delete ndef;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user