diff --git a/src/engine/api/json_factory.cpp b/src/engine/api/json_factory.cpp index 7d0dfdf83..e6b6b4c83 100644 --- a/src/engine/api/json_factory.cpp +++ b/src/engine/api/json_factory.cpp @@ -50,7 +50,7 @@ const constexpr char *turn_type_names[] = { "roundabout", "roundabout", "rotary", "rotary", "roundabout turn", "roundabout turn", "use lane", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid", - "invalid"}; + "invalid", "invalid"}; const constexpr char *waypoint_type_names[] = {"invalid", "arrive", "depart"}; @@ -68,6 +68,7 @@ inline bool hasValidLanes(const guidance::Intersection &intersection) std::string instructionTypeToString(const TurnType::Enum type) { + BOOST_ASSERT(static_cast(type) < sizeof(turn_type_names)/sizeof(turn_type_names[0])); return turn_type_names[static_cast(type)]; } diff --git a/unit_tests/engine/json_factory.cpp b/unit_tests/engine/json_factory.cpp new file mode 100644 index 000000000..a246af072 --- /dev/null +++ b/unit_tests/engine/json_factory.cpp @@ -0,0 +1,16 @@ +#include "engine/api/json_factory.hpp" + +#include +#include + +BOOST_AUTO_TEST_SUITE(json_factory) + +BOOST_AUTO_TEST_CASE(instructionTypeToString_test_size) +{ + using namespace osrm::engine::api::json::detail; + using namespace osrm::extractor::guidance; + + BOOST_CHECK_EQUAL(instructionTypeToString(TurnType::Sliproad), "invalid"); +} + +BOOST_AUTO_TEST_SUITE_END()