util: fix Logging::getLoggerNames()
Change-Id: Ia243b7eeb7aae69427526e23e7eff4896506871a
diff --git a/tests/unit-tests/util/logging.t.cpp b/tests/unit-tests/util/logging.t.cpp
index 172d58c..b431a05 100644
--- a/tests/unit-tests/util/logging.t.cpp
+++ b/tests/unit-tests/util/logging.t.cpp
@@ -31,8 +31,6 @@
NDN_LOG_INIT(ndn.util.tests.Logging);
-using boost::test_tools::output_test_stream;
-
void
logFromModule1();
@@ -43,7 +41,7 @@
logFromFilterModule();
static void
-logFromNewLogger(const std::string& moduleName)
+logFromNewLogger(const char* moduleName)
{
Logger logger(moduleName);
auto ndn_cxx_getLogger = [&logger] () -> Logger& { return logger; };
@@ -98,9 +96,11 @@
}
private:
- NDN_LOG_MEMBER_INIT(ndn.util.tests.ClassWithLogger);
+ NDN_LOG_MEMBER_DECL();
};
+NDN_LOG_MEMBER_INIT(ClassWithLogger, ndn.util.tests.ClassWithLogger);
+
template<class T, class U>
class ClassTemplateWithLogger
{
@@ -150,7 +150,7 @@
}
protected:
- output_test_stream os;
+ boost::test_tools::output_test_stream os;
private:
std::unordered_map<std::string, LogLevel> m_oldEnabledLevel;
@@ -162,9 +162,12 @@
BOOST_AUTO_TEST_CASE(GetLoggerNames)
{
- NDN_LOG_TRACE("GetLoggerNames"); // to avoid unused function warning
+ // check that all names are registered from the start even if
+ // logger instances are lazily created on first use
+ auto n = Logging::getLoggerNames().size();
+ NDN_LOG_TRACE("GetLoggerNames");
auto names = Logging::getLoggerNames();
- BOOST_CHECK(!names.empty());
+ BOOST_CHECK_EQUAL(names.size(), n);
BOOST_CHECK_EQUAL(names.count("ndn.util.tests.Logging"), 1);
}
@@ -279,6 +282,10 @@
BOOST_CHECK_EQUAL(levels.at("ndn.util.tests.ns1"), LogLevel::INFO);
BOOST_CHECK_EQUAL(levels.at("ndn.util.tests.ns2"), LogLevel::DEBUG);
+ const auto& names = Logging::getLoggerNames();
+ BOOST_CHECK_EQUAL(names.count("ndn.util.tests.ns1"), 1);
+ BOOST_CHECK_EQUAL(names.count("ndn.util.tests.ns2"), 1);
+
ns1::logFromNamespace1();
ns2::logFromNamespace2();
@@ -295,6 +302,11 @@
Logging::setLevel("ndn.util.tests.Specialized1", LogLevel::INFO);
// ndn.util.tests.Specialized2 is not enabled
+ const auto& names = Logging::getLoggerNames();
+ BOOST_CHECK_EQUAL(names.count("ndn.util.tests.ClassWithLogger"), 1);
+ BOOST_CHECK_EQUAL(names.count("ndn.util.tests.Specialized1"), 1);
+ BOOST_CHECK_EQUAL(names.count("ndn.util.tests.Specialized2"), 1);
+
ClassWithLogger::logFromStaticMemberFunction();
ClassWithLogger{}.logFromConstMemberFunction();
@@ -322,6 +334,8 @@
logFromModule1();
logFromNewLogger("Module1");
+ BOOST_CHECK_EQUAL(Logging::getLoggerNames().count("Module1"), 1);
+
Logging::flush();
BOOST_CHECK(os.is_equal(
LOG_SYSTIME_STR + " WARNING: [Module1] warn1\n" +
@@ -603,6 +617,8 @@
BOOST_AUTO_TEST_CASE(ChangeDestination)
{
+ using boost::test_tools::output_test_stream;
+
logFromModule1();
auto os2 = make_shared<output_test_stream>();