fix logger_level_set()

This commit is contained in:
Michael Davidsaver
2021-05-05 19:23:30 -07:00
parent 5d64bca234
commit 3dcf2f59fe
3 changed files with 107 additions and 11 deletions
+85
View File
@@ -0,0 +1,85 @@
/**
* Copyright - See the COPYRIGHT that is included with this distribution.
* pvxs is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <ostream>
#include <testMain.h>
#include <epicsUnitTest.h>
#include <pvxs/unittest.h>
#include <pvxs/log.h>
namespace pvxs {
std::ostream& operator<<(std::ostream& strm, Level lvl)
{
switch (lvl) {
#define CASE(NAME) case Level::NAME: strm<<#NAME; break
CASE(Crit);
CASE(Err);
CASE(Warn);
CASE(Info);
CASE(Debug);
#undef CASE
}
return strm;
}
} // namespace pvxs
using namespace pvxs;
namespace {
DEFINE_LOGGER(loggera, "test.a");
DEFINE_LOGGER(loggerb, "test.b");
void testLog()
{
testDiag("%s", __func__);
testTrue(loggera.test(Level::Warn));
testEq(loggera.lvl.load(), Level::Warn);
logger_level_set("test.*", Level::Err);
testEq(loggera.lvl.load(), Level::Err);
testTrue(loggerb.test(Level::Err));
testEq(loggerb.lvl.load(), Level::Err);
logger_level_set("test.*", Level::Info);
testEq(loggera.lvl.load(), Level::Info);
testEq(loggerb.lvl.load(), Level::Info);
logger_level_set("test.a", Level::Err);
testEq(loggera.lvl.load(), Level::Err);
testEq(loggerb.lvl.load(), Level::Info);
logger_level_set("test.*", Level::Warn);
testEq(loggera.lvl.load(), Level::Warn);
testEq(loggerb.lvl.load(), Level::Warn);
logger_level_clear();
logger_level_set("test.*", Level::Err);
testEq(loggera.lvl.load(), Level::Err);
testEq(loggerb.lvl.load(), Level::Err);
}
} // namespace
MAIN(testlog)
{
testPlan(13);
testSetup();
testLog();
return testDone();
}