1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#include <gtest/gtest.h>
#include "buffer.hh"
#include <cstring>
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<const char*>(rptr));
buffer->consume(3);
rptr = buffer->rptr(avail);
EXPECT_EQ(3, avail);
EXPECT_STREQ("lo", reinterpret_cast<const char*>(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<const char*>(rptr));
buffer->consume(3);
rptr = buffer->rptr(avail);
EXPECT_EQ(3, avail);
EXPECT_STREQ("lo", reinterpret_cast<const char*>(rptr));
buffer->consume(3);
EXPECT_TRUE(buffer->empty());
}
|