TEST_F(SerializeIOTest, ReadWrite) { CopySerializeOutput out; writeTestSuite(&out); ReferenceSerializeInput in(out.data(), out.size()); readTestSuite(&in); CopySerializeInput in2(out.data(), out.size()); memset(const_cast<char*>(out.data()), 0, out.size()); readTestSuite(&in2); }
TEST(SerializeOutput, ReserveBytes) { CopySerializeOutput out; size_t offset = out.reserveBytes(4); EXPECT_EQ(0, offset); EXPECT_EQ(4, out.size()); static const uint32_t DATA = 0x01020304; // Writing past the end = bad EXPECT_DEATH(out.writeBytesAt(1, &DATA, sizeof(DATA))); size_t offset2 = out.reserveBytes(5); EXPECT_EQ(4, offset2); EXPECT_EQ(9, out.size()); size_t nextOffset = out.writeBytesAt(1, &DATA, sizeof(DATA)); EXPECT_EQ(1+sizeof(DATA), nextOffset); EXPECT_EQ(0, memcmp(static_cast<const char*>(out.data()) + 1, &DATA, sizeof(DATA))); }