From 2c7da7b5b87ebf6950f11d8631b8b613e2ff4f64 Mon Sep 17 00:00:00 2001 From: div72 Date: Tue, 26 Dec 2023 15:03:52 +0300 Subject: [PATCH] test: add unit tests for serializing variants --- src/test/serialize_tests.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/test/serialize_tests.cpp b/src/test/serialize_tests.cpp index f21936cef2..e191133de6 100644 --- a/src/test/serialize_tests.cpp +++ b/src/test/serialize_tests.cpp @@ -330,4 +330,36 @@ BOOST_AUTO_TEST_CASE(class_methods) BOOST_CHECK(methodtest3 == methodtest4); } +BOOST_AUTO_TEST_CASE(variants) +{ + CDataStream ss(SER_DISK, PROTOCOL_VERSION); + using p_t = std::pair; + std::variant v; + CTransaction txval; + const char charstrval[16] = "testing charstr"; + CSerializeMethodsTestSingle csmts(-3, false, "testing", charstrval, txval); + + v = 42; + ss << v; + v = "sel"; + ss << v; + v = 3.1415; + ss << v; + v = std::make_pair(14, 48); + ss << v; + v = csmts; + ss << v; + + ss >> v; + BOOST_CHECK_EQUAL(std::get(v), 42); + ss >> v; + BOOST_CHECK_EQUAL(std::get(v), "sel"); + ss >> v; + BOOST_CHECK_EQUAL(std::get(v), 3.1415); + ss >> v; + BOOST_CHECK(std::get(v) == std::make_pair(14, 48)); + ss >> v; + BOOST_CHECK(std::get(v) == csmts); +} + BOOST_AUTO_TEST_SUITE_END()