From 099a8052600bad3869d0f2df47fa502af323f9af Mon Sep 17 00:00:00 2001 From: "Daniel J. Hofmann" Date: Wed, 16 Mar 2016 12:42:26 +0100 Subject: [PATCH] Initial unit tests setup for typed libosrm services --- CMakeLists.txt | 2 +- unit_tests/library/args.h | 16 ++++++++++++++ unit_tests/library/match.cpp | 33 +++++++++++++++++++++++++++- unit_tests/library/nearest.cpp | 39 ++++++++++++++++++++++++++++++++++ unit_tests/library/route.cpp | 34 ++++++++++++++++++++++++++++- unit_tests/library/table.cpp | 39 ++++++++++++++++++++++++++++++++++ unit_tests/library/tile.cpp | 34 ++++++++++++++++++++++++++++- unit_tests/library/trip.cpp | 33 +++++++++++++++++++++++++++- 8 files changed, 225 insertions(+), 5 deletions(-) create mode 100644 unit_tests/library/args.h create mode 100644 unit_tests/library/nearest.cpp create mode 100644 unit_tests/library/table.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index af86d55b0..3d8cfd225 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -342,7 +342,7 @@ target_link_libraries(server-tests osrm ${Boost_LIBRARIES}) target_link_libraries(extractor-tests ${EXTRACTOR_LIBRARIES}) target_link_libraries(rtree-bench ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${TBB_LIBRARIES}) target_link_libraries(util-tests ${UTIL_LIBRARIES}) -target_link_libraries(library-tests osrm) +target_link_libraries(library-tests osrm ${Boost_LIBRARIES}) if(BUILD_TOOLS) message(STATUS "Activating OSRM internal tools") diff --git a/unit_tests/library/args.h b/unit_tests/library/args.h new file mode 100644 index 000000000..b595e32d0 --- /dev/null +++ b/unit_tests/library/args.h @@ -0,0 +1,16 @@ +#ifndef OSRM_UNIT_TEST_ARGS +#define OSRM_UNIT_TEST_ARGS + +#include +#include + +inline std::vector get_args() +{ + // Split off argv[0], store actual positional arguments in args + const auto argc = boost::unit_test::framework::master_test_suite().argc - 1; + const auto argv = boost::unit_test::framework::master_test_suite().argv + 1; + + return {argv, argv + argc}; +} + +#endif diff --git a/unit_tests/library/match.cpp b/unit_tests/library/match.cpp index 938c92f1d..cfe3596aa 100644 --- a/unit_tests/library/match.cpp +++ b/unit_tests/library/match.cpp @@ -1,8 +1,39 @@ #include #include +#include "args.h" + +#include "osrm/match_parameters.hpp" + +#include "osrm/coordinate.hpp" +#include "osrm/engine_config.hpp" +#include "osrm/json_container.hpp" +#include "osrm/status.hpp" +#include "osrm/osrm.hpp" + BOOST_AUTO_TEST_SUITE(match) -BOOST_AUTO_TEST_CASE(test_match) {} +BOOST_AUTO_TEST_CASE(test_match) +{ + const auto args = get_args(); + BOOST_REQUIRE_EQUAL(args.size(), 1); + + using namespace osrm; + + EngineConfig config{args[0]}; + config.use_shared_memory = false; + + OSRM osrm{config}; + + /* + MatchParameters params; + + json::Object result; + + const auto rc = osrm.Match(params, result); + + BOOST_CHECK(rc == Status::Ok || rc == Status::Error); + */ +} BOOST_AUTO_TEST_SUITE_END() diff --git a/unit_tests/library/nearest.cpp b/unit_tests/library/nearest.cpp new file mode 100644 index 000000000..e7c820e73 --- /dev/null +++ b/unit_tests/library/nearest.cpp @@ -0,0 +1,39 @@ +#include +#include + +#include "args.h" + +#include "osrm/nearest_parameters.hpp" + +#include "osrm/coordinate.hpp" +#include "osrm/engine_config.hpp" +#include "osrm/json_container.hpp" +#include "osrm/status.hpp" +#include "osrm/osrm.hpp" + +BOOST_AUTO_TEST_SUITE(nearest) + +BOOST_AUTO_TEST_CASE(test_nearest) +{ + const auto args = get_args(); + BOOST_REQUIRE_EQUAL(args.size(), 1); + + using namespace osrm; + + EngineConfig config{args[0]}; + config.use_shared_memory = false; + + OSRM osrm{config}; + + /* + NearestParameters params; + + json::Object result; + + const auto rc = osrm.Nearest(params, result); + + BOOST_CHECK(rc == Status::Ok || rc == Status::Error); + */ +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/unit_tests/library/route.cpp b/unit_tests/library/route.cpp index 799924de3..36f301c28 100644 --- a/unit_tests/library/route.cpp +++ b/unit_tests/library/route.cpp @@ -1,8 +1,40 @@ #include #include +#include "args.h" + +#include "osrm/route_parameters.hpp" + +#include "osrm/coordinate.hpp" +#include "osrm/engine_config.hpp" +#include "osrm/json_container.hpp" +#include "osrm/status.hpp" +#include "osrm/osrm.hpp" + BOOST_AUTO_TEST_SUITE(route) -BOOST_AUTO_TEST_CASE(test_route) {} +BOOST_AUTO_TEST_CASE(test_route) +{ + const auto args = get_args(); + BOOST_REQUIRE_EQUAL(args.size(), 1); + + using namespace osrm; + + EngineConfig config{args[0]}; + config.use_shared_memory = false; + + OSRM osrm{config}; + + RouteParameters params; + + params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); + params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); + + json::Object result; + + const auto rc = osrm.Route(params, result); + + BOOST_CHECK(rc == Status::Ok || rc == Status::Error); +} BOOST_AUTO_TEST_SUITE_END() diff --git a/unit_tests/library/table.cpp b/unit_tests/library/table.cpp new file mode 100644 index 000000000..0d673bcd7 --- /dev/null +++ b/unit_tests/library/table.cpp @@ -0,0 +1,39 @@ +#include +#include + +#include "args.h" + +#include "osrm/table_parameters.hpp" + +#include "osrm/coordinate.hpp" +#include "osrm/engine_config.hpp" +#include "osrm/json_container.hpp" +#include "osrm/status.hpp" +#include "osrm/osrm.hpp" + +BOOST_AUTO_TEST_SUITE(table) + +BOOST_AUTO_TEST_CASE(test_table) +{ + const auto args = get_args(); + BOOST_REQUIRE_EQUAL(args.size(), 1); + + using namespace osrm; + + EngineConfig config{args[0]}; + config.use_shared_memory = false; + + OSRM osrm{config}; + + /* + TableParameters params; + + json::Object result; + + const auto rc = osrm.Table(params, result); + + BOOST_CHECK(rc == Status::Ok || rc == Status::Error); + */ +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/unit_tests/library/tile.cpp b/unit_tests/library/tile.cpp index 391cf1db6..bee03a636 100644 --- a/unit_tests/library/tile.cpp +++ b/unit_tests/library/tile.cpp @@ -1,8 +1,40 @@ #include #include +#include "args.h" + +#include "osrm/tile_parameters.hpp" + +#include "osrm/coordinate.hpp" +#include "osrm/engine_config.hpp" +#include "osrm/json_container.hpp" +#include "osrm/status.hpp" +#include "osrm/osrm.hpp" + BOOST_AUTO_TEST_SUITE(tile) -BOOST_AUTO_TEST_CASE(test_tile) {} +BOOST_AUTO_TEST_CASE(test_tile) +{ + const auto args = get_args(); + BOOST_REQUIRE_EQUAL(args.size(), 1); + + using namespace osrm; + + EngineConfig config{args[0]}; + config.use_shared_memory = false; + + OSRM osrm{config}; + + /* + TileParameters params{0, 0, 0}; + + // TODO(daniel-j-h): why does the API expect a string? + std::string result; + + const auto rc = osrm.Tile(params, result); + + BOOST_CHECK(rc == Status::Ok || rc == Status::Error); + */ +} BOOST_AUTO_TEST_SUITE_END() diff --git a/unit_tests/library/trip.cpp b/unit_tests/library/trip.cpp index 382d2e098..4c8b24349 100644 --- a/unit_tests/library/trip.cpp +++ b/unit_tests/library/trip.cpp @@ -1,8 +1,39 @@ #include #include +#include "args.h" + +#include "osrm/trip_parameters.hpp" + +#include "osrm/coordinate.hpp" +#include "osrm/engine_config.hpp" +#include "osrm/json_container.hpp" +#include "osrm/status.hpp" +#include "osrm/osrm.hpp" + BOOST_AUTO_TEST_SUITE(trip) -BOOST_AUTO_TEST_CASE(test_trip) {} +BOOST_AUTO_TEST_CASE(test_trip) +{ + const auto args = get_args(); + BOOST_REQUIRE_EQUAL(args.size(), 1); + + using namespace osrm; + + EngineConfig config{args[0]}; + config.use_shared_memory = false; + + OSRM osrm{config}; + + /* + TripParameters params; + + json::Object result; + + const auto rc = osrm.Trip(params, result); + + BOOST_CHECK(rc == Status::Ok || rc == Status::Error); + */ +} BOOST_AUTO_TEST_SUITE_END()