1//===-- sanitizer_vector_test.cc ------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file is a part of *Sanitizer runtime. 11// 12//===----------------------------------------------------------------------===// 13#include "sanitizer_common/sanitizer_vector.h" 14#include "gtest/gtest.h" 15 16namespace __sanitizer { 17 18TEST(Vector, Basic) { 19 Vector<int> v; 20 EXPECT_EQ(v.Size(), 0u); 21 v.PushBack(42); 22 EXPECT_EQ(v.Size(), 1u); 23 EXPECT_EQ(v[0], 42); 24 v.PushBack(43); 25 EXPECT_EQ(v.Size(), 2u); 26 EXPECT_EQ(v[0], 42); 27 EXPECT_EQ(v[1], 43); 28} 29 30TEST(Vector, Stride) { 31 Vector<int> v; 32 for (int i = 0; i < 1000; i++) { 33 v.PushBack(i); 34 EXPECT_EQ(v.Size(), i + 1u); 35 EXPECT_EQ(v[i], i); 36 } 37 for (int i = 0; i < 1000; i++) { 38 EXPECT_EQ(v[i], i); 39 } 40} 41 42TEST(Vector, ResizeReduction) { 43 Vector<int> v; 44 v.PushBack(0); 45 v.PushBack(0); 46 EXPECT_EQ(v.Size(), 2u); 47 v.Resize(1); 48 EXPECT_EQ(v.Size(), 1u); 49} 50 51} // namespace __sanitizer 52