1 //===-- Unittests for vector ----------------------------------------------===//
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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "src/__support/CPP/vector.h"
10 #include "utils/UnitTest/Test.h"
11 
TEST(LlvmLibcVectorTest,SimpleConstructor)12 TEST(LlvmLibcVectorTest, SimpleConstructor) {
13   __llvm_libc::cpp::vector<int> vec;
14 }
15 
TEST(LlvmLibcVectorTest,OrderedWriteOrderedReadTest)16 TEST(LlvmLibcVectorTest, OrderedWriteOrderedReadTest) {
17   __llvm_libc::cpp::vector<size_t> vec;
18 
19   for (size_t i = 0; i < 100; i = i + 2) {
20     vec.push_back(i);
21   }
22   ASSERT_EQ(vec.size(), size_t(50));
23   ASSERT_GE(vec.capacity(), vec.size());
24   for (size_t j = 0; j < vec.size(); ++j) {
25     ASSERT_EQ(vec[j], j * 2);
26   }
27 }
28 
TEST(LlvmLibcVectorTest,ReserveTest)29 TEST(LlvmLibcVectorTest, ReserveTest) {
30   __llvm_libc::cpp::vector<bool> vec;
31 
32   size_t prev_capacity = vec.capacity();
33 
34   vec.reserve(prev_capacity * 2);
35 
36   ASSERT_GT(vec.capacity(), prev_capacity * 2);
37 }
38