X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FLog.test.cc;h=a79397a6c2b639aabc14d0848127f60022d949f4;hb=ac86c2bb40746fbedf70a19af3307e5da642b04a;hp=cc31c61e4cee7fb88c0a318738af172022732626;hpb=9ff976ea47b175355a1f7ef4d05f14edb98a82e4;p=senf.git diff --git a/Utils/Logger/Log.test.cc b/Utils/Logger/Log.test.cc index cc31c61..a79397a 100644 --- a/Utils/Logger/Log.test.cc +++ b/Utils/Logger/Log.test.cc @@ -27,84 +27,55 @@ //#include "Log.test.ih" // Custom includes -#include - -// We need to put all tests into this single file to not violate the ODR - -#define _senf_LOG_STREAM logstream -namespace { - std::stringstream logstream; -} - -#define SENF_LOG_CONF (( (senf)(log)(Debug), (_), NOTICE )) - -#include "Log.hh" -#include "Defaults.hh" -#include "Parameters.hh" -#include "Levels.hh" - #include #include +#include "main.test.hh" #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -namespace { - - template - struct Foo - { - typedef int value; - }; - - SENF_LOG_DEF_ALIAS( LogCritical, (senf::log::Debug) (senf::log::CRITICAL) ); - SENF_LOG_DEF_STREAM( myStream, senf::log::MESSAGE, senf::log::MESSAGE, senf::log::MESSAGE ); - SENF_LOG_DEF_AREA( myArea ); - -} - BOOST_AUTO_UNIT_TEST(logger) { + senf::log::StringTarget target; + + target.route(); + + // We cannot easily check the exact log string since that includes the current date/time + SENF_LOG_DEFAULT_STREAM(senf::log::Debug); SENF_LOG_DEFAULT_AREA(senf::log::DefaultArea); SENF_LOG_DEFAULT_LEVEL(senf::log::VERBOSE); - // should be disabled SENF_LOG(("Log message")); + BOOST_CHECK( target.str().empty() ); + target.clear(); + SENF_LOG((senf::log::VERBOSE)("Log message 2")); - // should be enabled + BOOST_CHECK( target.str().empty() ); + target.clear(); + SENF_LOG((senf::log::IMPORTANT)("Important message")); - SENF_LOG((LogCritical) ("Another log message: " << 10)); + BOOST_CHECK( ! target.str().empty() ); + target.clear(); + + SENF_LOG((senf::log::test::LogCritical) ("Another log message: " << 10)); + BOOST_CHECK( ! target.str().empty() ); + target.clear(); SENF_LOG_BLOCK((senf::log::Debug) (senf::log::IMPORTANT) ({ log << "Last message"; log << " continued here"; })); + BOOST_CHECK( ! target.str().empty() ); + target.clear(); - BOOST_CHECK_EQUAL( logstream.str(), - "Important message\n" - "Another log message: 10\n" - "Last message continued here\n" ); -} - -BOOST_AUTO_UNIT_TEST(streamRegistry) -{ - char const * streams[] = { "(anonymous namespace)::myStream", "senf::log::Debug" }; - - BOOST_CHECK_EQUAL_COLLECTIONS( senf::log::StreamRegistry::instance().begin(), - senf::log::StreamRegistry::instance().end(), - streams, streams+sizeof(streams)/sizeof(streams[0]) ); - BOOST_CHECK_EQUAL( senf::log::detail::StreamBase::nStreams, 2u ); -} - -BOOST_AUTO_UNIT_TEST(areaRegistry) -{ - char const * areas[] = { "", "(anonymous namespace)::myArea" }; - - BOOST_CHECK_EQUAL_COLLECTIONS( senf::log::AreaRegistry::instance().begin(), - senf::log::AreaRegistry::instance().end(), - areas, areas+sizeof(areas)/sizeof(areas[0]) ); + senf::log::test::Foo::log(); + BOOST_CHECK( ! target.str().empty() ); + target.clear(); + SENF_LOG((senf::log::test::Foo)("Foo area")); + BOOST_CHECK( target.str().empty() ); + target.clear(); } ///////////////////////////////cc.e////////////////////////////////////////