diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d832826b758521b5f280fb36488ae2758fc8aa3b..f50720cf696d30ca237f025b7671048ae8c43ce9 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -71,3 +71,4 @@ DYNAMIC_GRAPH_TEST(real-time-logger) DYNAMIC_GRAPH_TEST(debug-trace) DYNAMIC_GRAPH_TEST(debug-tracer) TARGET_LINK_LIBRARIES(debug-tracer tracer) +DYNAMIC_GRAPH_TEST(debug-logger) diff --git a/tests/debug-logger.cpp b/tests/debug-logger.cpp new file mode 100644 index 0000000000000000000000000000000000000000..447df8312a6e4776f2454f38bbc6ab90f67142c3 --- /dev/null +++ b/tests/debug-logger.cpp @@ -0,0 +1,86 @@ +/* Copyright 2019, LAAS-CNRS + * + * Olivier Stasse + * + * See LICENSE file + * + */ +#include <sstream> +#include <iostream> +#include <dynamic-graph/entity.h> +#include <dynamic-graph/exception-factory.h> +#include "dynamic-graph/factory.h" +#include "dynamic-graph/pool.h" + +#define ENABLE_RT_LOG +#include <dynamic-graph/real-time-logger.h> +#include <dynamic-graph/logger.h> + +#define BOOST_TEST_MODULE debug-logger + +#include <boost/test/unit_test.hpp> +#include <boost/test/output_test_stream.hpp> + +using boost::test_tools::output_test_stream; + + +namespace dynamicgraph +{ + class CustomEntity : public Entity + { + public: + static const std::string CLASS_NAME; + virtual const std::string& getClassName () const + { + return CLASS_NAME; + } + CustomEntity (const std::string n) + : Entity (n) + { + logger_.setTimeSample(0.001); + logger_.setStreamPrintPeriod(0.005); + logger_.setVerbosity(VERBOSITY_ALL); + LoggerVerbosity alv = logger_.getVerbosity(); + BOOST_CHECK(alv==VERBOSITY_ALL); + } + + ~CustomEntity() + { + } + void testDebugTrace() + { + sendMsg("This is a message of level MSG_TYPE_DEBUG",MSG_TYPE_DEBUG); + sendMsg("This is a message of level MSG_TYPE_INFO",MSG_TYPE_INFO); + sendMsg("This is a message of level MSG_TYPE_WARNING",MSG_TYPE_WARNING); + sendMsg("This is a message of level MSG_TYPE_ERROR",MSG_TYPE_ERROR); + sendMsg("This is a message of level MSG_TYPE_DEBUG_STREAM",MSG_TYPE_DEBUG_STREAM); + sendMsg("This is a message of level MSG_TYPE_INFO_STREAM",MSG_TYPE_INFO_STREAM); + sendMsg("This is a message of level MSG_TYPE_WARNING_STREAM",MSG_TYPE_WARNING_STREAM); + sendMsg("This is a message of level MSG_TYPE_ERROR_STREAM",MSG_TYPE_ERROR_STREAM); + + logger_.countdown(); + + } + }; + DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (CustomEntity,"CustomEntity"); +} + +BOOST_AUTO_TEST_CASE(debug_logger) +{ + std::ofstream of; + of.open("/tmp/dg-LOGS.txt",std::ofstream::out|std::ofstream::app); + dgADD_OSTREAM_TO_RTLOG (of); + + BOOST_CHECK_EQUAL (dynamicgraph::CustomEntity::CLASS_NAME, "CustomEntity"); + + dynamicgraph::CustomEntity& entity = *(dynamic_cast<dynamicgraph::CustomEntity *>( + dynamicgraph::FactoryStorage::getInstance()->newEntity("CustomEntity", + "my-entity"))); + + for(unsigned int i=0;i<10000;i++) + { + entity.testDebugTrace(); + } + +} +