Пример #1
0
TEST(DataBuffer, Delete) {
	DataBuffer db;
	const char* str = "123";
	db.append((uint8_t*)str, 3);
	DataBufferData d0 = db.get(1);
	ASSERT_DATA_EQ("1", d0.data, 1);
	ASSERT_EQ(3, db.bytesUsed());
	d0.free();
	ASSERT_EQ(2, db.bytesUsed());
	DataBufferData d1 = db.get(1);
	ASSERT_DATA_EQ("2", d1.data, 1);
	d1.free();
	ASSERT_EQ(1, db.bytesUsed());
	DataBufferData d2 = db.get(1);
	ASSERT_DATA_EQ("3", d2.data, 1);
	ASSERT_EQ(1, db.bytesUsed());
	d2.free();
	ASSERT_EQ(0, db.bytesUsed());
	ASSERT_TRUE(db.empty());
	ASSERT_EQ(0, d2.data);
	ASSERT_EQ(0, d2.length);
}