brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 771319c Raw
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