Mcucpp

Форк
0
/
DataBuffer.cpp 
162 строки · 3.6 Кб
1

2
#include <gtest/gtest.h>
3
#include <data_buffer.h>
4

5
using namespace Mcucpp;
6

7

8
TEST(DataBuffer, InsertFront)
9
{
10
	DataBuffer buffer;
11
	EXPECT_TRUE(buffer.BufferList() == 0);
12
	bool res = buffer.InsertFront(10);
13
	ASSERT_TRUE(res);
14
	EXPECT_TRUE(buffer.BufferList() != 0);
15
	EXPECT_EQ(10, buffer.BufferList()->Size());
16
}
17

18
TEST(DataBuffer, InsertBack)
19
{
20
	DataBuffer buffer;
21
	EXPECT_TRUE(buffer.BufferList() == 0);
22
	bool res = buffer.InsertBack(10);
23
	ASSERT_TRUE(res);
24
	EXPECT_TRUE(buffer.BufferList() != 0);
25
	EXPECT_EQ(10, buffer.BufferList()->Size());
26
}
27

28

29
TEST(DataBuffer, Insert2)
30
{
31
	DataBuffer buffer;
32
	EXPECT_TRUE(buffer.BufferList() == 0);
33
	bool res = buffer.InsertFront(10);
34
	ASSERT_TRUE(res);
35
	res = buffer.InsertBack(10);
36
	ASSERT_TRUE(res);
37
	EXPECT_EQ(20, buffer.BufferList()->Size());
38
	EXPECT_EQ(20, buffer.Size());
39
}
40

41
TEST(DataBuffer, InsertFront2Times)
42
{
43
	DataBuffer buffer;
44
	EXPECT_TRUE(buffer.BufferList() == 0);
45
	bool res = buffer.InsertFront(10);
46
	ASSERT_TRUE(res);
47
	res = buffer.InsertFront(10);
48
	ASSERT_TRUE(res);
49
	EXPECT_EQ(20, buffer.Size());
50
	EXPECT_EQ(2, buffer.Parts());
51
}
52

53
TEST(DataBuffer, ReadWrite)
54
{
55
	DataBuffer buffer;
56
	ASSERT_TRUE(buffer.InsertFront(10));
57
	ASSERT_TRUE(buffer.InsertBack(10));
58
	EXPECT_EQ(20, buffer.BufferList()->Size());
59
	buffer.Seek(0);
60
	
61
	for(int i=0; i < 20; i++)
62
		buffer.Write((uint8_t)i);
63
	
64
	EXPECT_EQ(0, buffer.Read());
65
	EXPECT_EQ(0, buffer.Read());
66
	
67
	buffer.Seek(0);
68
	
69
	for(int i=0; i < 20; i++)
70
		EXPECT_EQ(i, buffer.Read());
71
	
72
	buffer.Seek(0);
73
	buffer.WriteU32Be(0x11223344);
74
	buffer.WriteU32Be(0xaabbccdd);
75
	
76
	buffer.Seek(0);
77
	EXPECT_EQ(0x11223344, buffer.ReadU32Be());
78
	EXPECT_EQ(0xaabbccdd, buffer.ReadU32Be());
79
}
80

81

82
TEST(DataBuffer, AttachFront)
83
{
84
	DataBuffer buffer;
85
	EXPECT_TRUE(buffer.BufferList() == 0);
86
	buffer.AttachFront(DataChunk::GetNew(10));
87
	buffer.AttachFront(DataChunk::GetNew(10));
88
	EXPECT_EQ(20, buffer.Size());
89
}
90

91
TEST(DataBuffer, AttachBack)
92
{
93
	DataBuffer buffer;
94
	EXPECT_TRUE(buffer.BufferList() == 0);
95
	buffer.AttachBack(DataChunk::GetNew(10));
96
	buffer.AttachBack(DataChunk::GetNew(10));
97
	EXPECT_EQ(20, buffer.Size());
98
}
99

100
TEST(DataBuffer, DetachFront)
101
{
102
	DataBuffer buffer;
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());
114
}
115

116
TEST(DataBuffer, SeekAndTell)
117
{
118
	DataBuffer buffer;
119
	EXPECT_TRUE(buffer.BufferList() == 0);
120
	buffer.AttachFront(DataChunk::GetNew(10));
121
	buffer.AttachFront(DataChunk::GetNew(10));
122
	buffer.AttachFront(DataChunk::GetNew(10));
123
	buffer.Seek(0);
124
	EXPECT_EQ(0, buffer.Tell());
125
	
126
	buffer.Seek(10);
127
	EXPECT_EQ(10, buffer.Tell());
128
	
129
	buffer.Seek(15);
130
	EXPECT_EQ(15, buffer.Tell());
131
	
132
	buffer.Seek(20);
133
	EXPECT_EQ(20, buffer.Tell());
134
	
135
	buffer.Seek(25);
136
	EXPECT_EQ(25, buffer.Tell());
137
}
138

139

140
TEST(DataBuffer, AttachAndInsterFront)
141
{
142
	DataBuffer buffer;
143
	EXPECT_TRUE(buffer.BufferList() == 0);
144
	
145
	uint8_t data[100];
146
	DataChunk chunk(data, 0, sizeof(data));
147
	buffer.AttachFront(&chunk);
148
	EXPECT_EQ(0, buffer.Size());
149
	EXPECT_EQ(1, buffer.Parts());
150
	
151
	EXPECT_EQ(buffer.BufferList(), &chunk);
152
	buffer.InsertBack(10);
153
	EXPECT_EQ(10, buffer.Size());
154
	EXPECT_EQ(1, buffer.Parts());
155
	
156
	buffer.InsertBack(80);
157
	EXPECT_EQ(90, buffer.Size());
158
	EXPECT_EQ(1, buffer.Parts());
159
	
160
	buffer.InsertBack(10);
161
	EXPECT_EQ(100, buffer.Size());
162
	EXPECT_EQ(1, buffer.Parts());
163
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.