From f4a74d0dde4a4bac9de7eb9bd6f0dbabeaa8daf8 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 23 Aug 2012 09:10:03 -0700 Subject: [PATCH] add a csv_datasource initialization c++ test --- tests/cpp_tests/build.py | 18 ++++++++++-------- tests/cpp_tests/csv_parse_test.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 tests/cpp_tests/csv_parse_test.cpp diff --git a/tests/cpp_tests/build.py b/tests/cpp_tests/build.py index 69add55d4..5460e3d87 100644 --- a/tests/cpp_tests/build.py +++ b/tests/cpp_tests/build.py @@ -6,16 +6,18 @@ Import ('env') test_env = env.Clone() -headers = env['CPPPATH'] - -libraries = copy(env['LIBMAPNIK_LIBS']) -libraries.append('mapnik') -libraries.append('sqlite3') - -test_env.Append(CXXFLAGS='-g') +test_env['LIBS'] = copy(env['LIBMAPNIK_LIBS']) +test_env.AppendUnique(LIBS='mapnik') +test_env.AppendUnique(LIBS='sqlite3') +test_env.AppendUnique(CXXFLAGS='-g') for cpp_test in glob.glob('*_test.cpp'): - test_program = test_env.Program(cpp_test.replace('.cpp','-bin'), [cpp_test], CPPPATH=headers, LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS']) + test_env_local = test_env.Clone() + name = cpp_test.replace('.cpp','-bin') + source_files = [cpp_test] + if 'csv_parse' in cpp_test: + source_files += glob.glob('../../plugins/input/csv/' + '*.cpp') + test_program = test_env_local.Program(name, source=source_files, LINKFLAGS=env['CUSTOM_LDFLAGS']) Depends(test_program, env.subst('../../src/%s' % env['MAPNIK_LIB_NAME'])) # build locally if installing if 'install' in COMMAND_LINE_TARGETS: diff --git a/tests/cpp_tests/csv_parse_test.cpp b/tests/cpp_tests/csv_parse_test.cpp new file mode 100644 index 000000000..edd0835d9 --- /dev/null +++ b/tests/cpp_tests/csv_parse_test.cpp @@ -0,0 +1,30 @@ +#include +#include +#include +#include "plugins/input/csv/csv_datasource.hpp" +#include + + +int main( int, char*[] ) +{ + // test of directly instanciating a datasource + try { + mapnik::parameters params; + params["type"]="csv"; + params["file"]="./tests/data/csv/wkt.csv"; + csv_datasource ds(params); + BOOST_TEST(true); + } catch (std::exception const& ex) { + BOOST_TEST(false); + std::clog << "threw: " << ex.what() << "\n"; + } + + if (!::boost::detail::test_errors()) { + std::clog << "C++ CSV parse: \x1b[1;32m✓ \x1b[0m\n"; +#if BOOST_VERSION >= 104600 + ::boost::detail::report_errors_remind().called_report_errors_function = true; +#endif + } else { + return ::boost::report_errors(); + } +}