Changeset View
Changeset View
Standalone View
Standalone View
src/test/serialize_tests.cpp
Show First 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | public: | ||||
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, FLATDATA(charstrval), txval); | ||||
} | } | ||||
}; | }; | ||||
BOOST_AUTO_TEST_CASE(sizes) { | BOOST_AUTO_TEST_CASE(sizes) { | ||||
BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(char(0), 0)); | BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(char(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(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)); | BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0)); | BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(uint16_t), GetSerializeSize(uint16_t(0), 0)); | BOOST_CHECK_EQUAL(sizeof(uint16_t), GetSerializeSize(uint16_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(int32_t), GetSerializeSize(int32_t(0), 0)); | BOOST_CHECK_EQUAL(sizeof(int32_t), GetSerializeSize(int32_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(uint32_t), GetSerializeSize(uint32_t(0), 0)); | BOOST_CHECK_EQUAL(sizeof(uint32_t), GetSerializeSize(uint32_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(int64_t), GetSerializeSize(int64_t(0), 0)); | BOOST_CHECK_EQUAL(sizeof(int64_t), GetSerializeSize(int64_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(uint64_t), GetSerializeSize(uint64_t(0), 0)); | BOOST_CHECK_EQUAL(sizeof(uint64_t), GetSerializeSize(uint64_t(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(float), GetSerializeSize(float(0), 0)); | BOOST_CHECK_EQUAL(sizeof(float), GetSerializeSize(float(0), 0, 0)); | ||||
BOOST_CHECK_EQUAL(sizeof(double), GetSerializeSize(double(0), 0)); | BOOST_CHECK_EQUAL(sizeof(double), GetSerializeSize(double(0), 0, 0)); | ||||
// Bool is serialized as char | // Bool is serialized as char | ||||
BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(bool(0), 0)); | BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(bool(0), 0, 0)); | ||||
// Sanity-check GetSerializeSize and c++ type matching | // Sanity-check GetSerializeSize and c++ type matching | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(char(0), 0), 1); | BOOST_CHECK_EQUAL(GetSerializeSize(char(0), 0, 0), 1); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(int8_t(0), 0), 1); | BOOST_CHECK_EQUAL(GetSerializeSize(int8_t(0), 0, 0), 1); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(uint8_t(0), 0), 1); | BOOST_CHECK_EQUAL(GetSerializeSize(uint8_t(0), 0, 0), 1); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(int16_t(0), 0), 2); | BOOST_CHECK_EQUAL(GetSerializeSize(int16_t(0), 0, 0), 2); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(uint16_t(0), 0), 2); | BOOST_CHECK_EQUAL(GetSerializeSize(uint16_t(0), 0, 0), 2); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(int32_t(0), 0), 4); | BOOST_CHECK_EQUAL(GetSerializeSize(int32_t(0), 0, 0), 4); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(uint32_t(0), 0), 4); | BOOST_CHECK_EQUAL(GetSerializeSize(uint32_t(0), 0, 0), 4); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(int64_t(0), 0), 8); | BOOST_CHECK_EQUAL(GetSerializeSize(int64_t(0), 0, 0), 8); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(uint64_t(0), 0), 8); | BOOST_CHECK_EQUAL(GetSerializeSize(uint64_t(0), 0, 0), 8); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(float(0), 0), 4); | BOOST_CHECK_EQUAL(GetSerializeSize(float(0), 0, 0), 4); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(double(0), 0), 8); | BOOST_CHECK_EQUAL(GetSerializeSize(double(0), 0, 0), 8); | ||||
BOOST_CHECK_EQUAL(GetSerializeSize(bool(0), 0), 1); | BOOST_CHECK_EQUAL(GetSerializeSize(bool(0), 0, 0), 1); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(floats_conversion) { | BOOST_AUTO_TEST_CASE(floats_conversion) { | ||||
// Choose values that map unambiguously to binary floating point to avoid | // Choose values that map unambiguously to binary floating point to avoid | ||||
// rounding issues at the compiler side. | // rounding issues at the compiler side. | ||||
BOOST_CHECK_EQUAL(ser_uint32_to_float(0x00000000), 0.0F); | BOOST_CHECK_EQUAL(ser_uint32_to_float(0x00000000), 0.0F); | ||||
BOOST_CHECK_EQUAL(ser_uint32_to_float(0x3f000000), 0.5F); | BOOST_CHECK_EQUAL(ser_uint32_to_float(0x3f000000), 0.5F); | ||||
BOOST_CHECK_EQUAL(ser_uint32_to_float(0x3f800000), 1.0F); | BOOST_CHECK_EQUAL(ser_uint32_to_float(0x3f800000), 1.0F); | ||||
▲ Show 20 Lines • Show All 334 Lines • Show Last 20 Lines |