| // Copyright 2022 The PDFium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "core/fxcrt/small_buffer.h" | |
| #include <algorithm> | |
| #include "testing/gtest/include/gtest/gtest.h" | |
| namespace fxcrt { | |
| TEST(SmallBuffer, Empty) { | |
| SmallBuffer<int, 4> buffer(0); | |
| EXPECT_EQ(buffer.data(), buffer.fixed_for_test()); | |
| EXPECT_EQ(buffer.begin(), buffer.end()); | |
| } | |
| TEST(SmallBuffer, NoFixed) { | |
| SmallBuffer<int, 0> buffer(4); | |
| EXPECT_EQ(buffer.data(), buffer.dynamic_for_test()); | |
| std::fill(buffer.begin(), buffer.end(), 42); | |
| int* ptr = buffer.data(); | |
| EXPECT_EQ(42, ptr[0]); | |
| EXPECT_EQ(42, ptr[1]); | |
| EXPECT_EQ(42, ptr[2]); | |
| EXPECT_EQ(42, ptr[3]); | |
| } | |
| TEST(SmallBuffer, NoFixedEmpty) { | |
| SmallBuffer<int, 0> buffer(0); | |
| EXPECT_EQ(buffer.data(), buffer.fixed_for_test()); | |
| EXPECT_EQ(buffer.begin(), buffer.end()); | |
| } | |
| TEST(SmallBuffer, Fixed) { | |
| SmallBuffer<int, 4> buffer(2); | |
| EXPECT_EQ(buffer.data(), buffer.fixed_for_test()); | |
| std::fill(buffer.begin(), buffer.end(), 42); | |
| int* ptr = buffer.data(); | |
| EXPECT_EQ(42, ptr[0]); | |
| EXPECT_EQ(42, ptr[1]); | |
| } | |
| TEST(SmallBuffer, Dynamic) { | |
| SmallBuffer<int, 2> buffer(4); | |
| EXPECT_EQ(buffer.data(), buffer.dynamic_for_test()); | |
| std::fill(buffer.begin(), buffer.end(), 42); | |
| int* ptr = buffer.data(); | |
| EXPECT_EQ(42, ptr[0]); | |
| EXPECT_EQ(42, ptr[1]); | |
| EXPECT_EQ(42, ptr[2]); | |
| EXPECT_EQ(42, ptr[3]); | |
| } | |
| } // namespace fxcrt |