Beispiel #1
0
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;
}
Beispiel #2
0
 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));
     }
 }
Beispiel #3
0
 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));
         }
     }
 }
Beispiel #4
0
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;
}