visual tests: command line switches for renderers
This commit is contained in:
parent
d548ec1152
commit
fd19c754f3
5 changed files with 81 additions and 46 deletions
|
@ -12,6 +12,10 @@ Released: YYYY XX, 2015
|
||||||
|
|
||||||
(Packaged from xxxx)
|
(Packaged from xxxx)
|
||||||
|
|
||||||
|
#### Summary
|
||||||
|
|
||||||
|
- Visual tests: new command line arguments `--agg`, `--cairo`, `--svg`, `--grid` for selecting renderers (https://github.com/mapnik/mapnik/pull/3074)
|
||||||
|
|
||||||
## 3.0.5
|
## 3.0.5
|
||||||
|
|
||||||
Released: September 16, 2015
|
Released: September 16, 2015
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include <mapnik/map.hpp>
|
#include <mapnik/map.hpp>
|
||||||
#include <mapnik/image_util.hpp>
|
#include <mapnik/image_util.hpp>
|
||||||
#include <mapnik/image_reader.hpp>
|
#include <mapnik/image_reader.hpp>
|
||||||
|
#include <mapnik/util/variant.hpp>
|
||||||
#include <mapnik/agg_renderer.hpp>
|
#include <mapnik/agg_renderer.hpp>
|
||||||
#if defined(GRID_RENDERER)
|
#if defined(GRID_RENDERER)
|
||||||
#include <mapnik/grid/grid_renderer.hpp>
|
#include <mapnik/grid/grid_renderer.hpp>
|
||||||
|
@ -326,11 +327,23 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
const Renderer ren;
|
const Renderer ren;
|
||||||
boost::filesystem::path const & output_dir;
|
const boost::filesystem::path output_dir;
|
||||||
boost::filesystem::path const & reference_dir;
|
const boost::filesystem::path reference_dir;
|
||||||
const bool overwrite;
|
const bool overwrite;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
using renderer_type = mapnik::util::variant<renderer<agg_renderer>
|
||||||
|
#if defined(HAVE_CAIRO)
|
||||||
|
,renderer<cairo_renderer>
|
||||||
|
#endif
|
||||||
|
#if defined(SVG_RENDERER)
|
||||||
|
,renderer<svg_renderer>
|
||||||
|
#endif
|
||||||
|
#if defined(GRID_RENDERER)
|
||||||
|
,renderer<grid_renderer>
|
||||||
|
#endif
|
||||||
|
>;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -43,11 +43,50 @@ log_levels_map log_levels
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
using namespace visual_tests;
|
||||||
|
namespace po = boost::program_options;
|
||||||
|
|
||||||
|
runner::renderer_container create_renderers(po::variables_map const & args,
|
||||||
|
boost::filesystem::path const & output_dir,
|
||||||
|
bool append_all = false)
|
||||||
|
{
|
||||||
|
boost::filesystem::path reference_dir(args["images-dir"].as<std::string>());
|
||||||
|
bool overwrite = args.count("overwrite");
|
||||||
|
runner::renderer_container renderers;
|
||||||
|
|
||||||
|
if (append_all || args.count(agg_renderer::name))
|
||||||
|
{
|
||||||
|
renderers.emplace_back(renderer<agg_renderer>(output_dir, reference_dir, overwrite));
|
||||||
|
}
|
||||||
|
#if defined(HAVE_CAIRO)
|
||||||
|
if (append_all || args.count(cairo_renderer::name))
|
||||||
|
{
|
||||||
|
renderers.emplace_back(renderer<cairo_renderer>(output_dir, reference_dir, overwrite));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if defined(SVG_RENDERER)
|
||||||
|
if (append_all || args.count(svg_renderer::name))
|
||||||
|
{
|
||||||
|
renderers.emplace_back(renderer<svg_renderer>(output_dir, reference_dir, overwrite));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if defined(GRID_RENDERER)
|
||||||
|
if (append_all || args.count(grid_renderer::name))
|
||||||
|
{
|
||||||
|
renderers.emplace_back(renderer<grid_renderer>(output_dir, reference_dir, overwrite));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (renderers.empty())
|
||||||
|
{
|
||||||
|
return create_renderers(args, output_dir, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return renderers;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
using namespace visual_tests;
|
|
||||||
namespace po = boost::program_options;
|
|
||||||
|
|
||||||
po::options_description desc("visual test runner");
|
po::options_description desc("visual test runner");
|
||||||
desc.add_options()
|
desc.add_options()
|
||||||
("help,h", "produce usage message")
|
("help,h", "produce usage message")
|
||||||
|
@ -68,6 +107,16 @@ int main(int argc, char** argv)
|
||||||
("log", po::value<std::string>()->default_value(std::find_if(log_levels.begin(), log_levels.end(),
|
("log", po::value<std::string>()->default_value(std::find_if(log_levels.begin(), log_levels.end(),
|
||||||
[](log_levels_map::value_type const & level) { return level.second == mapnik::logger::get_severity(); } )->first),
|
[](log_levels_map::value_type const & level) { return level.second == mapnik::logger::get_severity(); } )->first),
|
||||||
"log level (debug, warn, error, none)")
|
"log level (debug, warn, error, none)")
|
||||||
|
#endif
|
||||||
|
(agg_renderer::name, "render with AGG renderer")
|
||||||
|
#if defined(HAVE_CAIRO)
|
||||||
|
(cairo_renderer::name, "render with Cairo renderer")
|
||||||
|
#endif
|
||||||
|
#if defined(SVG_RENDERER)
|
||||||
|
(svg_renderer::name, "render with SVG renderer")
|
||||||
|
#endif
|
||||||
|
#if defined(GRID_RENDERER)
|
||||||
|
(grid_renderer::name, "render with Grid renderer")
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -108,12 +157,10 @@ int main(int argc, char** argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner run(vm["styles-dir"].as<std::string>(),
|
runner run(vm["styles-dir"].as<std::string>(),
|
||||||
output_dir,
|
|
||||||
vm["images-dir"].as<std::string>(),
|
|
||||||
vm.count("overwrite"),
|
|
||||||
vm["iterations"].as<std::size_t>(),
|
vm["iterations"].as<std::size_t>(),
|
||||||
vm["limit"].as<std::size_t>(),
|
vm["limit"].as<std::size_t>(),
|
||||||
vm["jobs"].as<std::size_t>());
|
vm["jobs"].as<std::size_t>(),
|
||||||
|
create_renderers(vm, output_dir));
|
||||||
bool show_duration = vm.count("duration");
|
bool show_duration = vm.count("duration");
|
||||||
report_type report(vm.count("verbose") ? report_type((console_report(show_duration))) : report_type((console_short_report(show_duration))));
|
report_type report(vm.count("verbose") ? report_type((console_report(show_duration))) : report_type((console_short_report(show_duration))));
|
||||||
result_list results;
|
result_list results;
|
||||||
|
|
|
@ -126,29 +126,15 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
runner::runner(runner::path_type const & styles_dir,
|
runner::runner(runner::path_type const & styles_dir,
|
||||||
runner::path_type const & output_dir,
|
|
||||||
runner::path_type const & reference_dir,
|
|
||||||
bool overwrite,
|
|
||||||
std::size_t iterations,
|
std::size_t iterations,
|
||||||
std::size_t fail_limit,
|
std::size_t fail_limit,
|
||||||
std::size_t jobs)
|
std::size_t jobs,
|
||||||
|
runner::renderer_container const & renderers)
|
||||||
: styles_dir_(styles_dir),
|
: styles_dir_(styles_dir),
|
||||||
output_dir_(output_dir),
|
|
||||||
reference_dir_(reference_dir),
|
|
||||||
jobs_(jobs),
|
jobs_(jobs),
|
||||||
iterations_(iterations),
|
iterations_(iterations),
|
||||||
fail_limit_(fail_limit),
|
fail_limit_(fail_limit),
|
||||||
renderers_{ renderer<agg_renderer>(output_dir_, reference_dir_, overwrite)
|
renderers_(renderers)
|
||||||
#if defined(HAVE_CAIRO)
|
|
||||||
,renderer<cairo_renderer>(output_dir_, reference_dir_, overwrite)
|
|
||||||
#endif
|
|
||||||
#if defined(SVG_RENDERER)
|
|
||||||
,renderer<svg_renderer>(output_dir_, reference_dir_, overwrite)
|
|
||||||
#endif
|
|
||||||
#if defined(GRID_RENDERER)
|
|
||||||
,renderer<grid_renderer>(output_dir_, reference_dir_, overwrite)
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,6 @@
|
||||||
#ifndef VISUAL_TEST_RUNNER_HPP
|
#ifndef VISUAL_TEST_RUNNER_HPP
|
||||||
#define VISUAL_TEST_RUNNER_HPP
|
#define VISUAL_TEST_RUNNER_HPP
|
||||||
|
|
||||||
#include <mapnik/util/variant.hpp>
|
|
||||||
|
|
||||||
#include "config.hpp"
|
#include "config.hpp"
|
||||||
#include "report.hpp"
|
#include "report.hpp"
|
||||||
#include "renderer.hpp"
|
#include "renderer.hpp"
|
||||||
|
@ -35,28 +33,17 @@ namespace visual_tests
|
||||||
|
|
||||||
class runner
|
class runner
|
||||||
{
|
{
|
||||||
using renderer_type = mapnik::util::variant<renderer<agg_renderer>
|
|
||||||
#if defined(HAVE_CAIRO)
|
|
||||||
,renderer<cairo_renderer>
|
|
||||||
#endif
|
|
||||||
#if defined(SVG_RENDERER)
|
|
||||||
,renderer<svg_renderer>
|
|
||||||
#endif
|
|
||||||
#if defined(GRID_RENDERER)
|
|
||||||
,renderer<grid_renderer>
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
using path_type = boost::filesystem::path;
|
using path_type = boost::filesystem::path;
|
||||||
using files_iterator = std::vector<path_type>::const_iterator;
|
using files_iterator = std::vector<path_type>::const_iterator;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
using renderer_container = std::vector<renderer_type>;
|
||||||
|
|
||||||
runner(path_type const & styles_dir,
|
runner(path_type const & styles_dir,
|
||||||
path_type const & output_dir,
|
|
||||||
path_type const & reference_dir,
|
|
||||||
bool overwrite,
|
|
||||||
std::size_t iterations,
|
std::size_t iterations,
|
||||||
std::size_t fail_limit,
|
std::size_t fail_limit,
|
||||||
std::size_t jobs);
|
std::size_t jobs,
|
||||||
|
renderer_container const & renderers);
|
||||||
|
|
||||||
result_list test_all(report_type & report) const;
|
result_list test_all(report_type & report) const;
|
||||||
result_list test(std::vector<std::string> const & style_names, report_type & report) const;
|
result_list test(std::vector<std::string> const & style_names, report_type & report) const;
|
||||||
|
@ -74,12 +61,10 @@ private:
|
||||||
|
|
||||||
const map_sizes_grammar<std::string::const_iterator> map_sizes_parser_;
|
const map_sizes_grammar<std::string::const_iterator> map_sizes_parser_;
|
||||||
const path_type styles_dir_;
|
const path_type styles_dir_;
|
||||||
const path_type output_dir_;
|
|
||||||
const path_type reference_dir_;
|
|
||||||
const std::size_t jobs_;
|
const std::size_t jobs_;
|
||||||
const std::size_t iterations_;
|
const std::size_t iterations_;
|
||||||
const std::size_t fail_limit_;
|
const std::size_t fail_limit_;
|
||||||
const renderer_type renderers_[boost::mpl::size<renderer_type::types>::value];
|
const renderer_container renderers_;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue