aboutsummaryrefslogtreecommitdiff
path: root/tests/unit_tests/test_protocol_pack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_tests/test_protocol_pack.cpp')
-rw-r--r--tests/unit_tests/test_protocol_pack.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/unit_tests/test_protocol_pack.cpp b/tests/unit_tests/test_protocol_pack.cpp
new file mode 100644
index 000000000..18c7bc78b
--- /dev/null
+++ b/tests/unit_tests/test_protocol_pack.cpp
@@ -0,0 +1,29 @@
+// Copyright (c) 2012-2013 The Cryptonote developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#include "gtest/gtest.h"
+
+#include "include_base_utils.h"
+#include "cryptonote_protocol/cryptonote_protocol_defs.h"
+#include "storages/portable_storage_template_helper.h"
+
+TEST(protocol_pack, protocol_pack_command)
+{
+ std::string buff;
+ cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request r;
+ r.start_height = 1;
+ r.total_height = 3;
+ for(int i = 1; i < 10000; i += i*10)
+ {
+ r.m_block_ids.resize(i, boost::value_initialized<crypto::hash>());
+ bool res = epee::serialization::store_t_to_binary(r, buff);
+ ASSERT_TRUE(res);
+
+ cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request r2;
+ res = epee::serialization::load_t_from_binary(r2, buff);
+ ASSERT_TRUE(r.m_block_ids.size() == i);
+ ASSERT_TRUE(r.start_height == 1);
+ ASSERT_TRUE(r.total_height == 3);
+ }
+}