2
#include <gtest/gtest.h>
3
#include <data_buffer.h>
8
TEST(DataBuffer, InsertFront)
11
EXPECT_TRUE(buffer.BufferList() == 0);
12
bool res = buffer.InsertFront(10);
14
EXPECT_TRUE(buffer.BufferList() != 0);
15
EXPECT_EQ(10, buffer.BufferList()->Size());
18
TEST(DataBuffer, InsertBack)
21
EXPECT_TRUE(buffer.BufferList() == 0);
22
bool res = buffer.InsertBack(10);
24
EXPECT_TRUE(buffer.BufferList() != 0);
25
EXPECT_EQ(10, buffer.BufferList()->Size());
29
TEST(DataBuffer, Insert2)
32
EXPECT_TRUE(buffer.BufferList() == 0);
33
bool res = buffer.InsertFront(10);
35
res = buffer.InsertBack(10);
37
EXPECT_EQ(20, buffer.BufferList()->Size());
38
EXPECT_EQ(20, buffer.Size());
41
TEST(DataBuffer, InsertFront2Times)
44
EXPECT_TRUE(buffer.BufferList() == 0);
45
bool res = buffer.InsertFront(10);
47
res = buffer.InsertFront(10);
49
EXPECT_EQ(20, buffer.Size());
50
EXPECT_EQ(2, buffer.Parts());
53
TEST(DataBuffer, ReadWrite)
56
ASSERT_TRUE(buffer.InsertFront(10));
57
ASSERT_TRUE(buffer.InsertBack(10));
58
EXPECT_EQ(20, buffer.BufferList()->Size());
61
for(int i=0; i < 20; i++)
62
buffer.Write((uint8_t)i);
64
EXPECT_EQ(0, buffer.Read());
65
EXPECT_EQ(0, buffer.Read());
69
for(int i=0; i < 20; i++)
70
EXPECT_EQ(i, buffer.Read());
73
buffer.WriteU32Be(0x11223344);
74
buffer.WriteU32Be(0xaabbccdd);
77
EXPECT_EQ(0x11223344, buffer.ReadU32Be());
78
EXPECT_EQ(0xaabbccdd, buffer.ReadU32Be());
82
TEST(DataBuffer, AttachFront)
85
EXPECT_TRUE(buffer.BufferList() == 0);
86
buffer.AttachFront(DataChunk::GetNew(10));
87
buffer.AttachFront(DataChunk::GetNew(10));
88
EXPECT_EQ(20, buffer.Size());
91
TEST(DataBuffer, AttachBack)
94
EXPECT_TRUE(buffer.BufferList() == 0);
95
buffer.AttachBack(DataChunk::GetNew(10));
96
buffer.AttachBack(DataChunk::GetNew(10));
97
EXPECT_EQ(20, buffer.Size());
100
TEST(DataBuffer, DetachFront)
103
EXPECT_TRUE(buffer.BufferList() == 0);
104
EXPECT_TRUE(buffer.InsertBack(10));
105
EXPECT_TRUE(buffer.InsertFront(10));
106
EXPECT_EQ(20, buffer.Size());
107
EXPECT_EQ(2, buffer.Parts());
108
DataChunk * buf = buffer.DetachFront();
109
EXPECT_TRUE(buf != NULL);
110
EXPECT_EQ(1, buffer.Parts());
111
DataChunk * buf2 = buffer.DetachFront();
112
EXPECT_TRUE(buf2 != NULL);
113
EXPECT_EQ(0, buffer.Parts());
116
TEST(DataBuffer, SeekAndTell)
119
EXPECT_TRUE(buffer.BufferList() == 0);
120
buffer.AttachFront(DataChunk::GetNew(10));
121
buffer.AttachFront(DataChunk::GetNew(10));
122
buffer.AttachFront(DataChunk::GetNew(10));
124
EXPECT_EQ(0, buffer.Tell());
127
EXPECT_EQ(10, buffer.Tell());
130
EXPECT_EQ(15, buffer.Tell());
133
EXPECT_EQ(20, buffer.Tell());
136
EXPECT_EQ(25, buffer.Tell());
140
TEST(DataBuffer, AttachAndInsterFront)
143
EXPECT_TRUE(buffer.BufferList() == 0);
146
DataChunk chunk(data, 0, sizeof(data));
147
buffer.AttachFront(&chunk);
148
EXPECT_EQ(0, buffer.Size());
149
EXPECT_EQ(1, buffer.Parts());
151
EXPECT_EQ(buffer.BufferList(), &chunk);
152
buffer.InsertBack(10);
153
EXPECT_EQ(10, buffer.Size());
154
EXPECT_EQ(1, buffer.Parts());
156
buffer.InsertBack(80);
157
EXPECT_EQ(90, buffer.Size());
158
EXPECT_EQ(1, buffer.Parts());
160
buffer.InsertBack(10);
161
EXPECT_EQ(100, buffer.Size());
162
EXPECT_EQ(1, buffer.Parts());