• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 The PDFium Authors
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 "core/fxcrt/small_buffer.h"
6 
7 #include <algorithm>
8 
9 #include "testing/gtest/include/gtest/gtest.h"
10 
11 namespace fxcrt {
12 
TEST(SmallBuffer,Empty)13 TEST(SmallBuffer, Empty) {
14   SmallBuffer<int, 4> buffer(0);
15   EXPECT_EQ(buffer.data(), buffer.fixed_for_test());
16   EXPECT_EQ(buffer.begin(), buffer.end());
17 }
18 
TEST(SmallBuffer,NoFixed)19 TEST(SmallBuffer, NoFixed) {
20   SmallBuffer<int, 0> buffer(4);
21   EXPECT_EQ(buffer.data(), buffer.dynamic_for_test());
22   std::fill(buffer.begin(), buffer.end(), 42);
23   int* ptr = buffer.data();
24   EXPECT_EQ(42, ptr[0]);
25   EXPECT_EQ(42, ptr[1]);
26   EXPECT_EQ(42, ptr[2]);
27   EXPECT_EQ(42, ptr[3]);
28 }
29 
TEST(SmallBuffer,NoFixedEmpty)30 TEST(SmallBuffer, NoFixedEmpty) {
31   SmallBuffer<int, 0> buffer(0);
32   EXPECT_EQ(buffer.data(), buffer.fixed_for_test());
33   EXPECT_EQ(buffer.begin(), buffer.end());
34 }
35 
TEST(SmallBuffer,Fixed)36 TEST(SmallBuffer, Fixed) {
37   SmallBuffer<int, 4> buffer(2);
38   EXPECT_EQ(buffer.data(), buffer.fixed_for_test());
39   std::fill(buffer.begin(), buffer.end(), 42);
40   int* ptr = buffer.data();
41   EXPECT_EQ(42, ptr[0]);
42   EXPECT_EQ(42, ptr[1]);
43 }
44 
TEST(SmallBuffer,Dynamic)45 TEST(SmallBuffer, Dynamic) {
46   SmallBuffer<int, 2> buffer(4);
47   EXPECT_EQ(buffer.data(), buffer.dynamic_for_test());
48   std::fill(buffer.begin(), buffer.end(), 42);
49   int* ptr = buffer.data();
50   EXPECT_EQ(42, ptr[0]);
51   EXPECT_EQ(42, ptr[1]);
52   EXPECT_EQ(42, ptr[2]);
53   EXPECT_EQ(42, ptr[3]);
54 }
55 
56 }  // namespace fxcrt
57