From c80cde60446287f93e5ee3dc99fbc2db13d28825 Mon Sep 17 00:00:00 2001 From: talaj Date: Wed, 13 Sep 2017 11:13:51 +0200 Subject: [PATCH] visual tests: report failed tests (#3765) --- test/visual/report.cpp | 60 +++++++++++++++++++++++++++++++----------- test/visual/report.hpp | 3 +++ 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/test/visual/report.cpp b/test/visual/report.cpp index 767acb3bc..211494597 100644 --- a/test/visual/report.cpp +++ b/test/visual/report.cpp @@ -39,22 +39,7 @@ void console_report::report(result const & r) s << '-' << r.tiles.width << 'x' << r.tiles.height; } s << '-' << std::fixed << std::setprecision(1) << r.scale_factor << "\" with " << r.renderer_name << "... "; - - switch (r.state) - { - case STATE_OK: - s << "OK"; - break; - case STATE_FAIL: - s << "FAILED (" << r.diff << " different pixels)"; - break; - case STATE_OVERWRITE: - s << "OVERWRITTEN (" << r.diff << " different pixels)"; - break; - case STATE_ERROR: - s << "ERROR (" << r.error_message << ")"; - break; - } + report_state(r); if (show_duration) { @@ -115,9 +100,52 @@ unsigned console_report::summary(result_list const & results) s << "total: \t" << duration_cast(total).count() << " milliseconds" << std::endl; } + s << std::endl; + report_failures(results); + s << std::endl; + return fail + error; } +void console_report::report_state(result const & r) +{ + switch (r.state) + { + case STATE_OK: + s << "OK"; + break; + case STATE_FAIL: + s << "FAILED (" << r.diff << " different pixels)"; + break; + case STATE_OVERWRITE: + s << "OVERWRITTEN (" << r.diff << " different pixels)"; + break; + case STATE_ERROR: + s << "ERROR (" << r.error_message << ")"; + break; + } +} + +void console_report::report_failures(result_list const & results) +{ + for (auto const & r : results) + { + if (r.state == STATE_OK) + { + continue; + } + + s << r.name << " "; + report_state(r); + s << std::endl; + if (!r.actual_image_path.empty()) + { + s << " " << r.actual_image_path << " (actual)" << std::endl; + s << " " << r.reference_image_path << " (reference)" << std::endl; + } + } +} + void console_short_report::report(result const & r) { switch (r.state) diff --git a/test/visual/report.hpp b/test/visual/report.hpp index 29ae6e73e..713f7bbda 100644 --- a/test/visual/report.hpp +++ b/test/visual/report.hpp @@ -48,6 +48,9 @@ public: unsigned summary(result_list const & results); protected: + void report_state(result const & r); + void report_failures(result_list const & results); + std::ostream & s; bool show_duration; };