Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tests for config level constraints; table failing: see #2100
- Loading branch information
1 parent
59a6d13
commit 26b27bf
Showing
9 changed files
with
163 additions
and
12 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#ifndef OSRM_LIBRARY_TEST_FIXTURE | ||
#define OSRM_LIBRARY_TEST_FIXTURE | ||
|
||
#include "osrm/engine_config.hpp" | ||
#include "osrm/osrm.hpp" | ||
|
||
#include <string> | ||
|
||
// I couldn't get Boost.UnitTest to provide a test suite level fixture with custom | ||
// arguments per test suite (osrm base path from argv), so this has to suffice. | ||
|
||
inline osrm::OSRM get_osrm(const std::string &base_path) | ||
{ | ||
osrm::EngineConfig config{base_path}; | ||
config.use_shared_memory = false; | ||
|
||
return osrm::OSRM{config}; | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
#include <boost/test/unit_test.hpp> | ||
#include <boost/test/test_case_template.hpp> | ||
|
||
#include "args.hpp" | ||
|
||
#include "osrm/trip_parameters.hpp" | ||
#include "osrm/route_parameters.hpp" | ||
#include "osrm/table_parameters.hpp" | ||
#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(limits) | ||
|
||
BOOST_AUTO_TEST_CASE(test_trip_limits) | ||
{ | ||
const auto args = get_args(); | ||
BOOST_REQUIRE_EQUAL(args.size(), 1); | ||
|
||
using namespace osrm; | ||
|
||
EngineConfig config{args[0]}; | ||
config.use_shared_memory = false; | ||
config.max_locations_trip = 2; | ||
|
||
OSRM osrm{config}; | ||
|
||
TripParameters params; | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
|
||
json::Object result; | ||
|
||
const auto rc = osrm.Trip(params, result); | ||
|
||
BOOST_CHECK(rc == Status::Error); | ||
|
||
// Make sure we're not accidentally hitting a guard code path before | ||
const auto code = result.values["code"].get<json::String>().value; | ||
BOOST_CHECK(code == "TooBig"); // per the New-Server API spec | ||
} | ||
|
||
BOOST_AUTO_TEST_CASE(test_route_limits) | ||
{ | ||
const auto args = get_args(); | ||
BOOST_REQUIRE_EQUAL(args.size(), 1); | ||
|
||
using namespace osrm; | ||
|
||
EngineConfig config{args[0]}; | ||
config.use_shared_memory = false; | ||
config.max_locations_viaroute = 2; | ||
|
||
OSRM osrm{config}; | ||
|
||
RouteParameters params; | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
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::Error); | ||
|
||
// Make sure we're not accidentally hitting a guard code path before | ||
const auto code = result.values["code"].get<json::String>().value; | ||
BOOST_CHECK(code == "TooBig"); // per the New-Server API spec | ||
} | ||
|
||
BOOST_AUTO_TEST_CASE(test_table_limits) | ||
{ | ||
const auto args = get_args(); | ||
BOOST_REQUIRE_EQUAL(args.size(), 1); | ||
|
||
using namespace osrm; | ||
|
||
EngineConfig config{args[0]}; | ||
config.use_shared_memory = false; | ||
config.max_locations_distance_table = 2; | ||
|
||
OSRM osrm{config}; | ||
|
||
TableParameters params; | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
|
||
json::Object result; | ||
|
||
const auto rc = osrm.Table(params, result); | ||
|
||
BOOST_CHECK(rc == Status::Error); | ||
|
||
// Make sure we're not accidentally hitting a guard code path before | ||
const auto code = result.values["code"].get<json::String>().value; | ||
BOOST_CHECK(code == "TooBig"); // per the New-Server API spec | ||
} | ||
|
||
BOOST_AUTO_TEST_CASE(test_match_limits) | ||
{ | ||
const auto args = get_args(); | ||
BOOST_REQUIRE_EQUAL(args.size(), 1); | ||
|
||
using namespace osrm; | ||
|
||
EngineConfig config{args[0]}; | ||
config.use_shared_memory = false; | ||
config.max_locations_map_matching = 2; | ||
|
||
OSRM osrm{config}; | ||
|
||
MatchParameters params; | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
params.coordinates.emplace_back(util::FloatLongitude{}, util::FloatLatitude{}); | ||
|
||
json::Object result; | ||
|
||
const auto rc = osrm.Match(params, result); | ||
|
||
BOOST_CHECK(rc == Status::Error); | ||
|
||
// Make sure we're not accidentally hitting a guard code path before | ||
const auto code = result.values["code"].get<json::String>().value; | ||
BOOST_CHECK(code == "TooBig"); // per the New-Server API spec | ||
} | ||
|
||
BOOST_AUTO_TEST_SUITE_END() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters