make available test functions as macros to allow catch to report correct line numbers

This commit is contained in:
Dane Springmeyer 2016-01-14 16:06:20 -08:00
parent 6ad373019d
commit bba2826813

View file

@ -52,29 +52,36 @@ std::string vector_to_string(std::vector<mapnik::attribute_descriptor> const& ve
return s.str();
}
#define REQUIRE_FIELD_NAMES(fields, names) \
INFO("fields: " + vector_to_string(fields) + " names: " + vector_to_string(names)); \
REQUIRE(fields.size() == names.size()); \
auto itr_a = fields.begin(); \
auto const end_a = fields.end(); \
auto itr_b = names.begin(); \
for (; itr_a != end_a; ++itr_a, ++itr_b) \
{ \
CHECK(itr_a->get_name() == *itr_b); \
} \
inline void require_field_names(std::vector<mapnik::attribute_descriptor> const &fields,
std::initializer_list<std::string> const &names)
{
INFO("fields: " + vector_to_string(fields) + " names: " + vector_to_string(names));
REQUIRE(fields.size() == names.size());
auto itr_a = fields.begin();
auto const end_a = fields.end();
auto itr_b = names.begin();
for (; itr_a != end_a; ++itr_a, ++itr_b)
{
CHECK(itr_a->get_name() == *itr_b);
}
REQUIRE_FIELD_NAMES(fields,names);
}
#define REQUIRE_FIELD_TYPES(fields, types) \
REQUIRE(fields.size() == types.size()); \
auto itr_a = fields.begin(); \
auto const end_a = fields.end(); \
auto itr_b = types.begin(); \
for (; itr_a != end_a; ++itr_a, ++itr_b) { \
CHECK(itr_a->get_type() == *itr_b); \
} \
inline void require_field_types(std::vector<mapnik::attribute_descriptor> const &fields,
std::initializer_list<mapnik::eAttributeType> const &types) {
REQUIRE(fields.size() == types.size());
auto itr_a = fields.begin();
auto const end_a = fields.end();
auto itr_b = types.begin();
for (; itr_a != end_a; ++itr_a, ++itr_b) {
CHECK(itr_a->get_type() == *itr_b);
}
std::initializer_list<mapnik::eAttributeType> const &types)
{
REQUIRE_FIELD_TYPES(fields, types);
}
inline mapnik::featureset_ptr all_features(mapnik::datasource_ptr ds) {