1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-27 03:41:14 +03:00

Add unit test for BufQueue::clone

Summary: As titled.

Reviewed By: afrind

Differential Revision: D42036127

fbshipit-source-id: ae7fa598bd233e14261011be62de7e25f7d16ca2
This commit is contained in:
Jianfeng Tang
2022-12-14 09:40:49 -08:00
committed by Facebook GitHub Bot
parent c3bdb45817
commit 0e39de88f3

View File

@@ -176,6 +176,28 @@ TEST(BufQueue, TrimStartAtMost) {
checkConsistency(queue);
}
TEST(BufQueue, CloneBufNull) {
BufQueue queue;
auto buf = queue.clone();
EXPECT_EQ(nullptr, buf);
}
TEST(BufQueue, CloneBuf) {
std::string s("Hello, World");
BufQueue queue;
queue.append(IOBuf::copyBuffer(s.data(), s.length()));
auto buf = queue.clone();
const IOBuf* chain = queue.front();
EXPECT_EQ(s.length(), chain->computeChainDataLength());
EXPECT_EQ(s.length(), buf->computeChainDataLength());
EXPECT_EQ(0, memcmp(chain->data(), buf->data(), s.length()));
queue.append(IOBuf::copyBuffer(s.data(), s.length()));
EXPECT_EQ(2 * s.length(), chain->computeChainDataLength());
EXPECT_EQ(s.length(), buf->computeChainDataLength());
buf = queue.clone();
EXPECT_EQ(2 * s.length(), buf->computeChainDataLength());
}
TEST(BufAppender, TestPushAlreadyFits) {
std::unique_ptr<folly::IOBuf> data = folly::IOBuf::create(10);
BufAppender appender(data.get(), 10);