aboutsummaryrefslogtreecommitdiff
path: root/tests/framework
diff options
context:
space:
mode:
authorsteniu01 <steven.niu@arm.com>2017-08-31 13:49:08 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commit172c58d17cef75fd8b6850609de4f074c8bcdd98 (patch)
treeed1081b76c8eea526bb0968b2141983230a9df85 /tests/framework
parent64ebe5b392b8135ec939b63596ffb8567a3e3248 (diff)
downloadComputeLibrary-172c58d17cef75fd8b6850609de4f074c8bcdd98.tar.gz
COMPMID-345 Fix the failure counter wrongly logging issue
Change-Id: Ic917b0361e602fadb8dbff69c6bec5582d6b261d Reviewed-on: http://mpd-gerrit.cambridge.arm.com/85956 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/framework')
-rw-r--r--tests/framework/Asserts.h9
-rw-r--r--tests/framework/Framework.cpp13
-rw-r--r--tests/framework/Framework.h12
-rw-r--r--tests/framework/printers/JSONPrinter.cpp10
-rw-r--r--tests/framework/printers/JSONPrinter.h1
-rw-r--r--tests/framework/printers/PrettyPrinter.cpp5
-rw-r--r--tests/framework/printers/PrettyPrinter.h1
-rw-r--r--tests/framework/printers/Printer.h6
8 files changed, 57 insertions, 0 deletions
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<TestInfo> 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<TestInfo> 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.