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 | ||||
| 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(rtree-bench PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/unit_tests) | ||||
| 
 | ||||
|  | ||||
| @ -1,8 +1,13 @@ | ||||
| #include "engine/base64.hpp" | ||||
| #include "engine/hint.hpp" | ||||
| #include "mocks/mock_datafacade.hpp" | ||||
| 
 | ||||
| #include <boost/test/unit_test.hpp> | ||||
| #include <boost/test/test_case_template.hpp> | ||||
| 
 | ||||
| #include <iostream> | ||||
| #include <algorithm> | ||||
| 
 | ||||
| // RFC 4648 "The Base16, Base32, and Base64 Data Encodings"
 | ||||
| BOOST_AUTO_TEST_SUITE(base64) | ||||
| 
 | ||||
| @ -20,8 +25,50 @@ BOOST_AUTO_TEST_CASE(rfc4648_test_vectors) | ||||
|     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() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user