From dbfb31cdee063ec61e0ab1087f99f235c12d2e7e Mon Sep 17 00:00:00 2001 From: Anthony Barbier Date: Fri, 24 Nov 2017 11:24:45 +0000 Subject: COMPMID-556 Print tests list using printers rather than cout Will help with scripting to split the tests to run across several boards Change-Id: I32806c3cd03cd1b4af1865cd4fdb0422d609eff0 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/110535 Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com Reviewed-by: Gian Marco Iodice --- tests/framework/printers/JSONPrinter.cpp | 15 +++++++++++++++ tests/framework/printers/JSONPrinter.h | 1 + tests/framework/printers/PrettyPrinter.cpp | 7 +++++++ tests/framework/printers/PrettyPrinter.h | 1 + tests/framework/printers/Printer.h | 5 +++++ 5 files changed, 29 insertions(+) (limited to 'tests/framework') diff --git a/tests/framework/printers/JSONPrinter.cpp b/tests/framework/printers/JSONPrinter.cpp index 8d3c023a92..676ec69336 100644 --- a/tests/framework/printers/JSONPrinter.cpp +++ b/tests/framework/printers/JSONPrinter.cpp @@ -113,6 +113,21 @@ void JSONPrinter::print_test_footer() *_stream << "}"; } +void JSONPrinter::print_list_tests(const std::vector &infos) +{ + *_stream << R"(, "list_tests" : {)"; + bool first = true; + for(auto info : infos) + { + if(!first) + { + *_stream << ","; + } + *_stream << R"(")" << info.id << R"(" : { "name": ")" << info.name << R"(", "mode": ")" << info.mode << R"(", "status" : ")" << info.status << R"(" })"; + first = false; + } + *_stream << "}"; +} void JSONPrinter::print_errors_header() { _errors.clear(); diff --git a/tests/framework/printers/JSONPrinter.h b/tests/framework/printers/JSONPrinter.h index a2811ea41b..3b783ac64f 100644 --- a/tests/framework/printers/JSONPrinter.h +++ b/tests/framework/printers/JSONPrinter.h @@ -52,6 +52,7 @@ public: void print_error(const std::exception &error, bool expected) override; void print_info(const std::string &info) override; void print_measurements(const Profiler::MeasurementsMap &measurements) override; + void print_list_tests(const std::vector &infos) override; private: void print_separator(bool &flag); diff --git a/tests/framework/printers/PrettyPrinter.cpp b/tests/framework/printers/PrettyPrinter.cpp index 280813f044..a2ce821f6b 100644 --- a/tests/framework/printers/PrettyPrinter.cpp +++ b/tests/framework/printers/PrettyPrinter.cpp @@ -108,6 +108,13 @@ void PrettyPrinter::print_error(const std::exception &error, bool expected) *_stream << begin_color("1") << prefix << error.what() << end_color() << "\n"; } +void PrettyPrinter::print_list_tests(const std::vector &infos) +{ + for(auto info : infos) + { + *_stream << "[" << info.id << ", " << info.mode << ", " << info.status << "] " << info.name << "\n"; + } +} void PrettyPrinter::print_measurements(const Profiler::MeasurementsMap &measurements) { for(const auto &instrument : measurements) diff --git a/tests/framework/printers/PrettyPrinter.h b/tests/framework/printers/PrettyPrinter.h index f72a613868..95487f94c5 100644 --- a/tests/framework/printers/PrettyPrinter.h +++ b/tests/framework/printers/PrettyPrinter.h @@ -56,6 +56,7 @@ public: void print_error(const std::exception &error, bool expected) override; void print_info(const std::string &info) override; void print_measurements(const Profiler::MeasurementsMap &measurements) override; + void print_list_tests(const std::vector &infos) override; private: std::string begin_color(const std::string &color) const; diff --git a/tests/framework/printers/Printer.h b/tests/framework/printers/Printer.h index c2a44240ba..cb0aa1e4c2 100644 --- a/tests/framework/printers/Printer.h +++ b/tests/framework/printers/Printer.h @@ -102,6 +102,11 @@ public: /** Print footer after errors. */ virtual void print_errors_footer() = 0; + /** Print the list of all the tests + * + * @param[in] infos List of tests to print + */ + virtual void print_list_tests(const std::vector &infos) = 0; /** Print test error. * * @param[in] error Description of the error. -- cgit v1.2.1