Adds round trip tests for RFC 4648 Test Vectors and equality checks
This commit is contained in:
parent
3c5f6bd8ac
commit
c3e7e96dce
@ -94,6 +94,7 @@ add_executable(server-tests EXCLUDE_FROM_ALL unit_tests/server_tests.cpp ${Serve
|
|||||||
# Benchmarks
|
# Benchmarks
|
||||||
add_executable(rtree-bench EXCLUDE_FROM_ALL src/benchmarks/static_rtree.cpp $<TARGET_OBJECTS:UTIL>)
|
add_executable(rtree-bench EXCLUDE_FROM_ALL src/benchmarks/static_rtree.cpp $<TARGET_OBJECTS:UTIL>)
|
||||||
|
|
||||||
|
target_include_directories(engine-tests PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/unit_tests)
|
||||||
target_include_directories(util-tests PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/unit_tests)
|
target_include_directories(util-tests PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/unit_tests)
|
||||||
target_include_directories(rtree-bench PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/unit_tests)
|
target_include_directories(rtree-bench PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/unit_tests)
|
||||||
|
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
#include "engine/base64.hpp"
|
#include "engine/base64.hpp"
|
||||||
|
#include "engine/hint.hpp"
|
||||||
|
#include "mocks/mock_datafacade.hpp"
|
||||||
|
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <boost/test/test_case_template.hpp>
|
#include <boost/test/test_case_template.hpp>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
// RFC 4648 "The Base16, Base32, and Base64 Data Encodings"
|
// RFC 4648 "The Base16, Base32, and Base64 Data Encodings"
|
||||||
BOOST_AUTO_TEST_SUITE(base64)
|
BOOST_AUTO_TEST_SUITE(base64)
|
||||||
|
|
||||||
@ -20,8 +25,50 @@ BOOST_AUTO_TEST_CASE(rfc4648_test_vectors)
|
|||||||
BOOST_CHECK_EQUAL(encodeBase64("foobar"), "Zm9vYmFy");
|
BOOST_CHECK_EQUAL(encodeBase64("foobar"), "Zm9vYmFy");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(encoding) {}
|
BOOST_AUTO_TEST_CASE(rfc4648_test_vectors_roundtrip)
|
||||||
|
{
|
||||||
|
using namespace osrm::engine;
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(decoding) {}
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("")), "");
|
||||||
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("f")), "f");
|
||||||
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("fo")), "fo");
|
||||||
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("foo")), "foo");
|
||||||
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("foob")), "foob");
|
||||||
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("fooba")), "fooba");
|
||||||
|
BOOST_CHECK_EQUAL(decodeBase64(encodeBase64("foobar")), "foobar");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(hint_encoding_decoding_roundtrip)
|
||||||
|
{
|
||||||
|
using namespace osrm::engine;
|
||||||
|
|
||||||
|
osrm::test::MockDataFacade facade;
|
||||||
|
|
||||||
|
Hint hint{{}, {}, facade.GetCheckSum()};
|
||||||
|
|
||||||
|
const auto base64 = hint.ToBase64();
|
||||||
|
|
||||||
|
BOOST_CHECK(0 == std::count(begin(base64), end(base64), '+'));
|
||||||
|
BOOST_CHECK(0 == std::count(begin(base64), end(base64), '/'));
|
||||||
|
|
||||||
|
const auto decoded = Hint::FromBase64(base64);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(hint, decoded);
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(hint_encoding_decoding_roundtrip_bytewise)
|
||||||
|
{
|
||||||
|
using namespace osrm::engine;
|
||||||
|
|
||||||
|
osrm::test::MockDataFacade facade;
|
||||||
|
|
||||||
|
Hint hint{{}, {}, facade.GetCheckSum()};
|
||||||
|
|
||||||
|
const auto decoded = Hint::FromBase64(hint.ToBase64());
|
||||||
|
|
||||||
|
BOOST_CHECK(std::equal(reinterpret_cast<const unsigned char *>(&hint),
|
||||||
|
reinterpret_cast<const unsigned char *>(&hint) + sizeof(Hint),
|
||||||
|
reinterpret_cast<const unsigned char *>(&decoded)));
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
Loading…
Reference in New Issue
Block a user