tsan_vector_test.cc revision 2d1fdb26e458c4ddc04155c1d421bced3ba90cd0
1//===-- tsan_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 ThreadSanitizer (TSan), a race detector. 11// 12//===----------------------------------------------------------------------===// 13#include "tsan_vector.h" 14#include "tsan_rtl.h" 15#include "gtest/gtest.h" 16 17namespace __tsan { 18 19TEST(Vector, Basic) { 20 Vector<int> v(MBlockScopedBuf); 21 EXPECT_EQ(v.Size(), (uptr)0); 22 v.PushBack(42); 23 EXPECT_EQ(v.Size(), (uptr)1); 24 EXPECT_EQ(v[0], 42); 25 v.PushBack(43); 26 EXPECT_EQ(v.Size(), (uptr)2); 27 EXPECT_EQ(v[0], 42); 28 EXPECT_EQ(v[1], 43); 29} 30 31TEST(Vector, Stride) { 32 Vector<int> v(MBlockScopedBuf); 33 for (int i = 0; i < 1000; i++) { 34 v.PushBack(i); 35 EXPECT_EQ(v.Size(), (uptr)(i + 1)); 36 EXPECT_EQ(v[i], i); 37 } 38 for (int i = 0; i < 1000; i++) { 39 EXPECT_EQ(v[i], i); 40 } 41} 42 43} // namespace __tsan 44