#include #include "buffer.hh" #include TEST(buffer_fixed, empty) { auto buffer = Buffer::fixed(10); EXPECT_TRUE(buffer->empty()); EXPECT_FALSE(buffer->full()); size_t avail; buffer->rptr(avail); EXPECT_EQ(0, avail); buffer->wptr(avail); EXPECT_EQ(10, avail); } TEST(buffer_dynamic, empty) { auto buffer = Buffer::dynamic(10, 100); EXPECT_TRUE(buffer->empty()); EXPECT_FALSE(buffer->full()); size_t avail; buffer->rptr(avail); EXPECT_EQ(0, avail); buffer->wptr(avail); EXPECT_EQ(10, avail); } TEST(buffer_fixed, write_read) { auto buffer = Buffer::fixed(10); size_t avail; auto* wptr = buffer->wptr(avail); EXPECT_EQ(10, avail); memcpy(wptr, "Hello", 6); buffer->commit(6); EXPECT_FALSE(buffer->empty()); auto* rptr = buffer->rptr(avail); EXPECT_EQ(6, avail); EXPECT_STREQ("Hello", reinterpret_cast(rptr)); buffer->consume(3); rptr = buffer->rptr(avail); EXPECT_EQ(3, avail); EXPECT_STREQ("lo", reinterpret_cast(rptr)); buffer->consume(3); EXPECT_TRUE(buffer->empty()); } TEST(buffer_dynamic, write_read) { auto buffer = Buffer::dynamic(10, 100); size_t avail; auto* wptr = buffer->wptr(avail); EXPECT_EQ(10, avail); memcpy(wptr, "Hello", 6); buffer->commit(6); EXPECT_FALSE(buffer->empty()); auto* rptr = buffer->rptr(avail); EXPECT_EQ(6, avail); EXPECT_STREQ("Hello", reinterpret_cast(rptr)); buffer->consume(3); rptr = buffer->rptr(avail); EXPECT_EQ(3, avail); EXPECT_STREQ("lo", reinterpret_cast(rptr)); buffer->consume(3); EXPECT_TRUE(buffer->empty()); }