Adds round trip tests for RFC 4648 Test Vectors and equality checks
This commit is contained in:
		
							parent
							
								
									9abfb7ea3b
								
							
						
					
					
						commit
						0acf7f7400
					
				| @ -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