brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · d5e0f70 Raw
73 lines · cpp
1//===----------------------------------------------------------------------===//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// <vector>10 11// void swap(vector& x);12 13#include <vector>14#include <cassert>15 16#include "test_macros.h"17#include "min_allocator.h"18#include "asan_testing.h"19 20TEST_CONSTEXPR_CXX20 bool tests() {21  {22    std::vector<int> v1(100);23    std::vector<int> v2(200);24    assert(is_contiguous_container_asan_correct(v1));25    assert(is_contiguous_container_asan_correct(v2));26    v1.swap(v2);27    assert(v1.size() == 200);28    assert(v1.capacity() == 200);29    assert(is_contiguous_container_asan_correct(v1));30    assert(v2.size() == 100);31    assert(v2.capacity() == 100);32    assert(is_contiguous_container_asan_correct(v2));33  }34#if TEST_STD_VER >= 1135  {36    std::vector<int, min_allocator<int>> v1(100);37    std::vector<int, min_allocator<int>> v2(200);38    assert(is_contiguous_container_asan_correct(v1));39    assert(is_contiguous_container_asan_correct(v2));40    v1.swap(v2);41    assert(v1.size() == 200);42    assert(v1.capacity() == 200);43    assert(is_contiguous_container_asan_correct(v1));44    assert(v2.size() == 100);45    assert(v2.capacity() == 100);46    assert(is_contiguous_container_asan_correct(v2));47  }48  {49    std::vector<int, safe_allocator<int>> v1(100);50    std::vector<int, safe_allocator<int>> v2(200);51    assert(is_contiguous_container_asan_correct(v1));52    assert(is_contiguous_container_asan_correct(v2));53    v1.swap(v2);54    assert(v1.size() == 200);55    assert(v1.capacity() == 200);56    assert(is_contiguous_container_asan_correct(v1));57    assert(v2.size() == 100);58    assert(v2.capacity() == 100);59    assert(is_contiguous_container_asan_correct(v2));60  }61#endif62 63  return true;64}65 66int main(int, char**) {67  tests();68#if TEST_STD_VER > 1769  static_assert(tests());70#endif71  return 0;72}73