visual tests: still generate error report on ctrl-c
This commit is contained in:
parent
717ab98788
commit
c24229f5c8
3 changed files with 48 additions and 9 deletions
|
@ -26,6 +26,7 @@
|
||||||
// stl
|
// stl
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
// boost
|
// boost
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
@ -33,6 +34,28 @@
|
||||||
namespace visual_tests
|
namespace visual_tests
|
||||||
{
|
{
|
||||||
|
|
||||||
|
class early_exit_error : public std::exception
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
early_exit_error() :
|
||||||
|
what_() {}
|
||||||
|
|
||||||
|
early_exit_error( std::string const& what ) :
|
||||||
|
what_( what )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~early_exit_error() throw() {}
|
||||||
|
|
||||||
|
virtual const char * what() const throw()
|
||||||
|
{
|
||||||
|
return what_.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
mutable std::string what_;
|
||||||
|
};
|
||||||
|
|
||||||
struct map_size
|
struct map_size
|
||||||
{
|
{
|
||||||
map_size(int _width, int _height) : width(_width), height(_height) { }
|
map_size(int _width, int _height) : width(_width), height(_height) { }
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
#include "runner.hpp"
|
#include "runner.hpp"
|
||||||
#include "config.hpp"
|
#include "config.hpp"
|
||||||
|
#include <cstdio>
|
||||||
|
#include <csignal>
|
||||||
|
|
||||||
#include <mapnik/datasource_cache.hpp>
|
#include <mapnik/datasource_cache.hpp>
|
||||||
#include <mapnik/font_engine_freetype.hpp>
|
#include <mapnik/font_engine_freetype.hpp>
|
||||||
|
@ -31,6 +33,12 @@
|
||||||
|
|
||||||
#include "cleanup.hpp" // run_cleanup()
|
#include "cleanup.hpp" // run_cleanup()
|
||||||
|
|
||||||
|
void signal_handler(int /*signal*/)
|
||||||
|
{
|
||||||
|
throw visual_tests::early_exit_error("SIGINT");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
using namespace visual_tests;
|
using namespace visual_tests;
|
||||||
|
@ -81,6 +89,10 @@ int main(int argc, char** argv)
|
||||||
report_type report = vm.count("verbose") ? report_type((console_report())) : report_type((console_short_report()));
|
report_type report = vm.count("verbose") ? report_type((console_report())) : report_type((console_short_report()));
|
||||||
result_list results;
|
result_list results;
|
||||||
|
|
||||||
|
std::signal(SIGINT,signal_handler);
|
||||||
|
|
||||||
|
unsigned failed_count = 0;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (vm.count("styles"))
|
if (vm.count("styles"))
|
||||||
|
@ -91,19 +103,19 @@ int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
results = run.test_all(report);
|
results = run.test_all(report);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (std::exception & e)
|
|
||||||
{
|
|
||||||
std::cerr << "Error runnig tests: " << e.what() << std::endl;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned failed_count = mapnik::util::apply_visitor(summary_visitor(results), report);
|
failed_count = mapnik::util::apply_visitor(summary_visitor(results), report);
|
||||||
|
|
||||||
if (failed_count)
|
if (failed_count)
|
||||||
{
|
{
|
||||||
html_summary(results, output_dir);
|
html_summary(results, output_dir);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (std::exception const& e)
|
||||||
|
{
|
||||||
|
std::cerr << "Error running tests: " << e.what() << std::endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
testing::run_cleanup();
|
testing::run_cleanup();
|
||||||
|
|
||||||
|
|
|
@ -156,6 +156,10 @@ result_list runner::test_range(files_iterator begin, files_iterator end, std::re
|
||||||
result_list r = test_one(file, defaults, report);
|
result_list r = test_one(file, defaults, report);
|
||||||
std::move(r.begin(), r.end(), std::back_inserter(results));
|
std::move(r.begin(), r.end(), std::back_inserter(results));
|
||||||
}
|
}
|
||||||
|
catch (visual_tests::early_exit_error const&)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
catch (std::exception const& ex)
|
catch (std::exception const& ex)
|
||||||
{
|
{
|
||||||
result r;
|
result r;
|
||||||
|
|
Loading…
Reference in a new issue