From c8d59d11fb78fe19b01f7a7ccd721c2aea2c7cae Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Mon, 13 Jul 2020 15:13:42 +0200 Subject: [PATCH] Add test for cycle methods --- CMakeLists.txt | 3 ++ logger/Logger.cxx | 16 +++++++--- test/cycle.cxx | 81 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 test/cycle.cxx diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bc5660..e27a8b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,6 +90,8 @@ set_target_properties(FairLogger PROPERTIES ) if(BUILD_TESTING) + add_executable(cycleTest test/cycle.cxx) + target_link_libraries(cycleTest FairLogger) add_executable(loggerTest test/logger.cxx) target_link_libraries(loggerTest FairLogger) add_executable(macrosTest test/macros.cxx) @@ -143,6 +145,7 @@ install_cmake_package() # Testing ###################################################################### if(BUILD_TESTING) + add_test(NAME cycle COMMAND $) add_test(NAME logger COMMAND $) add_test(NAME macros COMMAND $) add_test(NAME nolog COMMAND $) diff --git a/logger/Logger.cxx b/logger/Logger.cxx index c14a4db..cf9f63e 100644 --- a/logger/Logger.cxx +++ b/logger/Logger.cxx @@ -389,7 +389,11 @@ void Logger::CycleConsoleSeverityUp() { int current = static_cast(fConsoleSeverity); if (current == static_cast(fSeverityNames.size()) - 1) { +#ifdef FAIR_MIN_SEVERITY + SetConsoleSeverity(Severity::FAIR_MIN_SEVERITY); +#else SetConsoleSeverity(static_cast(0)); +#endif } else { SetConsoleSeverity(static_cast(current + 1)); } @@ -397,7 +401,7 @@ void Logger::CycleConsoleSeverityUp() stringstream ss; for (int i = 0; i < static_cast(fSeverityNames.size()); ++i) { - ss << (i == newCurrent ? ">" : " ") << fSeverityNames.at(i) << (i == newCurrent ? "<" : " "); + ss << (i == newCurrent ? "<" : " ") << fSeverityNames.at(i) << (i == newCurrent ? ">" : " "); } ss << "\n\n"; @@ -407,7 +411,11 @@ void Logger::CycleConsoleSeverityUp() void Logger::CycleConsoleSeverityDown() { int current = static_cast(fConsoleSeverity); +#ifdef FAIR_MIN_SEVERITY + if (current == static_cast(Severity::FAIR_MIN_SEVERITY)) { +#else if (current == 0) { +#endif SetConsoleSeverity(static_cast(fSeverityNames.size() - 1)); } else { SetConsoleSeverity(static_cast(current - 1)); @@ -416,7 +424,7 @@ void Logger::CycleConsoleSeverityDown() stringstream ss; for (int i = 0; i < static_cast(fSeverityNames.size()); ++i) { - ss << (i == newCurrent ? ">" : " ") << fSeverityNames.at(i) << (i == newCurrent ? "<" : " "); + ss << (i == newCurrent ? "<" : " ") << fSeverityNames.at(i) << (i == newCurrent ? ">" : " "); } ss << "\n\n"; @@ -435,7 +443,7 @@ void Logger::CycleVerbosityUp() stringstream ss; for (int i = 0; i < static_cast(fVerbosityNames.size()); ++i) { - ss << (i == newCurrent ? ">" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? "<" : " "); + ss << (i == newCurrent ? "<" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? ">" : " "); } ss << "\n\n"; @@ -454,7 +462,7 @@ void Logger::CycleVerbosityDown() stringstream ss; for (int i = 0; i < static_cast(fVerbosityNames.size()); ++i) { - ss << (i == newCurrent ? ">" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? "<" : " "); + ss << (i == newCurrent ? "<" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? ">" : " "); } ss << "\n\n"; diff --git a/test/cycle.cxx b/test/cycle.cxx new file mode 100644 index 0000000..d98d1e4 --- /dev/null +++ b/test/cycle.cxx @@ -0,0 +1,81 @@ +/******************************************************************************** + * Copyright (C) 2014-2020 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence (LGPL) version 3, * + * copied verbatim in the file LICENSE" * + ********************************************************************************/ + +#include "Common.h" +#include + +#include + +using namespace std; +using namespace fair; +using namespace fair::logger::test; + +int main() +{ + try { + Logger::SetConsoleColor(false); + Logger::SetVerbosity(Verbosity::user4); + + cout << "initial verbosity >" << Logger::GetVerbosity() << "<" << endl << endl; + + array verbositiesUp{{ Verbosity::verylow, Verbosity::low, Verbosity::medium, Verbosity::high, Verbosity::veryhigh, Verbosity::user1, Verbosity::user2, Verbosity::user3, Verbosity::user4, Verbosity::verylow }}; + for (unsigned int i = 0; i < verbositiesUp.size(); ++i) { + Logger::CycleVerbosityUp(); + if (Logger::GetVerbosity() != verbositiesUp.at(i)) { throw runtime_error(ToStr("Expected verbosity to be ", verbositiesUp.at(i), ", but it is ", Logger::GetVerbosity())); } + } + + array verbositiesDown{{ Verbosity::user4, Verbosity::user3, Verbosity::user2, Verbosity::user1, Verbosity::veryhigh, Verbosity::high, Verbosity::medium, Verbosity::low, Verbosity::verylow, Verbosity::user4 }}; + for (unsigned int i = 0; i < verbositiesDown.size(); ++i) { + Logger::CycleVerbosityDown(); + if (Logger::GetVerbosity() != verbositiesDown.at(i)) { throw runtime_error(ToStr("Expected verbosity to be ", verbositiesDown.at(i), ", but it is ", Logger::GetVerbosity())); } + } + + Logger::SetConsoleSeverity(Severity::fatal); + cout << "initial severity >" << Logger::GetConsoleSeverity() << "<" << endl << endl; + + array severitiesUp{{ Severity::nolog, Severity::trace, Severity::debug4, Severity::debug3, Severity::debug2, Severity::debug1, Severity::debug, Severity::info, Severity::state, Severity::warn, Severity::error, Severity::fatal }}; +#ifdef FAIR_MIN_SEVERITY + for (unsigned int i = static_cast(Severity::FAIR_MIN_SEVERITY); i < severitiesUp.size(); ++i) { +#else + for (unsigned int i = 0; i < severitiesUp.size(); ++i) { +#endif + Logger::CycleConsoleSeverityUp(); + if (Logger::GetConsoleSeverity() != severitiesUp.at(i)) { throw runtime_error(ToStr("Expected severity to be ", severitiesUp.at(i), ", but it is ", Logger::GetConsoleSeverity())); } + } + Logger::CycleConsoleSeverityUp(); +#ifdef FAIR_MIN_SEVERITY + if (Logger::GetConsoleSeverity() != Severity::FAIR_MIN_SEVERITY) { throw runtime_error(ToStr("Expected severity to be ", Severity::nolog, ", but it is ", Logger::GetConsoleSeverity())); } +#else + if (Logger::GetConsoleSeverity() != Severity::nolog) { throw runtime_error(ToStr("Expected severity to be ", Severity::nolog, ", but it is ", Logger::GetConsoleSeverity())); } +#endif + + Logger::SetConsoleSeverity(Severity::fatal); + cout << "initial severity >" << Logger::GetConsoleSeverity() << "<" << endl << endl; + + array severitiesDown{{ Severity::error, Severity::warn, Severity::state, Severity::info, Severity::debug, Severity::debug1, Severity::debug2, Severity::debug3, Severity::debug4, Severity::trace, Severity::nolog, Severity::fatal }}; +#ifdef FAIR_MIN_SEVERITY + for (unsigned int i = 0; i < severitiesDown.size() - static_cast(Severity::FAIR_MIN_SEVERITY) - 1; ++i) { +#else + for (unsigned int i = 0; i < severitiesDown.size(); ++i) { +#endif + Logger::CycleConsoleSeverityDown(); + if (Logger::GetConsoleSeverity() != severitiesDown.at(i)) { throw runtime_error(ToStr("Expected severity to be ", severitiesDown.at(i), ", but it is ", Logger::GetConsoleSeverity())); } + } + Logger::CycleConsoleSeverityDown(); +#ifdef FAIR_MIN_SEVERITY + if (Logger::GetConsoleSeverity() != Severity::fatal) { throw runtime_error(ToStr("Expected severity to be ", Severity::fatal, ", but it is ", Logger::GetConsoleSeverity())); } +#else + if (Logger::GetConsoleSeverity() != Severity::error) { throw runtime_error(ToStr("Expected severity to be ", Severity::error, ", but it is ", Logger::GetConsoleSeverity())); } +#endif + } catch (runtime_error& rte) { + cout << rte.what() << endl; + return 1; + } + + return 0; +}