Bitcoin Core 28.99.0
P2P Digital Currency
Classes | Functions | Variables
serialize_tests.cpp File Reference
#include <hash.h>
#include <serialize.h>
#include <streams.h>
#include <test/util/setup_common.h>
#include <util/strencodings.h>
#include <stdint.h>
#include <string>
#include <boost/test/unit_test.hpp>
Include dependency graph for serialize_tests.cpp:

Go to the source code of this file.

Classes

class  UncopyableStream
 
class  CSerializeMethodsTestSingle
 
class  CSerializeMethodsTestMany
 
struct  BaseFormat
 
class  Base
 (Un)serialize a number as raw byte or 2 hexadecimal chars. More...
 
class  DerivedAndBaseFormat
 
class  Derived
 
struct  OtherParam
 
class  OtherParamChecker
 Checker for value of OtherParam. More...
 

Functions

 BOOST_AUTO_TEST_CASE (sizes)
 
 BOOST_AUTO_TEST_CASE (varints)
 
 BOOST_AUTO_TEST_CASE (varints_bitpatterns)
 
 BOOST_AUTO_TEST_CASE (compactsize)
 
static bool isCanonicalException (const std::ios_base::failure &ex)
 
 BOOST_AUTO_TEST_CASE (vector_bool)
 
 BOOST_AUTO_TEST_CASE (array)
 
 BOOST_AUTO_TEST_CASE (noncanonical)
 
 BOOST_AUTO_TEST_CASE (class_methods)
 
 BOOST_AUTO_TEST_CASE (with_params_multi)
 Test creating a stream with multiple parameters and making sure serialization code requiring different parameters can retrieve them. More...
 
 BOOST_AUTO_TEST_CASE (with_params_move)
 Test creating a ParamsStream that moves from a stream argument. More...
 
 BOOST_AUTO_TEST_CASE (with_params_base)
 
 BOOST_AUTO_TEST_CASE (with_params_vector_of_base)
 
 BOOST_AUTO_TEST_CASE (with_params_derived)
 

Variables

constexpr BaseFormat RAW {BaseFormat::RAW}
 
constexpr BaseFormat HEX {BaseFormat::HEX}
 
constexpr DerivedAndBaseFormat RAW_LOWER {{BaseFormat::RAW}, DerivedAndBaseFormat::DerivedFormat::LOWER}
 
constexpr DerivedAndBaseFormat HEX_UPPER {{BaseFormat::HEX}, DerivedAndBaseFormat::DerivedFormat::UPPER}
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/13]

BOOST_AUTO_TEST_CASE ( array  )

Definition at line 196 of file serialize_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [2/13]

BOOST_AUTO_TEST_CASE ( class_methods  )

Definition at line 243 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/13]

BOOST_AUTO_TEST_CASE ( compactsize  )

Definition at line 157 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [4/13]

BOOST_AUTO_TEST_CASE ( noncanonical  )

Definition at line 206 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [5/13]

BOOST_AUTO_TEST_CASE ( sizes  )

Definition at line 75 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [6/13]

BOOST_AUTO_TEST_CASE ( varints  )

Definition at line 104 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [7/13]

BOOST_AUTO_TEST_CASE ( varints_bitpatterns  )

Definition at line 136 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [8/13]

BOOST_AUTO_TEST_CASE ( vector_bool  )

Definition at line 187 of file serialize_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [9/13]

BOOST_AUTO_TEST_CASE ( with_params_base  )

Definition at line 429 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [10/13]

BOOST_AUTO_TEST_CASE ( with_params_derived  )

Definition at line 483 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [11/13]

BOOST_AUTO_TEST_CASE ( with_params_move  )

Test creating a ParamsStream that moves from a stream argument.

Definition at line 413 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [12/13]

BOOST_AUTO_TEST_CASE ( with_params_multi  )

Test creating a stream with multiple parameters and making sure serialization code requiring different parameters can retrieve them.

Also test that earlier parameters take precedence if the same parameter type is specified twice. (Choice of whether earlier or later values take precedence or multiple values of the same type are allowed was arbitrary, and just decided based on what would require smallest amount of ugly C++ template code. Intent of the test is to just ensure there is no unexpected behavior.)

Definition at line 394 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [13/13]

BOOST_AUTO_TEST_CASE ( with_params_vector_of_base  )

Definition at line 452 of file serialize_tests.cpp.

Here is the call graph for this function:

◆ isCanonicalException()

static bool isCanonicalException ( const std::ios_base::failure &  ex)
static

Definition at line 176 of file serialize_tests.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ HEX

constexpr BaseFormat HEX {BaseFormat::HEX}
constexpr

Definition at line 290 of file serialize_tests.cpp.

◆ HEX_UPPER

Definition at line 481 of file serialize_tests.cpp.

◆ RAW

constexpr BaseFormat RAW {BaseFormat::RAW}
constexpr

Definition at line 289 of file serialize_tests.cpp.

◆ RAW_LOWER

Definition at line 480 of file serialize_tests.cpp.