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