From 172c58d17cef75fd8b6850609de4f074c8bcdd98 Mon Sep 17 00:00:00 2001 From: steniu01 Date: Thu, 31 Aug 2017 13:49:08 +0100 Subject: COMPMID-345 Fix the failure counter wrongly logging issue Change-Id: Ic917b0361e602fadb8dbff69c6bec5582d6b261d Reviewed-on: http://mpd-gerrit.cambridge.arm.com/85956 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- tests/framework/Asserts.h | 9 +++++++++ tests/framework/Framework.cpp | 13 +++++++++++++ tests/framework/Framework.h | 12 ++++++++++++ tests/framework/printers/JSONPrinter.cpp | 10 ++++++++++ tests/framework/printers/JSONPrinter.h | 1 + tests/framework/printers/PrettyPrinter.cpp | 5 +++++ tests/framework/printers/PrettyPrinter.h | 1 + tests/framework/printers/Printer.h | 6 ++++++ 8 files changed, 57 insertions(+) (limited to 'tests/framework') diff --git a/tests/framework/Asserts.h b/tests/framework/Asserts.h index b545a9ebba..936dfcf9bc 100644 --- a/tests/framework/Asserts.h +++ b/tests/framework/Asserts.h @@ -54,6 +54,14 @@ inline T make_printable(T &&value) return value; } +inline void ARM_COMPUTE_PRINT_INFO() +{ + std::stringstream msg; + arm_compute::test::framework::Framework::get().print_test_info(msg); + arm_compute::test::framework::Framework::get().log_info(msg.str()); + arm_compute::test::framework::Framework::get().clear_test_info(); +} + #define ARM_COMPUTE_TEST_INFO(INFO) \ { \ std::stringstream info; \ @@ -126,6 +134,7 @@ ARM_COMPUTE_TEST_COMP_FACTORY(ASSERT, Assertion, !=, NOT_EQUAL, throw arm_comput } \ arm_compute::test::framework::Framework::get().clear_test_info(); \ } while(false) + } // namespace framework } // namespace test } // namespace arm_compute diff --git a/tests/framework/Framework.cpp b/tests/framework/Framework.cpp index 315f8ebea7..8d015c69d2 100644 --- a/tests/framework/Framework.cpp +++ b/tests/framework/Framework.cpp @@ -179,6 +179,14 @@ void Framework::log_failed_expectation(const TestError &error) } } +void Framework::log_info(const std::string &info) +{ + if(_log_level >= LogLevel::DEBUG && _printer != nullptr) + { + _printer->print_info(info); + } +} + int Framework::num_iterations() const { return _num_iterations; @@ -489,6 +497,11 @@ std::vector Framework::test_infos() const return ids; } + +LogLevel Framework::log_level() const +{ + return _log_level; +} } // namespace framework } // namespace test } // namespace arm_compute diff --git a/tests/framework/Framework.h b/tests/framework/Framework.h index 055392cdae..6a26c29b80 100644 --- a/tests/framework/Framework.h +++ b/tests/framework/Framework.h @@ -191,6 +191,12 @@ public: */ void log_failed_expectation(const TestError &error); + /** Print the debug information that has already been logged + * + * @param[in] info Description of the log info. + */ + void log_info(const std::string &info); + /** Number of iterations per test case. * * @return Number of iterations per test case. @@ -270,6 +276,12 @@ public: */ std::vector test_infos() const; + /** Get the current logging level + * + * @return The current logging level. + */ + LogLevel log_level() const; + private: Framework(); ~Framework() = default; diff --git a/tests/framework/printers/JSONPrinter.cpp b/tests/framework/printers/JSONPrinter.cpp index 5b30389eca..bf8fce7844 100644 --- a/tests/framework/printers/JSONPrinter.cpp +++ b/tests/framework/printers/JSONPrinter.cpp @@ -113,6 +113,16 @@ void JSONPrinter::print_error(const std::exception &error) } } +void JSONPrinter::print_info(const std::string &info) +{ + std::istringstream iss(info); + for(std::string line; !std::getline(iss, line).fail();) + { + print_separator(_first_error); + *_stream << R"(")" << line << R"(")"; + } +} + void JSONPrinter::print_measurements(const Profiler::MeasurementsMap &measurements) { print_separator(_first_test_entry); diff --git a/tests/framework/printers/JSONPrinter.h b/tests/framework/printers/JSONPrinter.h index 14c8b35cb9..18bd4380b0 100644 --- a/tests/framework/printers/JSONPrinter.h +++ b/tests/framework/printers/JSONPrinter.h @@ -48,6 +48,7 @@ public: void print_errors_header() override; void print_errors_footer() override; void print_error(const std::exception &error) override; + void print_info(const std::string &info) override; void print_measurements(const Profiler::MeasurementsMap &measurements) override; private: diff --git a/tests/framework/printers/PrettyPrinter.cpp b/tests/framework/printers/PrettyPrinter.cpp index ec32e5296e..b0892a4a50 100644 --- a/tests/framework/printers/PrettyPrinter.cpp +++ b/tests/framework/printers/PrettyPrinter.cpp @@ -96,6 +96,11 @@ void PrettyPrinter::print_errors_footer() { } +void PrettyPrinter::print_info(const std::string &info) +{ + *_stream << begin_color("1") << "INFO: " << info << end_color() << "\n"; +} + void PrettyPrinter::print_error(const std::exception &error) { *_stream << begin_color("1") << "ERROR: " << error.what() << end_color() << "\n"; diff --git a/tests/framework/printers/PrettyPrinter.h b/tests/framework/printers/PrettyPrinter.h index fa7b7b2c59..3e2bebd1f7 100644 --- a/tests/framework/printers/PrettyPrinter.h +++ b/tests/framework/printers/PrettyPrinter.h @@ -54,6 +54,7 @@ public: void print_errors_header() override; void print_errors_footer() override; void print_error(const std::exception &error) override; + void print_info(const std::string &info) override; void print_measurements(const Profiler::MeasurementsMap &measurements) override; private: diff --git a/tests/framework/printers/Printer.h b/tests/framework/printers/Printer.h index 198d84d466..16a4170d7a 100644 --- a/tests/framework/printers/Printer.h +++ b/tests/framework/printers/Printer.h @@ -108,6 +108,12 @@ public: */ virtual void print_error(const std::exception &error) = 0; + /** Print test log info. + * + * @param[in] info Description of the log. + */ + virtual void print_info(const std::string &info) = 0; + /** Print measurements for a test. * * @param[in] measurements Measurements as collected by a @ref Profiler. -- cgit v1.2.1