Changeset View
Changeset View
Standalone View
Standalone View
src/test/serialize_tests.cpp
Show All 16 Lines | |||||
BOOST_FIXTURE_TEST_SUITE(serialize_tests, BasicTestingSetup) | BOOST_FIXTURE_TEST_SUITE(serialize_tests, BasicTestingSetup) | ||||
class CSerializeMethodsTestSingle { | class CSerializeMethodsTestSingle { | ||||
protected: | protected: | ||||
int intval; | int intval; | ||||
bool boolval; | bool boolval; | ||||
std::string stringval; | std::string stringval; | ||||
const char *charstrval; | char charstrval[16]; | ||||
CTransactionRef txval; | CTransactionRef txval; | ||||
public: | public: | ||||
CSerializeMethodsTestSingle() = default; | CSerializeMethodsTestSingle() = default; | ||||
CSerializeMethodsTestSingle(int intvalin, bool boolvalin, | CSerializeMethodsTestSingle(int intvalin, bool boolvalin, | ||||
std::string stringvalin, | std::string stringvalin, | ||||
const char *charstrvalin, | const char *charstrvalin, | ||||
const CTransactionRef &txvalin) | const CTransactionRef &txvalin) | ||||
: intval(intvalin), boolval(boolvalin), | : intval(intvalin), boolval(boolvalin), | ||||
stringval(std::move(stringvalin)), charstrval(charstrvalin), | stringval(std::move(stringvalin)), txval(txvalin) { | ||||
txval(txvalin) {} | memcpy(charstrval, charstrvalin, sizeof(charstrval)); | ||||
} | |||||
ADD_SERIALIZE_METHODS; | ADD_SERIALIZE_METHODS; | ||||
template <typename Stream, typename Operation> | template <typename Stream, typename Operation> | ||||
inline void SerializationOp(Stream &s, Operation ser_action) { | inline void SerializationOp(Stream &s, Operation ser_action) { | ||||
READWRITE(intval); | READWRITE(intval); | ||||
READWRITE(boolval); | READWRITE(boolval); | ||||
READWRITE(stringval); | READWRITE(stringval); | ||||
READWRITE(FLATDATA(charstrval)); | READWRITE(charstrval); | ||||
READWRITE(txval); | READWRITE(txval); | ||||
} | } | ||||
bool operator==(const CSerializeMethodsTestSingle &rhs) { | bool operator==(const CSerializeMethodsTestSingle &rhs) { | ||||
return intval == rhs.intval && boolval == rhs.boolval && | return intval == rhs.intval && boolval == rhs.boolval && | ||||
stringval == rhs.stringval && | stringval == rhs.stringval && | ||||
strcmp(charstrval, rhs.charstrval) == 0 && *txval == *rhs.txval; | strcmp(charstrval, rhs.charstrval) == 0 && *txval == *rhs.txval; | ||||
} | } | ||||
}; | }; | ||||
class CSerializeMethodsTestMany : public CSerializeMethodsTestSingle { | class CSerializeMethodsTestMany : public CSerializeMethodsTestSingle { | ||||
public: | public: | ||||
using CSerializeMethodsTestSingle::CSerializeMethodsTestSingle; | using CSerializeMethodsTestSingle::CSerializeMethodsTestSingle; | ||||
ADD_SERIALIZE_METHODS; | ADD_SERIALIZE_METHODS; | ||||
template <typename Stream, typename Operation> | template <typename Stream, typename Operation> | ||||
inline void SerializationOp(Stream &s, Operation ser_action) { | inline void SerializationOp(Stream &s, Operation ser_action) { | ||||
READWRITE(intval, boolval, stringval, FLATDATA(charstrval), txval); | READWRITE(intval, boolval, stringval, charstrval, txval); | ||||
} | } | ||||
}; | }; | ||||
BOOST_AUTO_TEST_CASE(sizes) { | BOOST_AUTO_TEST_CASE(sizes) { | ||||
BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(char(0), 0, 0)); | BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(char(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0), 0, 0)); | BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0), 0, 0)); | BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0, 0)); | BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0, 0)); | ||||
▲ Show 20 Lines • Show All 333 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(insert_delete) { | ||||
ss.GetAndClear(d); | ss.GetAndClear(d); | ||||
BOOST_CHECK_EQUAL(ss.size(), 0U); | BOOST_CHECK_EQUAL(ss.size(), 0U); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(class_methods) { | BOOST_AUTO_TEST_CASE(class_methods) { | ||||
int intval(100); | int intval(100); | ||||
bool boolval(true); | bool boolval(true); | ||||
std::string stringval("testing"); | std::string stringval("testing"); | ||||
const char *charstrval("testing charstr"); | const char charstrval[16] = "testing charstr"; | ||||
CMutableTransaction txval; | CMutableTransaction txval; | ||||
CTransactionRef tx_ref{MakeTransactionRef(txval)}; | CTransactionRef tx_ref{MakeTransactionRef(txval)}; | ||||
CSerializeMethodsTestSingle methodtest1(intval, boolval, stringval, | CSerializeMethodsTestSingle methodtest1(intval, boolval, stringval, | ||||
charstrval, tx_ref); | charstrval, tx_ref); | ||||
CSerializeMethodsTestMany methodtest2(intval, boolval, stringval, | CSerializeMethodsTestMany methodtest2(intval, boolval, stringval, | ||||
charstrval, tx_ref); | charstrval, tx_ref); | ||||
CSerializeMethodsTestSingle methodtest3; | CSerializeMethodsTestSingle methodtest3; | ||||
CSerializeMethodsTestMany methodtest4; | CSerializeMethodsTestMany methodtest4; | ||||
CDataStream ss(SER_DISK, PROTOCOL_VERSION); | CDataStream ss(SER_DISK, PROTOCOL_VERSION); | ||||
BOOST_CHECK(methodtest1 == methodtest2); | BOOST_CHECK(methodtest1 == methodtest2); | ||||
ss << methodtest1; | ss << methodtest1; | ||||
ss >> methodtest4; | ss >> methodtest4; | ||||
ss << methodtest2; | ss << methodtest2; | ||||
ss >> methodtest3; | ss >> methodtest3; | ||||
BOOST_CHECK(methodtest1 == methodtest2); | BOOST_CHECK(methodtest1 == methodtest2); | ||||
BOOST_CHECK(methodtest2 == methodtest3); | BOOST_CHECK(methodtest2 == methodtest3); | ||||
BOOST_CHECK(methodtest3 == methodtest4); | BOOST_CHECK(methodtest3 == methodtest4); | ||||
CDataStream ss2(SER_DISK, PROTOCOL_VERSION, intval, boolval, stringval, | CDataStream ss2(SER_DISK, PROTOCOL_VERSION, intval, boolval, stringval, | ||||
FLATDATA(charstrval), txval); | charstrval, txval); | ||||
ss2 >> methodtest3; | ss2 >> methodtest3; | ||||
BOOST_CHECK(methodtest3 == methodtest4); | BOOST_CHECK(methodtest3 == methodtest4); | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |