From 04e1f8273404437def3f6b044706dbaf98b4c4c2 Mon Sep 17 00:00:00 2001 From: Mickey Rose Date: Sat, 30 Jun 2018 15:09:49 +0200 Subject: [PATCH] datasource tests: use macro REQUIRE_ATTRIBUTES instead of function - failing checks report location inside the function, not where it's called from; using macro reports proper location --- test/unit/datasource/csv.cpp | 52 +++++++++++++-------------- test/unit/datasource/ds_test_util.hpp | 5 --- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/test/unit/datasource/csv.cpp b/test/unit/datasource/csv.cpp index 84f23655a..cc61ca7aa 100644 --- a/test/unit/datasource/csv.cpp +++ b/test/unit/datasource/csv.cpp @@ -241,7 +241,7 @@ TEST_CASE("csv") { auto features = ds->features(query); auto feature = features->next(); - require_attributes(feature, { + REQUIRE_ATTRIBUTES(feature, { attr { lon_name, mapnik::value_integer(0) }, attr { "lat", mapnik::value_integer(0) } }); @@ -298,8 +298,8 @@ TEST_CASE("csv") { , attr { "geo_longitude", mapnik::value_integer(-70) } , attr { "geo_latitude", mapnik::value_integer(40) } }; - require_attributes(feature, expected_attr); - require_attributes(feature2, expected_attr); + REQUIRE_ATTRIBUTES(feature, expected_attr); + REQUIRE_ATTRIBUTES(feature2, expected_attr); if (mapnik::util::exists(filepath + ".index")) { mapnik::util::remove(filepath + ".index"); @@ -367,7 +367,7 @@ TEST_CASE("csv") { auto featureset = all_features(ds); auto feature = featureset->next(); - require_attributes(feature, { + REQUIRE_ATTRIBUTES(feature, { attr { "x", mapnik::value_integer(0) } , attr { "empty_column", mapnik::value_unicode_string("") } , attr { "text", mapnik::value_unicode_string("a b") } @@ -416,15 +416,15 @@ TEST_CASE("csv") { require_field_types(fields, {mapnik::Integer, mapnik::Integer, mapnik::String}); auto featureset = all_features(ds); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0} , attr{"y", 0} , attr{"name", mapnik::value_unicode_string("a/a") } }); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 1} , attr{"y", 4} , attr{"name", mapnik::value_unicode_string("b/b") } }); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 10} , attr{"y", 2.5} , attr{"name", mapnik::value_unicode_string("c/c") } }); @@ -531,7 +531,7 @@ TEST_CASE("csv") { auto fields = ds->get_descriptor().get_descriptors(); require_field_names(fields, {"x", "y", "1990", "1991", "1992"}); auto feature = all_features(ds)->next(); - require_attributes(feature, { + REQUIRE_ATTRIBUTES(feature, { attr{"x", 0} , attr{"y", 0} , attr{"1990", 1} @@ -575,15 +575,15 @@ TEST_CASE("csv") { require_field_names(fields, {"x", "y", "label"}); auto featureset = all_features(ds); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 0}, attr{"label", ustring("0,0") } }); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 5}, attr{"y", 5}, attr{"label", ustring("5,5") } }); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 5}, attr{"label", ustring("0,5") } }); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 5}, attr{"y", 0}, attr{"label", ustring("5,0") } }); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 2.5}, attr{"y", 2.5}, attr{"label", ustring("2.5,2.5") } }); if (mapnik::util::exists(filename + ".index")) { @@ -615,7 +615,7 @@ TEST_CASE("csv") { auto ds = get_csv_ds(filename); auto fields = ds->get_descriptor().get_descriptors(); require_field_names(fields, {"x", "y", "z"}); - require_attributes(all_features(ds)->next(), { + REQUIRE_ATTRIBUTES(all_features(ds)->next(), { attr{"x", 1}, attr{"y", 10}, attr{"z", 9999.9999} }); if (mapnik::util::exists(filename + ".index")) { @@ -653,7 +653,7 @@ TEST_CASE("csv") { auto ds = get_csv_ds(filename); auto fields = ds->get_descriptor().get_descriptors(); require_field_names(fields, {"x", "y", "line"}); - require_attributes(all_features(ds)->next(), { + REQUIRE_ATTRIBUTES(all_features(ds)->next(), { attr{"x", 0}, attr{"y", 0} , attr{"line", ustring("many\n lines\n of text\n with unix newlines")} }); if (mapnik::util::exists(filename + ".index")) @@ -684,7 +684,7 @@ TEST_CASE("csv") { auto ds = get_csv_ds(filename); auto fields = ds->get_descriptor().get_descriptors(); require_field_names(fields, {"x", "y", "z"}); - require_attributes(all_features(ds)->next(), { + REQUIRE_ATTRIBUTES(all_features(ds)->next(), { attr{"x", -122}, attr{"y", 48}, attr{"z", 0} }); if (mapnik::util::exists(filename + ".index")) { @@ -719,7 +719,7 @@ TEST_CASE("csv") { auto ds = get_csv_ds(filename); auto fields = ds->get_descriptor().get_descriptors(); require_field_names(fields, {"x", "y", "z"}); - require_attributes(all_features(ds)->next(), { + REQUIRE_ATTRIBUTES(all_features(ds)->next(), { attr{"x", 0}, attr{"y", 0}, attr{"z", ustring("hello")} }); if (mapnik::util::exists(filename + ".index")) { @@ -754,9 +754,9 @@ TEST_CASE("csv") { require_field_types(fields, {mapnik::Integer, mapnik::Integer, mapnik::String, mapnik::Boolean}); auto featureset = all_features(ds); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 0}, attr{"null", ustring("null")}, attr{"boolean", true}}); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 0}, attr{"null", ustring("")}, attr{"boolean", false}}); if (mapnik::util::exists(filename + ".index")) @@ -829,11 +829,11 @@ TEST_CASE("csv") { require_field_types(fields, {mapnik::Integer, mapnik::Integer, mapnik::String}); auto featureset = all_features(ds); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 0}, attr{"fips", ustring("001")}}); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 0}, attr{"fips", ustring("003")}}); - require_attributes(featureset->next(), { + REQUIRE_ATTRIBUTES(featureset->next(), { attr{"x", 0}, attr{"y", 0}, attr{"fips", ustring("005")}}); if (mapnik::util::exists(filename + ".index")) { @@ -990,7 +990,7 @@ TEST_CASE("csv") { auto fields = ds->get_descriptor().get_descriptors(); require_field_names(fields, {"x", "y", "name"}); require_field_types(fields, {mapnik::Integer, mapnik::Integer, mapnik::String}); - require_attributes(all_features(ds)->next(), { + REQUIRE_ATTRIBUTES(all_features(ds)->next(), { attr{"x", 0}, attr{"y", 0}, attr{"name", ustring("data_name")} }); REQUIRE(count_features(all_features(ds)) == r.second); CHECK(ds->get_geometry_type() == mapnik::datasource_geometry_t::Point); @@ -1007,13 +1007,13 @@ TEST_CASE("csv") { auto fs = all_features(ds); auto feature = fs->next(); - require_attributes(feature, { + REQUIRE_ATTRIBUTES(feature, { attr{"x", 0}, attr{"y", 0}, attr{"bigint", 2147483648} }); feature = fs->next(); - require_attributes(feature, { + REQUIRE_ATTRIBUTES(feature, { attr{"x", 0}, attr{"y", 0}, attr{"bigint", 9223372036854775807ll} }); - require_attributes(feature, { + REQUIRE_ATTRIBUTES(feature, { attr{"x", 0}, attr{"y", 0}, attr{"bigint", 0x7FFFFFFFFFFFFFFFll} }); } // END SECTION #pragma GCC diagnostic pop diff --git a/test/unit/datasource/ds_test_util.hpp b/test/unit/datasource/ds_test_util.hpp index c39334747..6ab3968f6 100644 --- a/test/unit/datasource/ds_test_util.hpp +++ b/test/unit/datasource/ds_test_util.hpp @@ -122,11 +122,6 @@ using attr = std::tuple; } \ } while (0) -inline void require_attributes(mapnik::feature_ptr feature, - std::initializer_list const &attrs) { - REQUIRE_ATTRIBUTES(feature, attrs); -} - namespace detail { template