From 58b123d5d8c44aadfc5e237064eafd774df35072 Mon Sep 17 00:00:00 2001 From: Faruk Eryilmaz Date: Sun, 28 Jan 2024 17:35:55 +0300 Subject: [PATCH] add test for deserialization of zero size dynamic containers --- test/std_containers_test.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/std_containers_test.cpp b/test/std_containers_test.cpp index 047b532..ec29cb8 100644 --- a/test/std_containers_test.cpp +++ b/test/std_containers_test.cpp @@ -198,4 +198,37 @@ TEST_CASE("Std containers - vector/array mixed test (little-endian)") } REQUIRE(vec3 == vec3_); +} + +TEST_CASE("Std containers - zero size test (big-endian)") +{ + // containers to serialize + const std::array arr = { 12, 2, 3, 4, 5 }; + const std::vector vec = { 87, 13, 0, 65535, 65534 }; + const std::vector vec2{}; + const std::vector vec3 = { 23, 11, 81, 15 }; + const std::string str{}; + const std::vector vec4 = { -999, 123, 555 }; + + bytepack::binary_stream bstream(1024); + bstream.write(arr, vec, vec2, vec3, str, vec4); + + // containers to deserialize + std::array arr_{}; + std::vector vec_{}; + std::vector vec2_{}; + std::vector vec3_{}; + std::string str_{}; + std::vector vec4_{}; + + auto buffer = bstream.data(); + bytepack::binary_stream bstream_(buffer); + bstream_.read(arr_, vec_, vec2_, vec3_, str_, vec4_); + + REQUIRE(arr == arr_); + REQUIRE(vec == vec_); + REQUIRE(vec2 == vec2_); + REQUIRE(vec3 == vec3_); + REQUIRE(str == str_); + REQUIRE(vec4 == vec4_); } \ No newline at end of file