71565287b8
Reviewers: buda Reviewed By: buda Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1336
61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
#include "bolt_common.hpp"
|
|
#include "communication/buffer.hpp"
|
|
|
|
constexpr const int SIZE = 4096;
|
|
uint8_t data[SIZE];
|
|
|
|
using communication::Buffer;
|
|
|
|
TEST(CommunicationBuffer, AllocateAndWritten) {
|
|
Buffer buffer;
|
|
auto sb = buffer.write_end().Allocate();
|
|
|
|
memcpy(sb.data, data, 1000);
|
|
buffer.write_end().Written(1000);
|
|
|
|
ASSERT_EQ(buffer.read_end().size(), 1000);
|
|
|
|
uint8_t *tmp = buffer.read_end().data();
|
|
for (int i = 0; i < 1000; ++i) EXPECT_EQ(data[i], tmp[i]);
|
|
}
|
|
|
|
TEST(CommunicationBuffer, Shift) {
|
|
Buffer buffer;
|
|
auto sb = buffer.write_end().Allocate();
|
|
|
|
memcpy(sb.data, data, 1000);
|
|
buffer.write_end().Written(1000);
|
|
|
|
sb = buffer.write_end().Allocate();
|
|
memcpy(sb.data, data + 1000, 1000);
|
|
buffer.write_end().Written(1000);
|
|
|
|
ASSERT_EQ(buffer.read_end().size(), 2000);
|
|
|
|
uint8_t *tmp = buffer.read_end().data();
|
|
for (int i = 0; i < 1000; ++i) EXPECT_EQ(data[i], tmp[i]);
|
|
|
|
buffer.read_end().Shift(1000);
|
|
ASSERT_EQ(buffer.read_end().size(), 1000);
|
|
tmp = buffer.read_end().data();
|
|
|
|
for (int i = 0; i < 1000; ++i) EXPECT_EQ(data[i + 1000], tmp[i]);
|
|
}
|
|
|
|
TEST(CommunicationBuffer, Resize) {
|
|
Buffer buffer;
|
|
auto sb = buffer.write_end().Allocate();
|
|
|
|
buffer.read_end().Resize(sb.len + 1000);
|
|
|
|
auto sbn = buffer.write_end().Allocate();
|
|
ASSERT_EQ(sb.len + 1000, sbn.len);
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
InitializeData(data, SIZE);
|
|
google::InitGoogleLogging(argv[0]);
|
|
::testing::InitGoogleTest(&argc, argv);
|
|
return RUN_ALL_TESTS();
|
|
}
|