memgraph/tests/unit/communication_buffer.cpp
János Benjamin Antal 537855a0b2
Fix usages of constexpr (#367)
* Fix usages of constexpr
2022-03-31 13:52:43 +02:00

70 lines
2.0 KiB
C++

// Copyright 2022 Memgraph Ltd.
//
// Use of this software is governed by the Business Source License
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
// License, and you may not use this file except in compliance with the Business Source License.
//
// As of the Change Date specified in that file, in accordance with
// the Business Source License, use of this software will be governed
// by the Apache License, Version 2.0, included in the file
// licenses/APL.txt.
#include "bolt_common.hpp"
#include "communication/buffer.hpp"
inline constexpr const int SIZE = 4096;
uint8_t data[SIZE];
using memgraph::communication::Buffer;
struct CommunicationBuffer : ::testing::Test {
// In newer gtest library (1.8.1+) this is changed to SetUpTestSuite
static void SetUpTestCase() { InitializeData(data, SIZE); }
};
TEST_F(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_F(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_F(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);
}