result_list runner::test_range(files_iterator begin, files_iterator end, std::reference_wrapper<report_type> report) const { config defaults; result_list results; for (runner::files_iterator i = begin; i != end; i++) { runner::path_type const & file = *i; if (file.extension() == ".xml") { try { result_list r = test_one(file, defaults, report); std::move(r.begin(), r.end(), std::back_inserter(results)); } catch (std::exception const& ex) { result r; r.state = STATE_ERROR; r.name = file.string(); r.error_message = ex.what(); results.emplace_back(r); mapnik::util::apply_visitor(report_visitor(r), report.get()); } } } return results; }
void operator()(T const & renderer) { if (tiles_.width == 1 && tiles_.height == 1) { result r = renderer.test(name_, map_, scale_factor_); mapnik::util::apply_visitor(report_visitor(r), report_); results_.push_back(std::move(r)); } }
void test(T const & renderer) { map_size size { map_.width(), map_.height() }; std::chrono::high_resolution_clock::time_point start(std::chrono::high_resolution_clock::now()); for (std::size_t i = iterations_ ; i > 0; i--) { typename T::image_type image(render(renderer)); if (i == 1) { std::chrono::high_resolution_clock::time_point end(std::chrono::high_resolution_clock::now()); result r(renderer.report(image, name_, size, tiles_, scale_factor_)); r.duration = end - start; mapnik::util::apply_visitor(report_visitor(r), report_); results_.push_back(std::move(r)); } } }
result_list runner::test_range(files_iterator begin, files_iterator end, std::reference_wrapper<report_type> report, std::reference_wrapper<std::atomic<std::size_t>> fail_count) const { result_list results; for (runner::files_iterator i = begin; i != end; i++) { runner::path_type const & file = *i; if (file.extension() == ".xml") { try { result_list r = test_one(file, report, fail_count.get()); std::move(r.begin(), r.end(), std::back_inserter(results)); } catch (std::exception const& ex) { result r; r.state = STATE_ERROR; r.name = file.string(); r.error_message = ex.what(); r.duration = std::chrono::high_resolution_clock::duration::zero(); results.emplace_back(r); mapnik::util::apply_visitor(report_visitor(r), report.get()); ++fail_count.get(); } } if (fail_limit_ && fail_count.get() >= fail_limit_) { break; } } return results; }