From 90f8ad5722a19147c8d148a3f41675b5b948ffa0 Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Fri, 28 Dec 2018 18:54:25 +0100 Subject: [PATCH] Ported test case from STEEM --- tests/serialization_test.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/serialization_test.cpp b/tests/serialization_test.cpp index e1e9a54..1e0165c 100644 --- a/tests/serialization_test.cpp +++ b/tests/serialization_test.cpp @@ -102,4 +102,24 @@ BOOST_AUTO_TEST_CASE( nested_objects_test ) } FC_CAPTURE_LOG_AND_RETHROW ( (0) ) } +BOOST_AUTO_TEST_CASE( unpack_recursion_test ) +{ + try + { + std::stringstream ss; + int recursion_level = 100000; + uint64_t allocation_per_level = 500000; + + for ( int i = 0; i < recursion_level; i++ ) + { + fc::raw::pack( ss, fc::unsigned_int( allocation_per_level ) ); + fc::raw::pack( ss, static_cast< uint8_t >( fc::variant::array_type ) ); + } + + std::vector< fc::variant > v; + BOOST_REQUIRE_THROW( fc::raw::unpack( ss, v ), fc::assert_exception ); + } + FC_LOG_AND_RETHROW(); +} + BOOST_AUTO_TEST_SUITE_END()