51 lines · cpp
1//===-- sanitizer_vector_test.cpp -----------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file is a part of *Sanitizer runtime.10//11//===----------------------------------------------------------------------===//12#include "sanitizer_common/sanitizer_vector.h"13#include "gtest/gtest.h"14 15namespace __sanitizer {16 17TEST(Vector, Basic) {18 Vector<int> v;19 EXPECT_EQ(v.Size(), 0u);20 v.PushBack(42);21 EXPECT_EQ(v.Size(), 1u);22 EXPECT_EQ(v[0], 42);23 v.PushBack(43);24 EXPECT_EQ(v.Size(), 2u);25 EXPECT_EQ(v[0], 42);26 EXPECT_EQ(v[1], 43);27}28 29TEST(Vector, Stride) {30 Vector<int> v;31 for (int i = 0; i < 1000; i++) {32 v.PushBack(i);33 EXPECT_EQ(v.Size(), i + 1u);34 EXPECT_EQ(v[i], i);35 }36 for (int i = 0; i < 1000; i++) {37 EXPECT_EQ(v[i], i);38 }39}40 41TEST(Vector, ResizeReduction) {42 Vector<int> v;43 v.PushBack(0);44 v.PushBack(0);45 EXPECT_EQ(v.Size(), 2u);46 v.Resize(1);47 EXPECT_EQ(v.Size(), 1u);48}49 50} // namespace __sanitizer51