xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/common/simple_buffer_allocator_test.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "quiche/common/simple_buffer_allocator.h"
6 
7 #include "quiche/common/platform/api/quiche_test.h"
8 
9 namespace quiche {
10 namespace {
11 
TEST(SimpleBufferAllocatorTest,NewDelete)12 TEST(SimpleBufferAllocatorTest, NewDelete) {
13   SimpleBufferAllocator alloc;
14   char* buf = alloc.New(4);
15   EXPECT_NE(nullptr, buf);
16   alloc.Delete(buf);
17 }
18 
TEST(SimpleBufferAllocatorTest,DeleteNull)19 TEST(SimpleBufferAllocatorTest, DeleteNull) {
20   SimpleBufferAllocator alloc;
21   alloc.Delete(nullptr);
22 }
23 
TEST(SimpleBufferAllocatorTest,MoveBuffersConstructor)24 TEST(SimpleBufferAllocatorTest, MoveBuffersConstructor) {
25   SimpleBufferAllocator alloc;
26   QuicheBuffer buffer1(&alloc, 16);
27 
28   EXPECT_NE(buffer1.data(), nullptr);
29   EXPECT_EQ(buffer1.size(), 16u);
30 
31   QuicheBuffer buffer2(std::move(buffer1));
32   EXPECT_EQ(buffer1.data(), nullptr);  // NOLINT(bugprone-use-after-move)
33   EXPECT_EQ(buffer1.size(), 0u);
34   EXPECT_NE(buffer2.data(), nullptr);
35   EXPECT_EQ(buffer2.size(), 16u);
36 }
37 
TEST(SimpleBufferAllocatorTest,MoveBuffersAssignment)38 TEST(SimpleBufferAllocatorTest, MoveBuffersAssignment) {
39   SimpleBufferAllocator alloc;
40   QuicheBuffer buffer1(&alloc, 16);
41   QuicheBuffer buffer2;
42 
43   EXPECT_NE(buffer1.data(), nullptr);
44   EXPECT_EQ(buffer1.size(), 16u);
45   EXPECT_EQ(buffer2.data(), nullptr);
46   EXPECT_EQ(buffer2.size(), 0u);
47 
48   buffer2 = std::move(buffer1);
49   EXPECT_EQ(buffer1.data(), nullptr);  // NOLINT(bugprone-use-after-move)
50   EXPECT_EQ(buffer1.size(), 0u);
51   EXPECT_NE(buffer2.data(), nullptr);
52   EXPECT_EQ(buffer2.size(), 16u);
53 }
54 
TEST(SimpleBufferAllocatorTest,CopyBuffer)55 TEST(SimpleBufferAllocatorTest, CopyBuffer) {
56   SimpleBufferAllocator alloc;
57   const absl::string_view original = "Test string";
58   QuicheBuffer copy = QuicheBuffer::Copy(&alloc, original);
59   EXPECT_EQ(copy.AsStringView(), original);
60 }
61 
62 }  // namespace
63 }  // namespace quiche
64