Refactored bolt session to use new decoder.
Summary: Bolt buffer is now a template. Communication worker now has a new interface. Fixed network tests to use new interface. Fixed bolt tests to use new interface. Added more functions to bolt decoder. Reviewers: dgleich, buda Reviewed By: buda Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D256
This commit is contained in:
@@ -5,9 +5,10 @@
|
||||
constexpr const int SIZE = 131072;
|
||||
uint8_t data[SIZE];
|
||||
|
||||
using BufferT = communication::bolt::Buffer;
|
||||
using BufferT = communication::bolt::Buffer<>;
|
||||
using StreamBufferT = io::network::StreamBuffer;
|
||||
using DecoderBufferT = communication::bolt::ChunkedDecoderBuffer;
|
||||
using ChunkStateT = communication::bolt::ChunkState;
|
||||
|
||||
TEST(BoltBuffer, CorrectChunk) {
|
||||
uint8_t tmp[2000];
|
||||
@@ -20,7 +21,7 @@ TEST(BoltBuffer, CorrectChunk) {
|
||||
sb.data[1002] = 0; sb.data[1003] = 0;
|
||||
buffer.Written(1004);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), true);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Whole);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.Read(tmp, 1000), true);
|
||||
for (int i = 0; i < 1000; ++i)
|
||||
@@ -40,7 +41,7 @@ TEST(BoltBuffer, CorrectChunkTrailingData) {
|
||||
sb.data[1002] = 0; sb.data[1003] = 0;
|
||||
buffer.Written(2004);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), true);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Whole);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.Read(tmp, 1000), true);
|
||||
for (int i = 0; i < 1000; ++i)
|
||||
@@ -62,7 +63,7 @@ TEST(BoltBuffer, InvalidChunk) {
|
||||
sb.data[1002] = 1; sb.data[1003] = 1;
|
||||
buffer.Written(2004);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), false);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Invalid);
|
||||
|
||||
ASSERT_EQ(buffer.size(), 1000);
|
||||
|
||||
@@ -79,19 +80,19 @@ TEST(BoltBuffer, GraduallyPopulatedChunk) {
|
||||
|
||||
sb.data[0] = 0x03; sb.data[1] = 0xe8;
|
||||
buffer.Written(2);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), false);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Partial);
|
||||
|
||||
for (int i = 0; i < 5; ++i) {
|
||||
sb = buffer.Allocate();
|
||||
memcpy(sb.data, data + 200 * i, 200);
|
||||
buffer.Written(200);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), false);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Partial);
|
||||
}
|
||||
|
||||
sb = buffer.Allocate();
|
||||
sb.data[0] = 0; sb.data[1] = 0;
|
||||
buffer.Written(2);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), true);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Whole);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.Read(tmp, 1000), true);
|
||||
for (int i = 0; i < 1000; ++i)
|
||||
@@ -108,13 +109,13 @@ TEST(BoltBuffer, GraduallyPopulatedChunkTrailingData) {
|
||||
|
||||
sb.data[0] = 0x03; sb.data[1] = 0xe8;
|
||||
buffer.Written(2);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), false);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Partial);
|
||||
|
||||
for (int i = 0; i < 5; ++i) {
|
||||
sb = buffer.Allocate();
|
||||
memcpy(sb.data, data + 200 * i, 200);
|
||||
buffer.Written(200);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), false);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Partial);
|
||||
}
|
||||
|
||||
sb = buffer.Allocate();
|
||||
@@ -125,7 +126,7 @@ TEST(BoltBuffer, GraduallyPopulatedChunkTrailingData) {
|
||||
memcpy(sb.data, data, 1000);
|
||||
buffer.Written(1000);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), true);
|
||||
ASSERT_EQ(decoder_buffer.GetChunk(), ChunkStateT::Whole);
|
||||
|
||||
ASSERT_EQ(decoder_buffer.Read(tmp, 1000), true);
|
||||
for (int i = 0; i < 1000; ++i)
|
||||
|
||||
Reference in New Issue
Block a user