From 29d1a690348d42845292dfca9b17325ba4e4b525 Mon Sep 17 00:00:00 2001 From: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com> Date: Fri, 18 Oct 2024 12:35:14 +0200 Subject: [PATCH] add serialization format test (#259) --- tests/universal/serialization.cxx | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/tests/universal/serialization.cxx b/tests/universal/serialization.cxx index d40c90a..8df7ff2 100644 --- a/tests/universal/serialization.cxx +++ b/tests/universal/serialization.cxx @@ -12,8 +12,6 @@ // ZettaScale Zenoh Team, // -#include - #include "zenoh.hxx" #undef NDEBUG #include @@ -98,9 +96,34 @@ void serialize_custom() { assert(s.s == s_out.s); } +template +bool check_serialization(const T& value, const std::vector& out) { + return ext::serialize(value).as_vector() == out; +} + +void binary_format_test() { + int32_t i1 = 1234566, i2 = -49245; + assert(check_serialization(i1, {134, 214, 18, 0})); + assert(check_serialization(i2, {163, 63, 255, 255})); + + std::string s = "test"; + assert(check_serialization(s, {4, 116, 101, 115, 116})); + + std::tuple t(500, 1234.0f, "test"); + assert(check_serialization(t, {244, 1, 0, 64, 154, 68, 4, 116, 101, 115, 116})); + + std::vector v = {-100, 500, 100000, -20000000}; + assert(check_serialization(v, {4, 156, 255, 255, 255, 255, 255, 255, 255, 244, 1, 0, 0, 0, 0, 0, 0, + 160, 134, 1, 0, 0, 0, 0, 0, 0, 211, 206, 254, 255, 255, 255, 255})); + + std::vector> vp = {{"s1", 10}, {"s2", -10000}}; + assert(check_serialization(vp, {2, 2, 115, 49, 10, 0, 2, 115, 50, 240, 216})); +} + int main(int argc, char** argv) { serialize_primitive(); serialize_tuple(); serialize_container(); serialize_custom(); + binary_format_test(); }