예제 #1
0
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);
}
예제 #2
0
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)));
}