// 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 #include "testing/gtest/include/gtest/gtest.h" namespace fxcrt { TEST(SmallBuffer, Empty) { SmallBuffer buffer(0); EXPECT_EQ(buffer.data(), buffer.fixed_for_test()); EXPECT_EQ(buffer.begin(), buffer.end()); } TEST(SmallBuffer, NoFixed) { SmallBuffer 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 buffer(0); EXPECT_EQ(buffer.data(), buffer.fixed_for_test()); EXPECT_EQ(buffer.begin(), buffer.end()); } TEST(SmallBuffer, Fixed) { SmallBuffer 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 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