summaryrefslogtreecommitdiffstats
path: root/libcxx/test/containers/sequences
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2014-12-20 01:40:03 +0000
committerEric Fiselier <eric@efcs.ca>2014-12-20 01:40:03 +0000
commit5a83710e371fe68a06e6e3876c6a2c8b820a8976 (patch)
treeafde4c82ad6704681781c5cd49baa3fbd05c85db /libcxx/test/containers/sequences
parentf11e8eab527fba316c64112f6e05de1a79693a3e (diff)
downloadbcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.tar.gz
bcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.zip
Move test into test/std subdirectory.
llvm-svn: 224658
Diffstat (limited to 'libcxx/test/containers/sequences')
-rw-r--r--libcxx/test/containers/sequences/array/array.cons/default.pass.cpp31
-rw-r--r--libcxx/test/containers/sequences/array/array.cons/initializer_list.pass.cpp34
-rw-r--r--libcxx/test/containers/sequences/array/array.data/data.pass.cpp35
-rw-r--r--libcxx/test/containers/sequences/array/array.data/data_const.pass.cpp35
-rw-r--r--libcxx/test/containers/sequences/array/array.fill/fill.pass.cpp36
-rw-r--r--libcxx/test/containers/sequences/array/array.size/size.pass.cpp53
-rw-r--r--libcxx/test/containers/sequences/array/array.special/swap.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/array/array.swap/swap.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/array/array.tuple/get.fail.cpp25
-rw-r--r--libcxx/test/containers/sequences/array/array.tuple/get.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/array/array.tuple/get_const.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/array/array.tuple/get_rv.pass.cpp29
-rw-r--r--libcxx/test/containers/sequences/array/array.tuple/tuple_element.pass.cpp33
-rw-r--r--libcxx/test/containers/sequences/array/array.tuple/tuple_size.pass.cpp28
-rw-r--r--libcxx/test/containers/sequences/array/array.zero/tested_elsewhere.pass.cpp18
-rw-r--r--libcxx/test/containers/sequences/array/at.pass.cpp67
-rw-r--r--libcxx/test/containers/sequences/array/begin.pass.cpp32
-rw-r--r--libcxx/test/containers/sequences/array/front_back.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/array/indexing.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/array/iterators.pass.cpp110
-rw-r--r--libcxx/test/containers/sequences/array/types.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/array/version.pass.cpp20
-rw-r--r--libcxx/test/containers/sequences/deque/deque.capacity/access.pass.cpp91
-rw-r--r--libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp86
-rw-r--r--libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp86
-rw-r--r--libcxx/test/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp77
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/alloc.pass.cpp38
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp109
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp85
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/copy.pass.cpp61
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/copy_alloc.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp41
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/initializer_list.pass.cpp41
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/move.pass.cpp72
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/move_alloc.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp91
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/op_equal.pass.cpp63
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/size.pass.cpp113
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/size_value.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp67
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/emplace.pass.cpp112
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp90
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp96
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_initializer_list.pass.cpp63
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp256
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp118
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp159
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp139
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp84
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp84
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp81
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp80
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/push_front.pass.cpp83
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp81
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp90
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp88
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/swap.pass.cpp110
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/deque/iterators.pass.cpp79
-rw-r--r--libcxx/test/containers/sequences/deque/types.pass.cpp90
-rw-r--r--libcxx/test/containers/sequences/deque/version.pass.cpp20
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp86
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.cons/default.pass.cpp95
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.data/default.pass.cpp67
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.overview/at.pass.cpp94
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp108
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp57
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp68
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp71
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.traits/default.pass.cpp31
-rw-r--r--libcxx/test/containers/sequences/dynarray/dynarray.zero/default.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/dynarray/nothing_to_do.pass.cpp12
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp61
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.fail.cpp30
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp41
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp146
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp70
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp199
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp70
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp78
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp68
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp69
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp67
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp41
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp25
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.fail.cpp35
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp66
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp45
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp104
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp145
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp89
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp155
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp97
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp87
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp75
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp80
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp90
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp78
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp47
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp114
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp84
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge_pred.pass.cpp49
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp155
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp155
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp42
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort.pass.cpp47
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort_pred.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp75
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp140
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp169
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp120
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp125
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp259
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp260
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp65
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/forwardlist/max_size.pass.cpp35
-rw-r--r--libcxx/test/containers/sequences/forwardlist/types.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/forwardlist/version.pass.cpp20
-rw-r--r--libcxx/test/containers/sequences/list/db_back.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/list/db_cback.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/list/db_cfront.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/list/db_front.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/list/db_iterators_6.pass.cpp58
-rw-r--r--libcxx/test/containers/sequences/list/db_iterators_7.pass.cpp58
-rw-r--r--libcxx/test/containers/sequences/list/db_iterators_8.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/list/db_iterators_9.pass.cpp67
-rw-r--r--libcxx/test/containers/sequences/list/iterators.pass.cpp159
-rw-r--r--libcxx/test/containers/sequences/list/list.capacity/resize_size.pass.cpp81
-rw-r--r--libcxx/test/containers/sequences/list/list.capacity/resize_size_value.pass.cpp53
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/assign_copy.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/assign_initializer_list.pass.cpp45
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/assign_move.pass.cpp82
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/copy.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/copy_alloc.pass.cpp42
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/default.pass.cpp58
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/default_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/default_stack_alloc.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/initializer_list.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/initializer_list_alloc.pass.cpp46
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp77
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/move.pass.cpp74
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/move_alloc.pass.cpp78
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/move_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/op_equal_initializer_list.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/size_type.pass.cpp103
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/size_value_alloc.pass.cpp79
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/clear.pass.cpp35
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/emplace.pass.cpp88
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/emplace_back.pass.cpp66
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/emplace_front.pass.cpp66
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter.pass.cpp65
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp53
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter.pass.cpp84
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp49
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/insert_iter_initializer_list.pass.cpp67
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp185
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/insert_iter_rvalue.pass.cpp68
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp106
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp112
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/pop_back.pass.cpp55
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/pop_front.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/push_back.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/push_back_rvalue.pass.cpp46
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/push_front.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/list/list.modifiers/push_front_rvalue.pass.cpp46
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/merge.pass.cpp41
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/merge_comp.pass.cpp42
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/remove.pass.cpp69
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/remove_if.pass.cpp64
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/reverse.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/sort.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/sort_comp.pass.cpp38
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/splice_pos_list.pass.cpp803
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp357
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp237
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/unique.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/list/list.ops/unique_pred.pass.cpp42
-rw-r--r--libcxx/test/containers/sequences/list/list.special/db_swap_1.pass.cpp59
-rw-r--r--libcxx/test/containers/sequences/list/list.special/swap.pass.cpp146
-rw-r--r--libcxx/test/containers/sequences/list/list.special/swap_noexcept.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/list/types.pass.cpp46
-rw-r--r--libcxx/test/containers/sequences/list/version.pass.cpp20
-rw-r--r--libcxx/test/containers/sequences/nothing_to_do.pass.cpp12
-rw-r--r--libcxx/test/containers/sequences/vector.bool/assign_copy.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/vector.bool/assign_initializer_list.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/vector.bool/assign_move.pass.cpp81
-rw-r--r--libcxx/test/containers/sequences/vector.bool/capacity.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp59
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp55
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_size.pass.cpp64
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_size_value.pass.cpp37
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp39
-rw-r--r--libcxx/test/containers/sequences/vector.bool/copy.pass.cpp65
-rw-r--r--libcxx/test/containers/sequences/vector.bool/copy_alloc.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/vector.bool/default_noexcept.pass.cpp49
-rw-r--r--libcxx/test/containers/sequences/vector.bool/dtor_noexcept.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector.bool/emplace.pass.cpp68
-rw-r--r--libcxx/test/containers/sequences/vector.bool/emplace_back.pass.cpp57
-rw-r--r--libcxx/test/containers/sequences/vector.bool/erase_iter.pass.cpp65
-rw-r--r--libcxx/test/containers/sequences/vector.bool/erase_iter_iter.pass.cpp85
-rw-r--r--libcxx/test/containers/sequences/vector.bool/find.pass.cpp40
-rw-r--r--libcxx/test/containers/sequences/vector.bool/initializer_list.pass.cpp41
-rw-r--r--libcxx/test/containers/sequences/vector.bool/initializer_list_alloc.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/vector.bool/insert_iter_initializer_list.pass.cpp65
-rw-r--r--libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp126
-rw-r--r--libcxx/test/containers/sequences/vector.bool/insert_iter_size_value.pass.cpp81
-rw-r--r--libcxx/test/containers/sequences/vector.bool/insert_iter_value.pass.cpp77
-rw-r--r--libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp123
-rw-r--r--libcxx/test/containers/sequences/vector.bool/move.pass.cpp64
-rw-r--r--libcxx/test/containers/sequences/vector.bool/move_alloc.pass.cpp77
-rw-r--r--libcxx/test/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector.bool/move_noexcept.pass.cpp49
-rw-r--r--libcxx/test/containers/sequences/vector.bool/op_equal_initializer_list.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/vector.bool/push_back.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/vector.bool/reserve.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/vector.bool/resize_size.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/vector.bool/resize_size_value.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/vector.bool/shrink_to_fit.pass.cpp38
-rw-r--r--libcxx/test/containers/sequences/vector.bool/swap.pass.cpp98
-rw-r--r--libcxx/test/containers/sequences/vector.bool/swap_noexcept.pass.cpp59
-rw-r--r--libcxx/test/containers/sequences/vector.bool/types.pass.cpp72
-rw-r--r--libcxx/test/containers/sequences/vector.bool/vector_bool.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector/asan.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/vector/asan_throw.pass.cc198
-rw-r--r--libcxx/test/containers/sequences/vector/const_value_type.pass.cpp22
-rw-r--r--libcxx/test/containers/sequences/vector/db_back.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/vector/db_cback.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/vector/db_cfront.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/vector/db_cindex.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/vector/db_front.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/vector/db_index.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_2.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_3.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_4.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_5.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_6.pass.cpp58
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_7.pass.cpp58
-rw-r--r--libcxx/test/containers/sequences/vector/db_iterators_8.pass.cpp54
-rw-r--r--libcxx/test/containers/sequences/vector/iterators.pass.cpp165
-rw-r--r--libcxx/test/containers/sequences/vector/types.pass.cpp84
-rw-r--r--libcxx/test/containers/sequences/vector/vector.capacity/capacity.pass.cpp48
-rw-r--r--libcxx/test/containers/sequences/vector/vector.capacity/reserve.pass.cpp69
-rw-r--r--libcxx/test/containers/sequences/vector/vector.capacity/resize_size.pass.cpp83
-rw-r--r--libcxx/test/containers/sequences/vector/vector.capacity/resize_size_value.pass.cpp76
-rw-r--r--libcxx/test/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/vector/vector.capacity/swap.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/assign_copy.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/assign_initializer_list.pass.cpp46
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/assign_move.pass.cpp101
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp78
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp71
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_size.pass.cpp73
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp40
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp39
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/copy.pass.cpp78
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp64
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp23
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/default_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/initializer_list.pass.cpp43
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/initializer_list_alloc.pass.cpp47
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/move.pass.cpp103
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/move_alloc.pass.cpp99
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp52
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/move_noexcept.pass.cpp50
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/op_equal_initializer_list.pass.cpp46
-rw-r--r--libcxx/test/containers/sequences/vector/vector.data/data.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/vector/vector.data/data_const.pass.cpp44
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/emplace.pass.cpp160
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp107
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/emplace_extra.pass.cpp62
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter.pass.cpp74
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db1.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db2.pass.cpp53
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter.pass.cpp127
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db1.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db2.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db3.pass.cpp51
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db4.pass.cpp49
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp68
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp190
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.pass.cpp86
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_size_value.pass.cpp132
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_value.pass.cpp116
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/pop_back.pass.cpp55
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/push_back.pass.cpp108
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp86
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/push_back_rvalue.pass.cpp111
-rw-r--r--libcxx/test/containers/sequences/vector/vector.special/db_swap_1.pass.cpp56
-rw-r--r--libcxx/test/containers/sequences/vector/vector.special/swap.pass.cpp187
-rw-r--r--libcxx/test/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp60
-rw-r--r--libcxx/test/containers/sequences/vector/version.pass.cpp20
337 files changed, 0 insertions, 24483 deletions
diff --git a/libcxx/test/containers/sequences/array/array.cons/default.pass.cpp b/libcxx/test/containers/sequences/array/array.cons/default.pass.cpp
deleted file mode 100644
index 7bc62b759c3..00000000000
--- a/libcxx/test/containers/sequences/array/array.cons/default.pass.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// array();
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c;
- assert(c.size() == 3);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c;
- assert(c.size() == 0);
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.cons/initializer_list.pass.cpp b/libcxx/test/containers/sequences/array/array.cons/initializer_list.pass.cpp
deleted file mode 100644
index b9775eef067..00000000000
--- a/libcxx/test/containers/sequences/array/array.cons/initializer_list.pass.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// Construct with initizializer list
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- assert(c.size() == 3);
- assert(c[0] == 1);
- assert(c[1] == 2);
- assert(c[2] == 3.5);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c = {};
- assert(c.size() == 0);
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.data/data.pass.cpp b/libcxx/test/containers/sequences/array/array.data/data.pass.cpp
deleted file mode 100644
index 08e4fd39d37..00000000000
--- a/libcxx/test/containers/sequences/array/array.data/data.pass.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// T *data();
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- T* p = c.data();
- assert(p[0] == 1);
- assert(p[1] == 2);
- assert(p[2] == 3.5);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c = {};
- T* p = c.data();
- (void)p; // to placate scan-build
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.data/data_const.pass.cpp b/libcxx/test/containers/sequences/array/array.data/data_const.pass.cpp
deleted file mode 100644
index 8eb9762dcb8..00000000000
--- a/libcxx/test/containers/sequences/array/array.data/data_const.pass.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// const T* data() const;
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- const C c = {1, 2, 3.5};
- const T* p = c.data();
- assert(p[0] == 1);
- assert(p[1] == 2);
- assert(p[2] == 3.5);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- const C c = {};
- const T* p = c.data();
- (void)p; // to placate scan-build
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.fill/fill.pass.cpp b/libcxx/test/containers/sequences/array/array.fill/fill.pass.cpp
deleted file mode 100644
index 675f4950062..00000000000
--- a/libcxx/test/containers/sequences/array/array.fill/fill.pass.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// void fill(const T& u);
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- c.fill(5.5);
- assert(c.size() == 3);
- assert(c[0] == 5.5);
- assert(c[1] == 5.5);
- assert(c[2] == 5.5);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c = {};
- c.fill(5.5);
- assert(c.size() == 0);
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.size/size.pass.cpp b/libcxx/test/containers/sequences/array/array.size/size.pass.cpp
deleted file mode 100644
index fe5a0d5c8db..00000000000
--- a/libcxx/test/containers/sequences/array/array.size/size.pass.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <class T, size_t N> constexpr size_type array<T,N>::size();
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- assert(c.size() == 3);
- assert(c.max_size() == 3);
- assert(!c.empty());
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c = {};
- assert(c.size() == 0);
- assert(c.max_size() == 0);
- assert(c.empty());
- }
-#ifndef _LIBCPP_HAS_NO_CONSTEXPR
- {
- typedef double T;
- typedef std::array<T, 3> C;
- constexpr C c = {1, 2, 3.5};
- static_assert(c.size() == 3, "");
- static_assert(c.max_size() == 3, "");
- static_assert(!c.empty(), "");
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- constexpr C c = {};
- static_assert(c.size() == 0, "");
- static_assert(c.max_size() == 0, "");
- static_assert(c.empty(), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/array/array.special/swap.pass.cpp b/libcxx/test/containers/sequences/array/array.special/swap.pass.cpp
deleted file mode 100644
index 08e437739ee..00000000000
--- a/libcxx/test/containers/sequences/array/array.special/swap.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <class T, size_t N> void swap(array<T,N>& x, array<T,N>& y);
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c1 = {1, 2, 3.5};
- C c2 = {4, 5, 6.5};
- swap(c1, c2);
- assert(c1.size() == 3);
- assert(c1[0] == 4);
- assert(c1[1] == 5);
- assert(c1[2] == 6.5);
- assert(c2.size() == 3);
- assert(c2[0] == 1);
- assert(c2[1] == 2);
- assert(c2[2] == 3.5);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c1 = {};
- C c2 = {};
- swap(c1, c2);
- assert(c1.size() == 0);
- assert(c2.size() == 0);
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.swap/swap.pass.cpp b/libcxx/test/containers/sequences/array/array.swap/swap.pass.cpp
deleted file mode 100644
index c7a4cb8df38..00000000000
--- a/libcxx/test/containers/sequences/array/array.swap/swap.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// void swap(array& a);
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c1 = {1, 2, 3.5};
- C c2 = {4, 5, 6.5};
- c1.swap(c2);
- assert(c1.size() == 3);
- assert(c1[0] == 4);
- assert(c1[1] == 5);
- assert(c1[2] == 6.5);
- assert(c2.size() == 3);
- assert(c2[0] == 1);
- assert(c2[1] == 2);
- assert(c2[2] == 3.5);
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- C c1 = {};
- C c2 = {};
- c1.swap(c2);
- assert(c1.size() == 0);
- assert(c2.size() == 0);
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.tuple/get.fail.cpp b/libcxx/test/containers/sequences/array/array.tuple/get.fail.cpp
deleted file mode 100644
index 4f4fbcf93af..00000000000
--- a/libcxx/test/containers/sequences/array/array.tuple/get.fail.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <size_t I, class T, size_t N> T& get(array<T, N>& a);
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- std::get<3>(c) = 5.5; // Can't get element 3!
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.tuple/get.pass.cpp b/libcxx/test/containers/sequences/array/array.tuple/get.pass.cpp
deleted file mode 100644
index d9e242cd420..00000000000
--- a/libcxx/test/containers/sequences/array/array.tuple/get.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <size_t I, class T, size_t N> T& get(array<T, N>& a);
-
-#include <array>
-#include <cassert>
-
-#if __cplusplus > 201103L
-struct S {
- std::array<int, 3> a;
- int k;
- constexpr S() : a{1,2,3}, k(std::get<2>(a)) {}
- };
-
-constexpr std::array<int, 2> getArr () { return { 3, 4 }; }
-#endif
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- std::get<1>(c) = 5.5;
- assert(c[0] == 1);
- assert(c[1] == 5.5);
- assert(c[2] == 3.5);
- }
-#if _LIBCPP_STD_VER > 11
- {
- typedef double T;
- typedef std::array<T, 3> C;
- constexpr C c = {1, 2, 3.5};
- static_assert(std::get<0>(c) == 1, "");
- static_assert(std::get<1>(c) == 2, "");
- static_assert(std::get<2>(c) == 3.5, "");
- }
- {
- static_assert(S().k == 3, "");
- static_assert(std::get<1>(getArr()) == 4, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/array/array.tuple/get_const.pass.cpp b/libcxx/test/containers/sequences/array/array.tuple/get_const.pass.cpp
deleted file mode 100644
index 1cbdfa4ff39..00000000000
--- a/libcxx/test/containers/sequences/array/array.tuple/get_const.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <size_t I, class T, size_t N> const T& get(const array<T, N>& a);
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- const C c = {1, 2, 3.5};
- assert(std::get<0>(c) == 1);
- assert(std::get<1>(c) == 2);
- assert(std::get<2>(c) == 3.5);
- }
-#if _LIBCPP_STD_VER > 11
- {
- typedef double T;
- typedef std::array<T, 3> C;
- constexpr const C c = {1, 2, 3.5};
- static_assert(std::get<0>(c) == 1, "");
- static_assert(std::get<1>(c) == 2, "");
- static_assert(std::get<2>(c) == 3.5, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/array/array.tuple/get_rv.pass.cpp b/libcxx/test/containers/sequences/array/array.tuple/get_rv.pass.cpp
deleted file mode 100644
index 869c1ec9c2d..00000000000
--- a/libcxx/test/containers/sequences/array/array.tuple/get_rv.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <size_t I, class T, size_t N> T&& get(array<T, N>&& a);
-
-#include <array>
-#include <memory>
-#include <cassert>
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef std::unique_ptr<double> T;
- typedef std::array<T, 1> C;
- C c = {std::unique_ptr<double>(new double(3.5))};
- T t = std::get<0>(std::move(c));
- assert(*t == 3.5);
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/array/array.tuple/tuple_element.pass.cpp b/libcxx/test/containers/sequences/array/array.tuple/tuple_element.pass.cpp
deleted file mode 100644
index cd1dad60ade..00000000000
--- a/libcxx/test/containers/sequences/array/array.tuple/tuple_element.pass.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// tuple_element<I, array<T, N> >::type
-
-#include <array>
-#include <type_traits>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- static_assert((std::is_same<std::tuple_element<0, C>::type, T>::value), "");
- static_assert((std::is_same<std::tuple_element<1, C>::type, T>::value), "");
- static_assert((std::is_same<std::tuple_element<2, C>::type, T>::value), "");
- }
- {
- typedef int T;
- typedef std::array<T, 3> C;
- static_assert((std::is_same<std::tuple_element<0, C>::type, T>::value), "");
- static_assert((std::is_same<std::tuple_element<1, C>::type, T>::value), "");
- static_assert((std::is_same<std::tuple_element<2, C>::type, T>::value), "");
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.tuple/tuple_size.pass.cpp b/libcxx/test/containers/sequences/array/array.tuple/tuple_size.pass.cpp
deleted file mode 100644
index 83394b1e0c9..00000000000
--- a/libcxx/test/containers/sequences/array/array.tuple/tuple_size.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// tuple_size<array<T, N> >::value
-
-#include <array>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- static_assert((std::tuple_size<C>::value == 3), "");
- }
- {
- typedef double T;
- typedef std::array<T, 0> C;
- static_assert((std::tuple_size<C>::value == 0), "");
- }
-}
diff --git a/libcxx/test/containers/sequences/array/array.zero/tested_elsewhere.pass.cpp b/libcxx/test/containers/sequences/array/array.zero/tested_elsewhere.pass.cpp
deleted file mode 100644
index 0aa2f50d8b4..00000000000
--- a/libcxx/test/containers/sequences/array/array.zero/tested_elsewhere.pass.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// support for zero-sized array
-
-#include <array>
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/array/at.pass.cpp b/libcxx/test/containers/sequences/array/at.pass.cpp
deleted file mode 100644
index b5cf8a5aaa8..00000000000
--- a/libcxx/test/containers/sequences/array/at.pass.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// reference operator[] (size_type)
-// const_reference operator[] (size_type); // constexpr in C++14
-// reference at (size_type)
-// const_reference at (size_type); // constexpr in C++14
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- C::reference r1 = c.at(0);
- assert(r1 == 1);
- r1 = 5.5;
- assert(c.front() == 5.5);
-
- C::reference r2 = c.at(2);
- assert(r2 == 3.5);
- r2 = 7.5;
- assert(c.back() == 7.5);
-
- try { (void) c.at(3); }
- catch (const std::out_of_range &) {}
- }
- {
- typedef double T;
- typedef std::array<T, 3> C;
- const C c = {1, 2, 3.5};
- C::const_reference r1 = c.at(0);
- assert(r1 == 1);
-
- C::const_reference r2 = c.at(2);
- assert(r2 == 3.5);
-
- try { (void) c.at(3); }
- catch (const std::out_of_range &) {}
- }
-
-#if _LIBCPP_STD_VER > 11
- {
- typedef double T;
- typedef std::array<T, 3> C;
- constexpr C c = {1, 2, 3.5};
-
- constexpr T t1 = c.at(0);
- static_assert (t1 == 1, "");
-
- constexpr T t2 = c.at(2);
- static_assert (t2 == 3.5, "");
- }
-#endif
-
-}
diff --git a/libcxx/test/containers/sequences/array/begin.pass.cpp b/libcxx/test/containers/sequences/array/begin.pass.cpp
deleted file mode 100644
index 9cba0d6fceb..00000000000
--- a/libcxx/test/containers/sequences/array/begin.pass.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// iterator begin();
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- C::iterator i;
- i = c.begin();
- assert(*i == 1);
- assert(&*i == c.data());
- *i = 5.5;
- assert(c[0] == 5.5);
- }
- {
- }
-}
diff --git a/libcxx/test/containers/sequences/array/front_back.pass.cpp b/libcxx/test/containers/sequences/array/front_back.pass.cpp
deleted file mode 100644
index 45a963b9947..00000000000
--- a/libcxx/test/containers/sequences/array/front_back.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// reference front();
-// reference back();
-// const_reference front(); // constexpr in C++14
-// const_reference back(); // constexpr in C++14
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
-
- C::reference r1 = c.front();
- assert(r1 == 1);
- r1 = 5.5;
- assert(c[0] == 5.5);
-
- C::reference r2 = c.back();
- assert(r2 == 3.5);
- r2 = 7.5;
- assert(c[2] == 7.5);
- }
- {
- typedef double T;
- typedef std::array<T, 3> C;
- const C c = {1, 2, 3.5};
- C::const_reference r1 = c.front();
- assert(r1 == 1);
-
- C::const_reference r2 = c.back();
- assert(r2 == 3.5);
- }
-
-#if _LIBCPP_STD_VER > 11
- {
- typedef double T;
- typedef std::array<T, 3> C;
- constexpr C c = {1, 2, 3.5};
-
- constexpr T t1 = c.front();
- static_assert (t1 == 1, "");
-
- constexpr T t2 = c.back();
- static_assert (t2 == 3.5, "");
- }
-#endif
-
-}
diff --git a/libcxx/test/containers/sequences/array/indexing.pass.cpp b/libcxx/test/containers/sequences/array/indexing.pass.cpp
deleted file mode 100644
index e4dda0dc5cf..00000000000
--- a/libcxx/test/containers/sequences/array/indexing.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// reference operator[] (size_type)
-// const_reference operator[] (size_type); // constexpr in C++14
-// reference at (size_type)
-// const_reference at (size_type); // constexpr in C++14
-
-#include <array>
-#include <cassert>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 3> C;
- C c = {1, 2, 3.5};
- C::reference r1 = c[0];
- assert(r1 == 1);
- r1 = 5.5;
- assert(c.front() == 5.5);
-
- C::reference r2 = c[2];
- assert(r2 == 3.5);
- r2 = 7.5;
- assert(c.back() == 7.5);
- }
- {
- typedef double T;
- typedef std::array<T, 3> C;
- const C c = {1, 2, 3.5};
- C::const_reference r1 = c[0];
- assert(r1 == 1);
- C::const_reference r2 = c[2];
- assert(r2 == 3.5);
- }
-
-#if _LIBCPP_STD_VER > 11
- {
- typedef double T;
- typedef std::array<T, 3> C;
- constexpr C c = {1, 2, 3.5};
-
- constexpr T t1 = c[0];
- static_assert (t1 == 1, "");
-
- constexpr T t2 = c[2];
- static_assert (t2 == 3.5, "");
- }
-#endif
-
-}
diff --git a/libcxx/test/containers/sequences/array/iterators.pass.cpp b/libcxx/test/containers/sequences/array/iterators.pass.cpp
deleted file mode 100644
index 98997d8c26d..00000000000
--- a/libcxx/test/containers/sequences/array/iterators.pass.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// iterator, const_iterator
-
-#include <array>
-#include <iterator>
-#include <cassert>
-
-int main()
-{
- {
- typedef std::array<int, 5> C;
- C c;
- C::iterator i;
- i = c.begin();
- C::const_iterator j;
- j = c.cbegin();
- assert(i == j);
- }
- {
- typedef std::array<int, 0> C;
- C c;
- C::iterator i;
- i = c.begin();
- C::const_iterator j;
- j = c.cbegin();
- assert(i == j);
- }
-
-#if _LIBCPP_STD_VER > 11
- { // N3644 testing
- {
- typedef std::array<int, 5> C;
- C::iterator ii1{}, ii2{};
- C::iterator ii4 = ii1;
- C::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
- assert ( ii1 == cii );
-
- assert ( !(ii1 != ii2 ));
- assert ( !(ii1 != cii ));
-
- C c;
- assert ( c.begin() == std::begin(c));
- assert ( c.cbegin() == std::cbegin(c));
- assert ( c.rbegin() == std::rbegin(c));
- assert ( c.crbegin() == std::crbegin(c));
- assert ( c.end() == std::end(c));
- assert ( c.cend() == std::cend(c));
- assert ( c.rend() == std::rend(c));
- assert ( c.crend() == std::crend(c));
-
- assert ( std::begin(c) != std::end(c));
- assert ( std::rbegin(c) != std::rend(c));
- assert ( std::cbegin(c) != std::cend(c));
- assert ( std::crbegin(c) != std::crend(c));
- }
- {
- typedef std::array<int, 0> C;
- C::iterator ii1{}, ii2{};
- C::iterator ii4 = ii1;
- C::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
-
- assert (!(ii1 != ii2 ));
-
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
- assert (!(ii1 < cii ));
- assert (!(cii < ii1 ));
- assert ( (ii1 <= cii ));
- assert ( (cii <= ii1 ));
- assert (!(ii1 > cii ));
- assert (!(cii > ii1 ));
- assert ( (ii1 >= cii ));
- assert ( (cii >= ii1 ));
- assert (cii - ii1 == 0);
- assert (ii1 - cii == 0);
-
- C c;
- assert ( c.begin() == std::begin(c));
- assert ( c.cbegin() == std::cbegin(c));
- assert ( c.rbegin() == std::rbegin(c));
- assert ( c.crbegin() == std::crbegin(c));
- assert ( c.end() == std::end(c));
- assert ( c.cend() == std::cend(c));
- assert ( c.rend() == std::rend(c));
- assert ( c.crend() == std::crend(c));
-
- assert ( std::begin(c) == std::end(c));
- assert ( std::rbegin(c) == std::rend(c));
- assert ( std::cbegin(c) == std::cend(c));
- assert ( std::crbegin(c) == std::crend(c));
- }
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/array/types.pass.cpp b/libcxx/test/containers/sequences/array/types.pass.cpp
deleted file mode 100644
index 065ade959d0..00000000000
--- a/libcxx/test/containers/sequences/array/types.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-// template <class T, size_t N >
-// struct array
-// {
-// // types:
-// typedef T& reference;
-// typedef const T& const_reference;
-// typedef implementation defined iterator;
-// typedef implementation defined const_iterator;
-// typedef T value_type;
-// typedef T* pointer;
-// typedef size_t size_type;
-// typedef ptrdiff_t difference_type;
-// typedef T value_type;
-// typedef std::reverse_iterator<iterator> reverse_iterator;
-// typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-
-#include <array>
-#include <iterator>
-#include <type_traits>
-
-int main()
-{
- {
- typedef double T;
- typedef std::array<T, 10> C;
- static_assert((std::is_same<C::reference, T&>::value), "");
- static_assert((std::is_same<C::const_reference, const T&>::value), "");
- static_assert((std::is_same<C::iterator, T*>::value), "");
- static_assert((std::is_same<C::const_iterator, const T*>::value), "");
- static_assert((std::is_same<C::pointer, T*>::value), "");
- static_assert((std::is_same<C::const_pointer, const T*>::value), "");
- static_assert((std::is_same<C::size_type, std::size_t>::value), "");
- static_assert((std::is_same<C::difference_type, std::ptrdiff_t>::value), "");
- static_assert((std::is_same<C::reverse_iterator, std::reverse_iterator<C::iterator> >::value), "");
- static_assert((std::is_same<C::const_reverse_iterator, std::reverse_iterator<C::const_iterator> >::value), "");
- }
- {
- typedef int* T;
- typedef std::array<T, 0> C;
- static_assert((std::is_same<C::reference, T&>::value), "");
- static_assert((std::is_same<C::const_reference, const T&>::value), "");
- static_assert((std::is_same<C::iterator, T*>::value), "");
- static_assert((std::is_same<C::const_iterator, const T*>::value), "");
- static_assert((std::is_same<C::pointer, T*>::value), "");
- static_assert((std::is_same<C::const_pointer, const T*>::value), "");
- static_assert((std::is_same<C::size_type, std::size_t>::value), "");
- static_assert((std::is_same<C::difference_type, std::ptrdiff_t>::value), "");
- static_assert((std::is_same<C::reverse_iterator, std::reverse_iterator<C::iterator> >::value), "");
- static_assert((std::is_same<C::const_reverse_iterator, std::reverse_iterator<C::const_iterator> >::value), "");
- }
-}
diff --git a/libcxx/test/containers/sequences/array/version.pass.cpp b/libcxx/test/containers/sequences/array/version.pass.cpp
deleted file mode 100644
index b89a8dd8cca..00000000000
--- a/libcxx/test/containers/sequences/array/version.pass.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <array>
-
-#include <array>
-
-#ifndef _LIBCPP_VERSION
-#error _LIBCPP_VERSION not defined
-#endif
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.capacity/access.pass.cpp b/libcxx/test/containers/sequences/deque/deque.capacity/access.pass.cpp
deleted file mode 100644
index 77aaf3c131e..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.capacity/access.pass.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// reference operator[](size_type __i);
-// const_reference operator[](size_type __i) const;
-//
-// reference at(size_type __i);
-// const_reference at(size_type __i) const;
-//
-// reference front();
-// const_reference front() const;
-//
-// reference back();
-// const_reference back() const;
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-int main()
-{
- {
- std::deque<int> c = make<std::deque<int> >(10);
- for (unsigned i = 0; i < 10; ++i)
- assert(c[i] == i);
- for (unsigned i = 0; i < 10; ++i)
- assert(c.at(i) == i);
- assert(c.front() == 0);
- assert(c.back() == 9);
- }
- {
- const std::deque<int> c = make<std::deque<int> >(10);
- for (unsigned i = 0; i < 10; ++i)
- assert(c[i] == i);
- for (unsigned i = 0; i < 10; ++i)
- assert(c.at(i) == i);
- assert(c.front() == 0);
- assert(c.back() == 9);
- }
-#if __cplusplus >= 201103L
- {
- std::deque<int, min_allocator<int>> c = make<std::deque<int, min_allocator<int>> >(10);
- for (unsigned i = 0; i < 10; ++i)
- assert(c[i] == i);
- for (unsigned i = 0; i < 10; ++i)
- assert(c.at(i) == i);
- assert(c.front() == 0);
- assert(c.back() == 9);
- }
- {
- const std::deque<int, min_allocator<int>> c = make<std::deque<int, min_allocator<int>> >(10);
- for (unsigned i = 0; i < 10; ++i)
- assert(c[i] == i);
- for (unsigned i = 0; i < 10; ++i)
- assert(c.at(i) == i);
- assert(c.front() == 0);
- assert(c.back() == 9);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp b/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp
deleted file mode 100644
index 8f732a06c7c..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size.pass.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void resize(size_type n);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1, int size)
-{
- typedef typename C::const_iterator CI;
- typename C::size_type c1_osize = c1.size();
- c1.resize(size);
- assert(c1.size() == size);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- CI i = c1.begin();
- for (int j = 0; j < std::min(c1_osize, c1.size()); ++j, ++i)
- assert(*i == j);
- for (int j = c1_osize; j < c1.size(); ++j, ++i)
- assert(*i == 0);
-}
-
-template <class C>
-void
-testN(int start, int N, int M)
-{
- typedef typename C::const_iterator CI;
- C c1 = make<C>(N, start);
- test(c1, M);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>>>(rng[i], rng[j], rng[k]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp
deleted file mode 100644
index 1d1522cbcb3..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void resize(size_type n, const value_type& v);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1, int size, int x)
-{
- typedef typename C::const_iterator CI;
- typename C::size_type c1_osize = c1.size();
- c1.resize(size, x);
- assert(c1.size() == size);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- CI i = c1.begin();
- for (int j = 0; j < std::min(c1_osize, c1.size()); ++j, ++i)
- assert(*i == j);
- for (int j = c1_osize; j < c1.size(); ++j, ++i)
- assert(*i == x);
-}
-
-template <class C>
-void
-testN(int start, int N, int M)
-{
- typedef typename C::const_iterator CI;
- C c1 = make<C>(N, start);
- test(c1, M, -10);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>>>(rng[i], rng[j], rng[k]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp b/libcxx/test/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp
deleted file mode 100644
index 0ac1d5a680c..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void shrink_to_fit();
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1)
-{
- C s = c1;
- c1.shrink_to_fit();
- assert(c1 == s);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- typedef typename C::const_iterator CI;
- C c1 = make<C>(N, start);
- test(c1);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/alloc.pass.cpp
deleted file mode 100644
index 841bfd9f8a7..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/alloc.pass.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// explicit deque(const allocator_type& a);
-
-#include <deque>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "../../../NotConstructible.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test(const Allocator& a)
-{
- std::deque<T, Allocator> d(a);
- assert(d.size() == 0);
- assert(d.get_allocator() == a);
-}
-
-int main()
-{
- test<int>(std::allocator<int>());
- test<NotConstructible>(test_allocator<NotConstructible>(3));
-#if __cplusplus >= 201103L
- test<int>(min_allocator<int>());
- test<NotConstructible>(min_allocator<NotConstructible>{});
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp
deleted file mode 100644
index c760b437244..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void assign(initializer_list<value_type> il);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::deque<int> d;
- d.assign({3, 4, 5, 6});
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::deque<int, min_allocator<int>> d;
- d.assign({3, 4, 5, 6});
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
deleted file mode 100644
index 6594984fc0d..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class InputIterator>
-// void assign(InputIterator f, InputIterator l);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1, const C& c2)
-{
- std::size_t c1_osize = c1.size();
- c1.assign(c2.begin(), c2.end());
- assert(distance(c1.begin(), c1.end()) == c1.size());
- assert(c1 == c2);
-}
-
-template <class C>
-void
-testN(int start, int N, int M)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(c1, c2);
-}
-
-template <class C>
-void
-testI(C& c1, const C& c2)
-{
- typedef typename C::const_iterator CI;
- typedef input_iterator<CI> ICI;
- std::size_t c1_osize = c1.size();
- c1.assign(ICI(c2.begin()), ICI(c2.end()));
- assert(distance(c1.begin(), c1.end()) == c1.size());
- assert(c1 == c2);
-}
-
-template <class C>
-void
-testNI(int start, int N, int M)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- testI(c1, c2);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- testNI<std::deque<int> >(1500, 2000, 1000);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j], rng[k]);
- testNI<std::deque<int, min_allocator<int>> >(1500, 2000, 1000);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
deleted file mode 100644
index fd6dd6e4ab6..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void assign(size_type n, const value_type& v);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1, int size, int v)
-{
- typedef typename C::const_iterator CI;
- std::size_t c1_osize = c1.size();
- c1.assign(size, v);
- assert(c1.size() == size);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- for (CI i = c1.begin(); i != c1.end(); ++i)
- assert(*i == v);
-}
-
-template <class C>
-void
-testN(int start, int N, int M)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- C c1 = make<C>(N, start);
- test(c1, M, -10);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j], rng[k]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/copy.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/copy.pass.cpp
deleted file mode 100644
index fa0c1203ede..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/copy.pass.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(const deque&);
-
-#include <deque>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-void
-test(const C& x)
-{
- C c(x);
- assert(c == x);
-}
-
-int main()
-{
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int>(ab, an));
- }
- {
- std::deque<int, test_allocator<int> > v(3, 2, test_allocator<int>(5));
- std::deque<int, test_allocator<int> > v2 = v;
- assert(v2 == v);
- assert(v2.get_allocator() == v.get_allocator());
- }
-#ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
- {
- std::deque<int, other_allocator<int> > v(3, 2, other_allocator<int>(5));
- std::deque<int, other_allocator<int> > v2 = v;
- assert(v2 == v);
- assert(v2.get_allocator() == other_allocator<int>(-2));
- }
-#endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE
-#if __cplusplus >= 201103L
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int, min_allocator<int>>(ab, an));
- }
- {
- std::deque<int, min_allocator<int> > v(3, 2, min_allocator<int>());
- std::deque<int, min_allocator<int> > v2 = v;
- assert(v2 == v);
- assert(v2.get_allocator() == v.get_allocator());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/copy_alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/copy_alloc.pass.cpp
deleted file mode 100644
index efea4948eba..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/copy_alloc.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(const deque& c, const allocator_type& a);
-
-#include <deque>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-void
-test(const C& x, const typename C::allocator_type& a)
-{
- C c(x, a);
- assert(c == x);
- assert(c.get_allocator() == a);
-}
-
-int main()
-{
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int, test_allocator<int> >(ab, an, test_allocator<int>(3)),
- test_allocator<int>(4));
- }
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int, other_allocator<int> >(ab, an, other_allocator<int>(3)),
- other_allocator<int>(4));
- }
-#if __cplusplus >= 201103L
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int, min_allocator<int> >(ab, an, min_allocator<int>()),
- min_allocator<int>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp
deleted file mode 100644
index b725dade70b..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque()
-
-#include <deque>
-#include <cassert>
-
-#include "../../../stack_allocator.h"
-#include "../../../NotConstructible.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test()
-{
- std::deque<T, Allocator> d;
- assert(d.size() == 0);
-#if __cplusplus >= 201103L
- std::deque<T, Allocator> d1 = {};
- assert(d1.size() == 0);
-#endif
-}
-
-int main()
-{
- test<int, std::allocator<int> >();
- test<NotConstructible, stack_allocator<NotConstructible, 1> >();
-#if __cplusplus >= 201103L
- test<int, min_allocator<int> >();
- test<NotConstructible, min_allocator<NotConstructible> >();
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp
deleted file mode 100644
index 3605a1b636f..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque()
-// noexcept(is_nothrow_default_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::deque<MoveOnly> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
deleted file mode 100644
index 0f459b2c919..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// ~deque() // implied noexcept;
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-#if __has_feature(cxx_noexcept)
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
- ~some_alloc() noexcept(false);
-};
-
-#endif
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::deque<MoveOnly> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_destructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/initializer_list.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/initializer_list.pass.cpp
deleted file mode 100644
index a9e0218e2e0..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/initializer_list.pass.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(initializer_list<value_type> il);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::deque<int> d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::deque<int, min_allocator<int>> d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp
deleted file mode 100644
index 36c5af60ee3..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(initializer_list<value_type> il, const Allocator& a = allocator_type());
-
-#include <deque>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::deque<int, test_allocator<int>> d({3, 4, 5, 6}, test_allocator<int>(3));
- assert(d.get_allocator() == test_allocator<int>(3));
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::deque<int, min_allocator<int>> d({3, 4, 5, 6}, min_allocator<int>());
- assert(d.get_allocator() == min_allocator<int>());
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
deleted file mode 100644
index faadf2b1a1d..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class InputIterator> deque(InputIterator f, InputIterator l);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../stack_allocator.h"
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class InputIterator>
-void
-test(InputIterator f, InputIterator l)
-{
- typedef typename std::iterator_traits<InputIterator>::value_type T;
- typedef std::allocator<T> Allocator;
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- C d(f, l);
- assert(d.size() == std::distance(f, l));
- assert(distance(d.begin(), d.end()) == d.size());
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i, ++f)
- assert(*i == *f);
-}
-
-template <class Allocator, class InputIterator>
-void
-test(InputIterator f, InputIterator l)
-{
- typedef typename std::iterator_traits<InputIterator>::value_type T;
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- C d(f, l);
- assert(d.size() == std::distance(f, l));
- assert(distance(d.begin(), d.end()) == d.size());
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i, ++f)
- assert(*i == *f);
-}
-
-int main()
-{
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(input_iterator<const int*>(ab), input_iterator<const int*>(an));
- test(forward_iterator<const int*>(ab), forward_iterator<const int*>(an));
- test(bidirectional_iterator<const int*>(ab), bidirectional_iterator<const int*>(an));
- test(random_access_iterator<const int*>(ab), random_access_iterator<const int*>(an));
- test<stack_allocator<int, 4096> >(ab, an);
-#if __cplusplus >= 201103L
- test<min_allocator<int> >(ab, an);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
deleted file mode 100644
index b8c3e889929..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class InputIterator>
-// deque(InputIterator f, InputIterator l, const allocator_type& a);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class InputIterator, class Allocator>
-void
-test(InputIterator f, InputIterator l, const Allocator& a)
-{
- typedef typename std::iterator_traits<InputIterator>::value_type T;
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- C d(f, l, a);
- assert(d.get_allocator() == a);
- assert(d.size() == std::distance(f, l));
- assert(distance(d.begin(), d.end()) == d.size());
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i, ++f)
- assert(*i == *f);
-}
-
-int main()
-{
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(input_iterator<const int*>(ab), input_iterator<const int*>(an), test_allocator<int>(3));
- test(forward_iterator<const int*>(ab), forward_iterator<const int*>(an), test_allocator<int>(4));
- test(bidirectional_iterator<const int*>(ab), bidirectional_iterator<const int*>(an), test_allocator<int>(5));
- test(random_access_iterator<const int*>(ab), random_access_iterator<const int*>(an), test_allocator<int>(6));
-#if __cplusplus >= 201103L
- test(input_iterator<const int*>(ab), input_iterator<const int*>(an), min_allocator<int>());
- test(forward_iterator<const int*>(ab), forward_iterator<const int*>(an), min_allocator<int>());
- test(bidirectional_iterator<const int*>(ab), bidirectional_iterator<const int*>(an), min_allocator<int>());
- test(random_access_iterator<const int*>(ab), random_access_iterator<const int*>(an), min_allocator<int>());
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/move.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/move.pass.cpp
deleted file mode 100644
index a20ad4cecbd..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/move.pass.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(deque&&);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef test_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(1));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(2));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() == 0);
- assert(c3.get_allocator() == c1.get_allocator());
- }
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef other_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(1));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(2));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() == 0);
- assert(c3.get_allocator() == c1.get_allocator());
- }
-#if __cplusplus >= 201103L
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef min_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A{});
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A{});
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() == 0);
- assert(c3.get_allocator() == c1.get_allocator());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/move_alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/move_alloc.pass.cpp
deleted file mode 100644
index 0ba4a2da330..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/move_alloc.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(deque&& c, const allocator_type& a);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef test_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(1));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(1));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(std::move(c1), A(3));
- assert(c2 == c3);
- assert(c3.get_allocator() == A(3));
- assert(c1.size() != 0);
- }
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef test_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(1));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(1));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(std::move(c1), A(1));
- assert(c2 == c3);
- assert(c3.get_allocator() == A(1));
- assert(c1.size() == 0);
- }
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef other_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(1));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(1));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(std::move(c1), A(3));
- assert(c2 == c3);
- assert(c3.get_allocator() == A(3));
- assert(c1.size() != 0);
- }
-#if __cplusplus >= 201103L
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef min_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A{});
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A{});
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(std::move(c1), A());
- assert(c2 == c3);
- assert(c3.get_allocator() == A());
- assert(c1.size() == 0);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp
deleted file mode 100644
index bb01dc5c54b..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/move_assign.pass.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque& operator=(deque&& c);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef test_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(5));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(5));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(A(5));
- c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() == 0);
- assert(c3.get_allocator() == A(5));
- }
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef test_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(5));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(5));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(A(6));
- c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() != 0);
- assert(c3.get_allocator() == A(6));
- }
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef other_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A(5));
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A(5));
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(A(6));
- c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() == 0);
- assert(c3.get_allocator() == A(5));
- }
-#if __cplusplus >= 201103L
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- typedef min_allocator<MoveOnly> A;
- std::deque<MoveOnly, A> c1(A{});
- for (int* p = ab; p < an; ++p)
- c1.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c2(A{});
- for (int* p = ab; p < an; ++p)
- c2.push_back(MoveOnly(*p));
- std::deque<MoveOnly, A> c3(A{});
- c3 = std::move(c1);
- assert(c2 == c3);
- assert(c1.size() == 0);
- assert(c3.get_allocator() == A());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
deleted file mode 100644
index c2bb40a8b6f..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque& operator=(deque&& c)
-// noexcept(
-// allocator_type::propagate_on_container_move_assignment::value &&
-// is_nothrow_move_assignable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::deque<MoveOnly> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp
deleted file mode 100644
index 36f780703c0..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(deque&&)
-// noexcept(is_nothrow_move_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::deque<MoveOnly> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/op_equal.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/op_equal.pass.cpp
deleted file mode 100644
index 3a6ec8370b8..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/op_equal.pass.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque& operator=(const deque& c);
-
-#include <deque>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-void
-test(const C& x)
-{
- C c;
- c = x;
- assert(c == x);
-}
-
-int main()
-{
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int>(ab, an));
- }
- {
- std::deque<int, test_allocator<int> > l(3, 2, test_allocator<int>(5));
- std::deque<int, test_allocator<int> > l2(l, test_allocator<int>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<int>(3));
- }
- {
- std::deque<int, other_allocator<int> > l(3, 2, other_allocator<int>(5));
- std::deque<int, other_allocator<int> > l2(l, other_allocator<int>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<int>(5));
- }
-#if __cplusplus >= 201103L
- {
- int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};
- int* an = ab + sizeof(ab)/sizeof(ab[0]);
- test(std::deque<int, min_allocator<int>>(ab, an));
- }
- {
- std::deque<int, min_allocator<int> > l(3, 2, min_allocator<int>());
- std::deque<int, min_allocator<int> > l2(l, min_allocator<int>());
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<int>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp
deleted file mode 100644
index 6468e4329bd..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque& operator=(initializer_list<value_type> il);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::deque<int> d;
- d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::deque<int, min_allocator<int>> d;
- d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/size.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/size.pass.cpp
deleted file mode 100644
index d2e324b0e3f..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/size.pass.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// explicit deque(size_type n);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../stack_allocator.h"
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test2(unsigned n)
-{
-#if _LIBCPP_STD_VER > 11
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- assert(DefaultOnly::count == 0);
- {
- C d(n, Allocator());
- assert(DefaultOnly::count == n);
- assert(d.size() == n);
- assert(distance(d.begin(), d.end()) == d.size());
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i)
- assert(*i == T());
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
- }
- assert(DefaultOnly::count == 0);
-#endif
-}
-
-template <class T, class Allocator>
-void
-test1(unsigned n)
-{
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- assert(DefaultOnly::count == 0);
- {
- C d(n);
- assert(DefaultOnly::count == n);
- assert(d.size() == n);
- assert(distance(d.begin(), d.end()) == d.size());
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i)
- assert(*i == T());
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
- }
- assert(DefaultOnly::count == 0);
-}
-
-template <class T, class Allocator>
-void
-test3(unsigned n, Allocator const &alloc = Allocator())
-{
-#if _LIBCPP_STD_VER > 11
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- {
- C d(n, alloc);
- assert(d.size() == n);
- assert(d.get_allocator() == alloc);
- }
-#endif
-}
-
-template <class T, class Allocator>
-void
-test(unsigned n)
-{
- test1<T, Allocator> ( n );
- test2<T, Allocator> ( n );
-}
-
-int main()
-{
- test<DefaultOnly, std::allocator<DefaultOnly> >(0);
- test<DefaultOnly, std::allocator<DefaultOnly> >(1);
- test<DefaultOnly, std::allocator<DefaultOnly> >(10);
- test<DefaultOnly, std::allocator<DefaultOnly> >(1023);
- test<DefaultOnly, std::allocator<DefaultOnly> >(1024);
- test<DefaultOnly, std::allocator<DefaultOnly> >(1025);
- test<DefaultOnly, std::allocator<DefaultOnly> >(2047);
- test<DefaultOnly, std::allocator<DefaultOnly> >(2048);
- test<DefaultOnly, std::allocator<DefaultOnly> >(2049);
- test<DefaultOnly, std::allocator<DefaultOnly> >(4095);
- test<DefaultOnly, std::allocator<DefaultOnly> >(4096);
- test<DefaultOnly, std::allocator<DefaultOnly> >(4097);
-
- test1<DefaultOnly, stack_allocator<DefaultOnly, 4096> >(4095);
-
-#if __cplusplus >= 201103L
- test<DefaultOnly, min_allocator<DefaultOnly> >(4095);
-#endif
-
-#if _LIBCPP_STD_VER > 11
- test3<DefaultOnly, std::allocator<DefaultOnly>> (1023);
- test3<int, std::allocator<int>>(1);
- test3<int, min_allocator<int>> (3);
-#endif
-
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/size_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/size_value.pass.cpp
deleted file mode 100644
index 859deba1e1a..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/size_value.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(size_type n, const value_type& v);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test(unsigned n, const T& x)
-{
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- C d(n, x);
- assert(d.size() == n);
- assert(distance(d.begin(), d.end()) == d.size());
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i)
- assert(*i == x);
-}
-
-int main()
-{
- test<int, std::allocator<int> >(0, 5);
- test<int, std::allocator<int> >(1, 10);
- test<int, std::allocator<int> >(10, 11);
- test<int, std::allocator<int> >(1023, -11);
- test<int, std::allocator<int> >(1024, 25);
- test<int, std::allocator<int> >(1025, 0);
- test<int, std::allocator<int> >(2047, 110);
- test<int, std::allocator<int> >(2048, -500);
- test<int, std::allocator<int> >(2049, 654);
- test<int, std::allocator<int> >(4095, 78);
- test<int, std::allocator<int> >(4096, 1165);
- test<int, std::allocator<int> >(4097, 157);
- test<int, stack_allocator<int, 4096> >(4095, 90);
-#if __cplusplus >= 201103L
- test<int, min_allocator<int> >(4095, 90);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp
deleted file mode 100644
index 5693be702de..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// deque(size_type n, const value_type& v, const allocator_type& a);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test(unsigned n, const T& x, const Allocator& a)
-{
- typedef std::deque<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- C d(n, x, a);
- assert(d.get_allocator() == a);
- assert(d.size() == n);
- assert(distance(d.begin(), d.end()) == d.size());
- for (const_iterator i = d.begin(), e = d.end(); i != e; ++i)
- assert(*i == x);
-}
-
-int main()
-{
- {
- std::allocator<int> a;
- test(0, 5, a);
- test(1, 10, a);
- test(10, 11, a);
- test(1023, -11, a);
- test(1024, 25, a);
- test(1025, 0, a);
- test(2047, 110, a);
- test(2048, -500, a);
- test(2049, 654, a);
- test(4095, 78, a);
- test(4096, 1165, a);
- test(4097, 157, a);
- }
-#if __cplusplus >= 201103L
- {
- min_allocator<int> a;
- test(0, 5, a);
- test(1, 10, a);
- test(10, 11, a);
- test(1023, -11, a);
- test(1024, 25, a);
- test(1025, 0, a);
- test(2047, 110, a);
- test(2048, -500, a);
- test(2049, 654, a);
- test(4095, 78, a);
- test(4096, 1165, a);
- test(4097, 157, a);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/emplace.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/emplace.pass.cpp
deleted file mode 100644
index 806f7280332..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/emplace.pass.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class... Args> iterator emplace(const_iterator p, Args&&... args);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../Emplaceable.h"
-#include "min_allocator.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(Emplaceable());
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- std::size_t c1_osize = c1.size();
- CI i = c1.emplace(c1.begin() + P, Emplaceable(1, 2.5));
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- assert(*i == Emplaceable(1, 2.5));
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- for (int i = 0; i <= 3; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1);
- }
- }
- for (int i = N/2-1; i <= N/2+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1);
- }
- }
- for (int i = N - 3; i <= N; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1);
- }
- }
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<Emplaceable> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<Emplaceable, min_allocator<Emplaceable>> >(rng[i], rng[j]);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp
deleted file mode 100644
index aa977eb84bf..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class... Args> void emplace_back(Args&&... args);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../Emplaceable.h"
-#include "min_allocator.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(Emplaceable());
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1)
-{
- typedef typename C::iterator I;
- std::size_t c1_osize = c1.size();
- c1.emplace_back(Emplaceable(1, 2.5));
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- I i = c1.end();
- assert(*--i == Emplaceable(1, 2.5));
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- C c1 = make<C>(N, start);
- test(c1);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<Emplaceable> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<Emplaceable, min_allocator<Emplaceable>> >(rng[i], rng[j]);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp
deleted file mode 100644
index cf09d6e19b6..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class... Args> void emplace_front(Args&&... args);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../Emplaceable.h"
-#include "min_allocator.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(Emplaceable());
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1)
-{
- typedef typename C::iterator I;
- std::size_t c1_osize = c1.size();
- c1.emplace_front(Emplaceable(1, 2.5));
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- I i = c1.begin();
- assert(*i == Emplaceable(1, 2.5));
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- C c1 = make<C>(N, start);
- test(c1);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<Emplaceable> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<Emplaceable, min_allocator<Emplaceable>> >(rng[i], rng[j]);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp
deleted file mode 100644
index bfab2a3a4fc..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// iterator erase(const_iterator p)
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1)
-{
- typedef typename C::iterator I;
- assert(P < c1.size());
- std::size_t c1_osize = c1.size();
- I i = c1.erase(c1.cbegin() + P);
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize - 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- int j = 0;
- for (; j < P; ++j, ++i)
- assert(*i == j);
- for (++j; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- int pstep = std::max(N / std::max(std::min(N, 10), 1), 1);
- for (int p = 0; p < N; p += pstep)
- {
- C c1 = make<C>(N, start);
- test(p, c1);
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp
deleted file mode 100644
index 6e937ac0c4e..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// REQUIRES: long_tests
-
-// <deque>
-
-// iterator erase(const_iterator f, const_iterator l)
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1, int size)
-{
- typedef typename C::iterator I;
- assert(P + size <= c1.size());
- std::size_t c1_osize = c1.size();
- I i = c1.erase(c1.cbegin() + P, c1.cbegin() + (P + size));
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize - size);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- int j = 0;
- for (; j < P; ++j, ++i)
- assert(*i == j);
- for (j += size; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- int pstep = std::max(N / std::max(std::min(N, 10), 1), 1);
- for (int p = 0; p <= N; p += pstep)
- {
- int sstep = std::max((N - p) / std::max(std::min(N - p, 10), 1), 1);
- for (int s = 0; s <= N - p; s += sstep)
- {
- C c1 = make<C>(N, start);
- test(p, c1, s);
- }
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_initializer_list.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_initializer_list.pass.cpp
deleted file mode 100644
index 5f7804023c7..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_initializer_list.pass.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// iterator insert(const_iterator p, initializer_list<value_type> il);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::deque<int> d(10, 1);
- std::deque<int>::iterator i = d.insert(d.cbegin() + 2, {3, 4, 5, 6});
- assert(d.size() == 14);
- assert(i == d.begin() + 2);
- assert(d[0] == 1);
- assert(d[1] == 1);
- assert(d[2] == 3);
- assert(d[3] == 4);
- assert(d[4] == 5);
- assert(d[5] == 6);
- assert(d[6] == 1);
- assert(d[7] == 1);
- assert(d[8] == 1);
- assert(d[9] == 1);
- assert(d[10] == 1);
- assert(d[11] == 1);
- assert(d[12] == 1);
- assert(d[13] == 1);
- }
- {
- std::deque<int, min_allocator<int>> d(10, 1);
- std::deque<int, min_allocator<int>>::iterator i = d.insert(d.cbegin() + 2, {3, 4, 5, 6});
- assert(d.size() == 14);
- assert(i == d.begin() + 2);
- assert(d[0] == 1);
- assert(d[1] == 1);
- assert(d[2] == 3);
- assert(d[3] == 4);
- assert(d[4] == 5);
- assert(d[5] == 6);
- assert(d[6] == 1);
- assert(d[7] == 1);
- assert(d[8] == 1);
- assert(d[9] == 1);
- assert(d[10] == 1);
- assert(d[11] == 1);
- assert(d[12] == 1);
- assert(d[13] == 1);
- }
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
deleted file mode 100644
index 2bc37c34ce4..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// REQUIRES: long_tests
-
-// <deque>
-
-// template <class InputIterator>
-// iterator insert (const_iterator p, InputIterator f, InputIterator l);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "../../../MoveOnly.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1, const C& c2)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- typedef bidirectional_iterator<CI> BCI;
- std::size_t c1_osize = c1.size();
- CI i = c1.insert(c1.begin() + P, BCI(c2.begin()), BCI(c2.end()));
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize + c2.size());
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- for (int j = 0; j < P; ++j, ++i)
- assert(*i == j);
- for (int j = 0; j < c2.size(); ++j, ++i)
- assert(*i == j);
- for (int j = P; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N, int M)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- for (int i = 0; i <= 3; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(i, c1, c2);
- }
- }
- for (int i = M-1; i <= M+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(i, c1, c2);
- }
- }
- for (int i = N/2-1; i <= N/2+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(i, c1, c2);
- }
- }
- for (int i = N - M - 1; i <= N - M + 1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(i, c1, c2);
- }
- }
- for (int i = N - M - 1; i <= N - M + 1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(i, c1, c2);
- }
- }
- for (int i = N - 3; i <= N; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- test(i, c1, c2);
- }
- }
-}
-
-template <class C>
-void
-testI(int P, C& c1, const C& c2)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- typedef input_iterator<CI> ICI;
- std::size_t c1_osize = c1.size();
- CI i = c1.insert(c1.begin() + P, ICI(c2.begin()), ICI(c2.end()));
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize + c2.size());
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- for (int j = 0; j < P; ++j, ++i)
- assert(*i == j);
- for (int j = 0; j < c2.size(); ++j, ++i)
- assert(*i == j);
- for (int j = P; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testNI(int start, int N, int M)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- for (int i = 0; i <= 3; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- testI(i, c1, c2);
- }
- }
- for (int i = M-1; i <= M+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- testI(i, c1, c2);
- }
- }
- for (int i = N/2-1; i <= N/2+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- testI(i, c1, c2);
- }
- }
- for (int i = N - M - 1; i <= N - M + 1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- testI(i, c1, c2);
- }
- }
- for (int i = N - 3; i <= N; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- testI(i, c1, c2);
- }
- }
-}
-
-template <class C>
-void
-test_move()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- C c;
- typedef typename C::const_iterator CI;
- {
- MoveOnly mo(0);
- typedef MoveOnly* I;
- c.insert(c.end(), std::move_iterator<I>(&mo), std::move_iterator<I>(&mo+1));
- }
- int j = 0;
- for (CI i = c.begin(); i != c.end(); ++i, ++j)
- assert(*i == MoveOnly(j));
- {
- MoveOnly mo(1);
- typedef input_iterator<MoveOnly*> I;
- c.insert(c.end(), std::move_iterator<I>(I(&mo)), std::move_iterator<I>(I(&mo+1)));
- }
- j = 0;
- for (CI i = c.begin(); i != c.end(); ++i, ++j)
- assert(*i == MoveOnly(j));
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- testNI<std::deque<int> >(1500, 2000, 1000);
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- test_move<std::deque<MoveOnly, stack_allocator<MoveOnly, 2000> > >();
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j], rng[k]);
- testNI<std::deque<int> >(1500, 2000, 1000);
- test_move<std::deque<MoveOnly, min_allocator<MoveOnly> > >();
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp
deleted file mode 100644
index 0bde7d9b7e3..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// iterator insert (const_iterator p, value_type&& v);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(MoveOnly(i));
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1, int x)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- std::size_t c1_osize = c1.size();
- CI i = c1.insert(c1.begin() + P, MoveOnly(x));
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- for (int j = 0; j < P; ++j, ++i)
- assert(*i == MoveOnly(j));
- assert(*i == MoveOnly(x));
- ++i;
- for (int j = P; j < c1_osize; ++j, ++i)
- assert(*i == MoveOnly(j));
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- for (int i = 0; i <= 3; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, -10);
- }
- }
- for (int i = N/2-1; i <= N/2+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, -10);
- }
- }
- for (int i = N - 3; i <= N; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, -10);
- }
- }
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<MoveOnly> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<MoveOnly, min_allocator<MoveOnly>> >(rng[i], rng[j]);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp
deleted file mode 100644
index 3e7767209e5..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// REQUIRES: long_tests
-
-// <deque>
-
-// iterator insert (const_iterator p, size_type n, const value_type& v);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1, int size, int x)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- std::size_t c1_osize = c1.size();
- CI i = c1.insert(c1.begin() + P, size, x);
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize + size);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- for (int j = 0; j < P; ++j, ++i)
- assert(*i == j);
- for (int j = 0; j < size; ++j, ++i)
- assert(*i == x);
- for (int j = P; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N, int M)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- for (int i = 0; i <= 3; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, M, -10);
- }
- }
- for (int i = M-1; i <= M+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, M, -10);
- }
- }
- for (int i = N/2-1; i <= N/2+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, M, -10);
- }
- }
- for (int i = N - M - 1; i <= N - M + 1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, M, -10);
- }
- }
- for (int i = N - 3; i <= N; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, M, -10);
- }
- }
-}
-
-template <class C>
-void
-self_reference_test()
-{
- typedef typename C::const_iterator CI;
- for (int i = 0; i < 20; ++i)
- {
- for (int j = 0; j < 20; ++j)
- {
- C c = make<C>(20);
- CI it = c.cbegin() + i;
- CI jt = c.cbegin() + j;
- c.insert(it, 5, *jt);
- assert(c.size() == 25);
- assert(distance(c.begin(), c.end()) == c.size());
- it = c.cbegin();
- for (int k = 0; k < i; ++k, ++it)
- assert(*it == k);
- for (int k = 0; k < 5; ++k, ++it)
- assert(*it == j);
- for (int k = i; k < 20; ++k, ++it)
- assert(*it == k);
- }
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- self_reference_test<std::deque<int> >();
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j], rng[k]);
- self_reference_test<std::deque<int, min_allocator<int>> >();
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp
deleted file mode 100644
index 97827c1183a..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// iterator insert (const_iterator p, const value_type& v);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(int P, C& c1, int x)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- std::size_t c1_osize = c1.size();
- CI i = c1.insert(c1.begin() + P, x);
- assert(i == c1.begin() + P);
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- i = c1.begin();
- for (int j = 0; j < P; ++j, ++i)
- assert(*i == j);
- assert(*i == x);
- ++i;
- for (int j = P; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- for (int i = 0; i <= 3; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, -10);
- }
- }
- for (int i = N/2-1; i <= N/2+1; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, -10);
- }
- }
- for (int i = N - 3; i <= N; ++i)
- {
- if (0 <= i && i <= N)
- {
- C c1 = make<C>(N, start);
- test(i, c1, -10);
- }
- }
-}
-
-template <class C>
-void
-self_reference_test()
-{
- typedef typename C::const_iterator CI;
- for (int i = 0; i < 20; ++i)
- {
- for (int j = 0; j < 20; ++j)
- {
- C c = make<C>(20);
- CI it = c.cbegin() + i;
- CI jt = c.cbegin() + j;
- c.insert(it, *jt);
- assert(c.size() == 21);
- assert(distance(c.begin(), c.end()) == c.size());
- it = c.cbegin();
- for (int k = 0; k < i; ++k, ++it)
- assert(*it == k);
- assert(*it == j);
- ++it;
- for (int k = i; k < 20; ++k, ++it)
- assert(*it == k);
- }
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- self_reference_test<std::deque<int> >();
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- self_reference_test<std::deque<int, min_allocator<int>> >();
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp
deleted file mode 100644
index e642f7132f5..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void pop_back()
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1)
-{
- typedef typename C::iterator I;
- std::size_t c1_osize = c1.size();
- c1.pop_back();
- assert(c1.size() == c1_osize - 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- I i = c1.begin();
- for (int j = 0; j < c1.size(); ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- if (N != 0)
- {
- C c1 = make<C>(N, start);
- test(c1);
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp
deleted file mode 100644
index e27edf51f79..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void pop_front()
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1)
-{
- typedef typename C::iterator I;
- std::size_t c1_osize = c1.size();
- c1.pop_front();
- assert(c1.size() == c1_osize - 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- I i = c1.begin();
- for (int j = 1; j < c1.size(); ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- if (N != 0)
- {
- C c1 = make<C>(N, start);
- test(c1);
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp
deleted file mode 100644
index 444ab9ba955..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void push_back(const value_type& v);
-// void pop_back();
-// void pop_front();
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void test(int size)
-{
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int j = 0; j < N; ++j)
- {
- C c = make<C>(size, rng[j]);
- typename C::const_iterator it = c.begin();
- for (int i = 0; i < size; ++i, ++it)
- assert(*it == i);
- }
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049, 4094, 4095, 4096};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int j = 0; j < N; ++j)
- test<std::deque<int> >(rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049, 4094, 4095, 4096};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int j = 0; j < N; ++j)
- test<std::deque<int, min_allocator<int>> >(rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp
deleted file mode 100644
index 3e628791a9f..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void push_back(const value_type& x);
-
-#include <deque>
-#include <cassert>
-
-// Flag that makes the copy constructor for CMyClass throw an exception
-static bool gCopyConstructorShouldThow = false;
-
-
-class CMyClass {
- public: CMyClass(int tag);
- public: CMyClass(const CMyClass& iOther);
- public: ~CMyClass();
-
- bool equal(const CMyClass &rhs) const
- { return fTag == rhs.fTag && fMagicValue == rhs.fMagicValue; }
- private:
- int fMagicValue;
- int fTag;
-
- private: static int kStartedConstructionMagicValue;
- private: static int kFinishedConstructionMagicValue;
-};
-
-// Value for fMagicValue when the constructor has started running, but not yet finished
-int CMyClass::kStartedConstructionMagicValue = 0;
-// Value for fMagicValue when the constructor has finished running
-int CMyClass::kFinishedConstructionMagicValue = 12345;
-
-CMyClass::CMyClass(int tag) :
- fMagicValue(kStartedConstructionMagicValue), fTag(tag)
-{
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::CMyClass(const CMyClass& iOther) :
- fMagicValue(kStartedConstructionMagicValue), fTag(iOther.fTag)
-{
- // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
- if (gCopyConstructorShouldThow) {
- throw std::exception();
- }
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::~CMyClass() {
- // Only instances for which the constructor has finished running should be destructed
- assert(fMagicValue == kFinishedConstructionMagicValue);
-}
-
-bool operator==(const CMyClass &lhs, const CMyClass &rhs) { return lhs.equal(rhs); }
-
-int main()
-{
- CMyClass instance(42);
- std::deque<CMyClass> vec;
-
- vec.push_back(instance);
- std::deque<CMyClass> vec2(vec);
-
- gCopyConstructorShouldThow = true;
- try {
- vec.push_back(instance);
- }
- catch (...) {
- assert(vec==vec2);
- }
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp
deleted file mode 100644
index d6c44391477..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void push_back(value_type&& v);
-// void pop_back();
-// void pop_front();
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(MoveOnly(i));
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void test(int size)
-{
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int j = 0; j < N; ++j)
- {
- C c = make<C>(size, rng[j]);
- typename C::const_iterator it = c.begin();
- for (int i = 0; i < size; ++i, ++it)
- assert(*it == MoveOnly(i));
- }
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049, 4094, 4095, 4096};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int j = 0; j < N; ++j)
- test<std::deque<MoveOnly> >(rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049, 4094, 4095, 4096};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int j = 0; j < N; ++j)
- test<std::deque<MoveOnly, min_allocator<MoveOnly>> >(rng[j]);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_front.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_front.pass.cpp
deleted file mode 100644
index 700edd3abdb..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_front.pass.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void push_front(const value_type& v);
-
-#include <deque>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1, int x)
-{
- typedef typename C::iterator I;
- std::size_t c1_osize = c1.size();
- c1.push_front(x);
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- I i = c1.begin();
- assert(*i == x);
- ++i;
- for (int j = 0; j < c1_osize; ++j, ++i)
- assert(*i == j);
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- C c1 = make<C>(N, start);
- test(c1, -10);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp
deleted file mode 100644
index 6ae06db0bca..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void push_front(const value_type& x);
-
-#include <deque>
-#include <cassert>
-
-// Flag that makes the copy constructor for CMyClass throw an exception
-static bool gCopyConstructorShouldThow = false;
-
-
-class CMyClass {
- public: CMyClass(int tag);
- public: CMyClass(const CMyClass& iOther);
- public: ~CMyClass();
-
- bool equal(const CMyClass &rhs) const
- { return fTag == rhs.fTag && fMagicValue == rhs.fMagicValue; }
- private:
- int fMagicValue;
- int fTag;
-
- private: static int kStartedConstructionMagicValue;
- private: static int kFinishedConstructionMagicValue;
-};
-
-// Value for fMagicValue when the constructor has started running, but not yet finished
-int CMyClass::kStartedConstructionMagicValue = 0;
-// Value for fMagicValue when the constructor has finished running
-int CMyClass::kFinishedConstructionMagicValue = 12345;
-
-CMyClass::CMyClass(int tag) :
- fMagicValue(kStartedConstructionMagicValue), fTag(tag)
-{
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::CMyClass(const CMyClass& iOther) :
- fMagicValue(kStartedConstructionMagicValue), fTag(iOther.fTag)
-{
- // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
- if (gCopyConstructorShouldThow) {
- throw std::exception();
- }
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::~CMyClass() {
- // Only instances for which the constructor has finished running should be destructed
- assert(fMagicValue == kFinishedConstructionMagicValue);
-}
-
-bool operator==(const CMyClass &lhs, const CMyClass &rhs) { return lhs.equal(rhs); }
-
-int main()
-{
- CMyClass instance(42);
- std::deque<CMyClass> vec;
-
- vec.push_front(instance);
- std::deque<CMyClass> vec2(vec);
-
- gCopyConstructorShouldThow = true;
- try {
- vec.push_front(instance);
- }
- catch (...) {
- assert(vec==vec2);
- }
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp
deleted file mode 100644
index 1670a44aa07..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void push_front(value_type&& v);
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(MoveOnly(i));
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void
-test(C& c1, int x)
-{
- typedef typename C::iterator I;
- std::size_t c1_osize = c1.size();
- c1.push_front(MoveOnly(x));
- assert(c1.size() == c1_osize + 1);
- assert(distance(c1.begin(), c1.end()) == c1.size());
- I i = c1.begin();
- assert(*i == MoveOnly(x));
- ++i;
- for (int j = 0; j < c1_osize; ++j, ++i)
- assert(*i == MoveOnly(j));
-}
-
-template <class C>
-void
-testN(int start, int N)
-{
- C c1 = make<C>(N, start);
- test(c1, -10);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<MoveOnly> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<MoveOnly, min_allocator<MoveOnly>> >(rng[i], rng[j]);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp
deleted file mode 100644
index 7dfb4bc5c2d..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// Optimization for deque::iterators
-
-// template <class InputIterator, class OutputIterator>
-// OutputIterator
-// copy(InputIterator first, InputIterator last, OutputIterator result);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- typedef random_access_iterator<I> RAI;
- typedef random_access_iterator<CI> RACI;
- typedef input_iterator<CI> ICI;
- C c1 = make<C>(N, start);
- C c2 = make<C>(N);
- assert(std::copy(c1.cbegin(), c1.cend(), c2.begin()) == c2.end());
- assert(c1 == c2);
- assert(std::copy(c2.cbegin(), c2.cend(), c1.begin()) == c1.end());
- assert(c1 == c2);
- assert(std::copy(c1.cbegin(), c1.cend(), RAI(c2.begin())) == RAI(c2.end()));
- assert(c1 == c2);
- assert(std::copy(c2.cbegin(), c2.cend(), RAI(c1.begin())) == RAI(c1.end()));
- assert(c1 == c2);
- assert(std::copy(RACI(c1.cbegin()), RACI(c1.cend()), c2.begin()) == c2.end());
- assert(c1 == c2);
- assert(std::copy(ICI(c2.cbegin()), ICI(c2.cend()), c1.begin()) == c1.end());
- assert(c1 == c2);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp
deleted file mode 100644
index b484a865c57..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// Optimization for deque::iterators
-
-// template <class InputIterator, class OutputIterator>
-// OutputIterator
-// copy_backward(InputIterator first, InputIterator last, OutputIterator result);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- typedef random_access_iterator<I> RAI;
- typedef random_access_iterator<CI> RACI;
- C c1 = make<C>(N, start);
- C c2 = make<C>(N);
- assert(std::copy_backward(c1.cbegin(), c1.cend(), c2.end()) == c2.begin());
- assert(c1 == c2);
- assert(std::copy_backward(c2.cbegin(), c2.cend(), c1.end()) == c1.begin());
- assert(c1 == c2);
- assert(std::copy_backward(c1.cbegin(), c1.cend(), RAI(c2.end())) == RAI(c2.begin()));
- assert(c1 == c2);
- assert(std::copy_backward(c2.cbegin(), c2.cend(), RAI(c1.end())) == RAI(c1.begin()));
- assert(c1 == c2);
- assert(std::copy_backward(RACI(c1.cbegin()), RACI(c1.cend()), c2.end()) == c2.begin());
- assert(c1 == c2);
- assert(std::copy_backward(RACI(c2.cbegin()), RACI(c2.cend()), c1.end()) == c1.begin());
- assert(c1 == c2);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp
deleted file mode 100644
index b100ba487ea..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// Optimization for deque::iterators
-
-// template <class InputIterator, class OutputIterator>
-// OutputIterator
-// move(InputIterator first, InputIterator last, OutputIterator result);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- typedef random_access_iterator<I> RAI;
- typedef random_access_iterator<CI> RACI;
- C c1 = make<C>(N, start);
- C c2 = make<C>(N);
- assert(std::move(c1.cbegin(), c1.cend(), c2.begin()) == c2.end());
- assert(c1 == c2);
- assert(std::move(c2.cbegin(), c2.cend(), c1.begin()) == c1.end());
- assert(c1 == c2);
- assert(std::move(c1.cbegin(), c1.cend(), RAI(c2.begin())) == RAI(c2.end()));
- assert(c1 == c2);
- assert(std::move(c2.cbegin(), c2.cend(), RAI(c1.begin())) == RAI(c1.end()));
- assert(c1 == c2);
- assert(std::move(RACI(c1.cbegin()), RACI(c1.cend()), c2.begin()) == c2.end());
- assert(c1 == c2);
- assert(std::move(RACI(c2.cbegin()), RACI(c2.cend()), c1.begin()) == c1.end());
- assert(c1 == c2);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp
deleted file mode 100644
index 072d7a78a30..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// Optimization for deque::iterators
-
-// template <class InputIterator, class OutputIterator>
-// OutputIterator
-// move_backward(InputIterator first, InputIterator last, OutputIterator result);
-
-#include <deque>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void testN(int start, int N)
-{
- typedef typename C::iterator I;
- typedef typename C::const_iterator CI;
- typedef random_access_iterator<I> RAI;
- typedef random_access_iterator<CI> RACI;
- C c1 = make<C>(N, start);
- C c2 = make<C>(N);
- assert(std::move_backward(c1.cbegin(), c1.cend(), c2.end()) == c2.begin());
- assert(c1 == c2);
- assert(std::move_backward(c2.cbegin(), c2.cend(), c1.end()) == c1.begin());
- assert(c1 == c2);
- assert(std::move_backward(c1.cbegin(), c1.cend(), RAI(c2.end())) == RAI(c2.begin()));
- assert(c1 == c2);
- assert(std::move_backward(c2.cbegin(), c2.cend(), RAI(c1.end())) == RAI(c1.begin()));
- assert(c1 == c2);
- assert(std::move_backward(RACI(c1.cbegin()), RACI(c1.cend()), c2.end()) == c2.begin());
- assert(c1 == c2);
- assert(std::move_backward(RACI(c2.cbegin()), RACI(c2.cend()), c1.end()) == c1.begin());
- assert(c1 == c2);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int> >(rng[i], rng[j]);
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- testN<std::deque<int, min_allocator<int> > >(rng[i], rng[j]);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.special/swap.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/swap.pass.cpp
deleted file mode 100644
index 808144c9ebe..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.special/swap.pass.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// template <class T, class A>
-// void swap(deque<T, A>& x, deque<T, A>& y);
-
-#include <deque>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-C
-make(int size, int start = 0 )
-{
- const int b = 4096 / sizeof(int);
- int init = 0;
- if (start > 0)
- {
- init = (start+1) / b + ((start+1) % b != 0);
- init *= b;
- --init;
- }
- C c(init, 0);
- for (int i = 0; i < init-start; ++i)
- c.pop_back();
- for (int i = 0; i < size; ++i)
- c.push_back(i);
- for (int i = 0; i < start; ++i)
- c.pop_front();
- return c;
-};
-
-template <class C>
-void testN(int start, int N, int M)
-{
- C c1 = make<C>(N, start);
- C c2 = make<C>(M);
- C c1_save = c1;
- C c2_save = c2;
- swap(c1, c2);
- assert(c1 == c2_save);
- assert(c2 == c1_save);
-}
-
-int main()
-{
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int> >(rng[i], rng[j], rng[k]);
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef test_allocator<int> A;
- std::deque<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::deque<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
- swap(c1, c2);
- assert((c1 == std::deque<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A(1));
- assert((c2 == std::deque<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef other_allocator<int> A;
- std::deque<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::deque<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
- swap(c1, c2);
- assert((c1 == std::deque<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A(2));
- assert((c2 == std::deque<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(1));
- }
-#if __cplusplus >= 201103L
- {
- int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2047, 2048, 2049};
- const int N = sizeof(rng)/sizeof(rng[0]);
- for (int i = 0; i < N; ++i)
- for (int j = 0; j < N; ++j)
- for (int k = 0; k < N; ++k)
- testN<std::deque<int, min_allocator<int>> >(rng[i], rng[j], rng[k]);
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef min_allocator<int> A;
- std::deque<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A());
- std::deque<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A());
- swap(c1, c2);
- assert((c1 == std::deque<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A());
- assert((c2 == std::deque<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp
deleted file mode 100644
index d55d719c762..00000000000
--- a/libcxx/test/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// void swap(deque& c)
-// noexcept(!allocator_type::propagate_on_container_swap::value ||
-// __is_nothrow_swappable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <deque>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
-
- some_alloc() {}
- some_alloc(const some_alloc&);
- void deallocate(void*, unsigned) {}
-
- typedef std::true_type propagate_on_container_swap;
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::deque<MoveOnly> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
- C c1, c2;
- static_assert(!noexcept(swap(c1, c2)), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/iterators.pass.cpp b/libcxx/test/containers/sequences/deque/iterators.pass.cpp
deleted file mode 100644
index 8ec491fae4d..00000000000
--- a/libcxx/test/containers/sequences/deque/iterators.pass.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// Test nested types and default template args:
-
-// template <class T, class Allocator = allocator<T> >
-// class deque;
-
-// iterator, const_iterator
-
-#include <deque>
-#include <iterator>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef std::deque<int> C;
- C c;
- C::iterator i;
- i = c.begin();
- C::const_iterator j;
- j = c.cbegin();
- assert(i == j);
- }
-#if __cplusplus >= 201103L
- {
- typedef std::deque<int, min_allocator<int>> C;
- C c;
- C::iterator i;
- i = c.begin();
- C::const_iterator j;
- j = c.cbegin();
- assert(i == j);
- }
-#endif
-#if _LIBCPP_STD_VER > 11
- { // N3644 testing
- std::deque<int>::iterator ii1{}, ii2{};
- std::deque<int>::iterator ii4 = ii1;
- std::deque<int>::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
-
- assert (!(ii1 != ii2 ));
-
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
- assert (!(ii1 < cii ));
- assert (!(cii < ii1 ));
- assert ( (ii1 <= cii ));
- assert ( (cii <= ii1 ));
- assert (!(ii1 > cii ));
- assert (!(cii > ii1 ));
- assert ( (ii1 >= cii ));
- assert ( (cii >= ii1 ));
- assert (cii - ii1 == 0);
- assert (ii1 - cii == 0);
-
-// std::deque<int> c;
-// assert ( ii1 != c.cbegin());
-// assert ( cii != c.begin());
-// assert ( cii != c.cend());
-// assert ( ii1 != c.end());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/types.pass.cpp b/libcxx/test/containers/sequences/deque/types.pass.cpp
deleted file mode 100644
index da9470d8a6c..00000000000
--- a/libcxx/test/containers/sequences/deque/types.pass.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-// Test nested types and default template args:
-
-// template <class T, class Allocator = allocator<T> >
-// class deque
-// {
-// public:
-// typedef T value_type;
-// typedef Allocator allocator_type;
-// typedef typename allocator_type::reference reference;
-// typedef typename allocator_type::const_reference const_reference;
-// typedef implementation-defined iterator;
-// typedef implementation-defined const_iterator;
-// typedef typename allocator_type::size_type size_type;
-// typedef typename allocator_type::difference_type difference_type;
-// typedef typename allocator_type::pointer pointer;
-// typedef typename allocator_type::const_pointer const_pointer;
-// typedef std::reverse_iterator<iterator> reverse_iterator;
-// typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-// };
-
-#include <deque>
-#include <iterator>
-#include <type_traits>
-
-#include "test_allocator.h"
-#include "../../Copyable.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test()
-{
- typedef std::deque<T, Allocator> C;
-
- static_assert((std::is_same<typename C::value_type, T>::value), "");
- static_assert((std::is_same<typename C::value_type, typename Allocator::value_type>::value), "");
- static_assert((std::is_same<typename C::allocator_type, Allocator>::value), "");
- static_assert((std::is_same<typename C::size_type, typename Allocator::size_type>::value), "");
- static_assert((std::is_same<typename C::difference_type, typename Allocator::difference_type>::value), "");
- static_assert((std::is_same<typename C::reference, typename Allocator::reference>::value), "");
- static_assert((std::is_same<typename C::const_reference, typename Allocator::const_reference>::value), "");
- static_assert((std::is_same<typename C::pointer, typename Allocator::pointer>::value), "");
- static_assert((std::is_same<typename C::const_pointer, typename Allocator::const_pointer>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename C::iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename C::const_iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename C::reverse_iterator,
- std::reverse_iterator<typename C::iterator> >::value), "");
- static_assert((std::is_same<
- typename C::const_reverse_iterator,
- std::reverse_iterator<typename C::const_iterator> >::value), "");
-}
-
-int main()
-{
- test<int, test_allocator<int> >();
- test<int*, std::allocator<int*> >();
- test<Copyable, test_allocator<Copyable> >();
- static_assert((std::is_same<std::deque<char>::allocator_type,
- std::allocator<char> >::value), "");
-#if __cplusplus >= 201103L
- {
- typedef std::deque<short, min_allocator<short>> C;
- static_assert((std::is_same<C::value_type, short>::value), "");
- static_assert((std::is_same<C::allocator_type, min_allocator<C::value_type> >::value), "");
- static_assert((std::is_same<C::reference, C::value_type&>::value), "");
- static_assert((std::is_same<C::const_reference, const C::value_type&>::value), "");
- static_assert((std::is_same<C::pointer, min_pointer<C::value_type>>::value), "");
- static_assert((std::is_same<C::const_pointer, min_pointer<const C::value_type>>::value), "");
-// min_allocator doesn't have a size_type, so one gets synthesized
- static_assert((std::is_same<C::size_type, std::make_unsigned<C::difference_type>::type>::value), "");
- static_assert((std::is_same<C::difference_type, std::ptrdiff_t>::value), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/deque/version.pass.cpp b/libcxx/test/containers/sequences/deque/version.pass.cpp
deleted file mode 100644
index 22e663d9bc2..00000000000
--- a/libcxx/test/containers/sequences/deque/version.pass.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <deque>
-
-#include <deque>
-
-#ifndef _LIBCPP_VERSION
-#error _LIBCPP_VERSION not defined
-#endif
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp
deleted file mode 100644
index d274bc03088..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.cons
-
-// template <class Alloc>
-// dynarray(size_type c, const Alloc& alloc);
-// template <class Alloc>
-// dynarray(size_type c, const T& v, const Alloc& alloc);
-// template <class Alloc>
-// dynarray(const dynarray& d, const Alloc& alloc);
-// template <class Alloc>
-// dynarray(initializer_list<T>, const Alloc& alloc);
-
-// ~dynarray();
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-#include "test_allocator.h"
-
-using std::experimental::dynarray;
-
-template <class T, class Allocator>
-void check_allocator ( const dynarray<T> &dyn, const Allocator &alloc ) {
- for ( int i = 0; i < dyn.size (); ++i )
- assert ( dyn[i].get_allocator() == alloc );
-}
-
-template <class T, class Allocator>
-void test ( const std::initializer_list<T> &vals, const Allocator &alloc ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( vals, alloc );
- assert ( d1.size () == vals.size() );
- assert ( std::equal ( vals.begin (), vals.end (), d1.begin (), d1.end ()));
- check_allocator ( d1, alloc );
- }
-
-
-template <class T, class Allocator>
-void test ( const T &val, const Allocator &alloc1, const Allocator &alloc2 ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 4, alloc1 );
- assert ( d1.size () == 4 );
- assert ( std::all_of ( d1.begin (), d1.end (), []( const T &item ){ return item == T(); } ));
- check_allocator ( d1, alloc1 );
-
- dynA d2 ( 7, val, alloc1 );
- assert ( d2.size () == 7 );
- assert ( std::all_of ( d2.begin (), d2.end (), [&val]( const T &item ){ return item == val; } ));
- check_allocator ( d2, alloc1 );
-
- dynA d3 ( d2, alloc2 );
- assert ( d3.size () == 7 );
- assert ( std::all_of ( d3.begin (), d3.end (), [&val]( const T &item ){ return item == val; } ));
- check_allocator ( d3, alloc2 );
- }
-
-int main()
-{
-// This test is waiting on the resolution of LWG issue #2235
-// typedef test_allocator<char> Alloc;
-// typedef std::basic_string<char, std::char_traits<char>, Alloc> nstr;
-//
-// test ( nstr("fourteen"), Alloc(3), Alloc(4) );
-// test ( { nstr("1"), nstr("1"), nstr("2"), nstr("3"), nstr("5"), nstr("8")}, Alloc(6));
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.cons/default.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.cons/default.pass.cpp
deleted file mode 100644
index 0effac2fc14..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.cons/default.pass.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.cons
-
-// explicit dynarray(size_type c);
-// dynarray(size_type c, const T& v);
-// dynarray(initializer_list<T>);
-// dynarray(const dynarray& d);
-
-// ~dynarray();
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void test ( const std::initializer_list<T> &vals ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( vals );
- assert ( d1.size () == vals.size() );
- assert ( std::equal ( vals.begin (), vals.end (), d1.begin (), d1.end ()));
- }
-
-
-template <class T>
-void test ( const T &val ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 4 );
- assert ( d1.size () == 4 );
- assert ( std::all_of ( d1.begin (), d1.end (), []( const T &item ){ return item == T(); } ));
-
- dynA d2 ( 7, val );
- assert ( d2.size () == 7 );
- assert ( std::all_of ( d2.begin (), d2.end (), [&val]( const T &item ){ return item == val; } ));
-
- dynA d3 ( d2 );
- assert ( d3.size () == 7 );
- assert ( std::all_of ( d3.begin (), d3.end (), [&val]( const T &item ){ return item == val; } ));
- }
-
-void test_bad_length () {
- try { dynarray<int> ( std::numeric_limits<size_t>::max() / sizeof ( int ) + 1 ); }
- catch ( std::bad_array_length & ) { return ; }
- assert ( false );
- }
-
-void test_bad_alloc () {
- try { dynarray<int> ( std::numeric_limits<size_t>::max() / sizeof ( int ) - 1 ); }
- catch ( std::bad_alloc & ) { return ; }
- assert ( false );
- }
-
-int main()
-{
-// test<int> ( 14 ); // ints don't get default initialized
- test<long> ( 0 );
- test<double> ( 14.0 );
- test<std::complex<double>> ( std::complex<double> ( 14, 0 ));
- test<std::string> ( "fourteen" );
-
- test ( { 1, 1, 2, 3, 5, 8 } );
- test ( { 1., 1., 2., 3., 5., 8. } );
- test ( { std::string("1"), std::string("1"), std::string("2"), std::string("3"),
- std::string("5"), std::string("8")} );
-
-// Make sure we don't pick up the Allocator version here
- dynarray<long> d1 ( 20, 3 );
- assert ( d1.size() == 20 );
- assert ( std::all_of ( d1.begin (), d1.end (), []( long item ){ return item == 3L; } ));
-
- test_bad_length ();
- test_bad_alloc ();
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.data/default.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.data/default.pass.cpp
deleted file mode 100644
index b669f25948e..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.data/default.pass.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.data
-
-// T* data() noexcept;
-// const T* data() const noexcept;
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void dyn_test_const ( const dynarray<T> &dyn ) {
- const T *data = dyn.data ();
- assert ( data != NULL );
- assert ( std::equal ( dyn.begin(), dyn.end(), data ));
- }
-
-template <class T>
-void dyn_test ( dynarray<T> &dyn ) {
- T *data = dyn.data ();
- assert ( data != NULL );
- assert ( std::equal ( dyn.begin(), dyn.end(), data ));
- }
-
-
-
-template <class T>
-void test ( const T &val ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 4 );
- dyn_test ( d1 );
- dyn_test_const ( d1 );
-
- dynA d2 ( 7, val );
- dyn_test ( d2 );
- dyn_test_const ( d2 );
- }
-
-int main()
-{
- test<int> ( 14 );
- test<double> ( 14.0 );
- test<std::complex<double>> ( std::complex<double> ( 14, 0 ));
- test<std::string> ( "fourteen" );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp
deleted file mode 100644
index c57887ddaf9..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.data
-
-// void fill(const T& v);
-// const T* data() const noexcept;
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void test ( const T &val ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 4 );
- d1.fill ( val );
- assert ( std::all_of ( d1.begin (), d1.end (),
- [&val]( const T &item ){ return item == val; } ));
- }
-
-int main()
-{
- test<int> ( 14 );
- test<double> ( 14.0 );
- test<std::complex<double>> ( std::complex<double> ( 14, 0 ));
- test<std::string> ( "fourteen" );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.overview/at.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.overview/at.pass.cpp
deleted file mode 100644
index 4d77cf73275..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.overview/at.pass.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.overview
-
-// const_reference at(size_type n) const;
-// reference at(size_type n);
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void dyn_at_fail ( dynarray<T> &dyn, size_t sz ) {
- try { dyn.at (sz); }
- catch (const std::out_of_range &) { return; }
- assert ( false );
- }
-
-template <class T>
-void dyn_at_fail_const ( const dynarray<T> &dyn, size_t sz ) {
- try { dyn.at (sz); }
- catch (const std::out_of_range &) { return; }
- assert ( false );
- }
-
-
-template <class T>
-void dyn_test_const ( const dynarray<T> &dyn, const std::initializer_list<T> &vals ) {
- const T *data = dyn.data ();
- auto it = vals.begin ();
- for ( size_t i = 0; i < dyn.size(); ++i, ++it ) {
- assert ( data + i == &dyn.at(i));
- assert ( *it == dyn.at(i));
- }
-
- dyn_at_fail_const ( dyn, dyn.size ());
- dyn_at_fail_const ( dyn, 2*dyn.size ());
- dyn_at_fail_const ( dyn, size_t (-1));
- }
-
-template <class T>
-void dyn_test ( dynarray<T> &dyn, const std::initializer_list<T> &vals ) {
- T *data = dyn.data ();
- auto it = vals.begin ();
- for ( size_t i = 0; i < dyn.size(); ++i, ++it ) {
- assert ( data + i == &dyn.at(i));
- assert ( *it == dyn.at(i));
- }
-
- dyn_at_fail ( dyn, dyn.size ());
- dyn_at_fail ( dyn, 2*dyn.size ());
- dyn_at_fail ( dyn, size_t (-1));
- }
-
-
-template <class T>
-void test ( std::initializer_list<T> vals ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( vals );
- dyn_test ( d1, vals );
- dyn_test_const ( d1, vals );
- }
-
-int main()
-{
- test ( { 1, 1, 2, 3, 5, 8 } );
- test ( { 1., 1., 2., 3., 5., 8. } );
- test ( { std::string("1"), std::string("1"), std::string("2"), std::string("3"),
- std::string("5"), std::string("8")} );
-
- test<int> ( {} );
- test<std::complex<double>> ( {} );
- test<std::string> ( {} );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp
deleted file mode 100644
index 695e1aa9f14..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.overview
-
-
-// iterator begin() noexcept;
-// const_iterator begin() const noexcept;
-// const_iterator cbegin() const noexcept;
-// iterator end() noexcept;
-// const_iterator end() const noexcept;
-// const_iterator cend() const noexcept;
-//
-// reverse_iterator rbegin() noexcept;
-// const_reverse_iterator rbegin() const noexcept;
-// const_reverse_iterator crbegin() const noexcept;
-// reverse_iterator rend() noexcept;
-// const_reverse_iterator rend() const noexcept;
-// const_reverse_iterator crend() const noexcept;
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void dyn_test_const ( const dynarray<T> &dyn ) {
- const T *data = dyn.data ();
- assert ( data == &*dyn.begin ());
- assert ( data == &*dyn.cbegin ());
-
- assert ( data + dyn.size() - 1 == &*dyn.rbegin ());
- assert ( data + dyn.size() - 1 == &*dyn.crbegin ());
-
- assert ( dyn.size () == std::distance ( dyn.begin(), dyn.end()));
- assert ( dyn.size () == std::distance ( dyn.cbegin(), dyn.cend()));
- assert ( dyn.size () == std::distance ( dyn.rbegin(), dyn.rend()));
- assert ( dyn.size () == std::distance ( dyn.crbegin(), dyn.crend()));
-
- assert ( dyn.begin () == dyn.cbegin ());
- assert ( &*dyn.begin () == &*dyn.cbegin ());
- assert ( dyn.rbegin () == dyn.crbegin ());
- assert ( &*dyn.rbegin () == &*dyn.crbegin ());
- assert ( dyn.end () == dyn.cend ());
- assert ( dyn.rend () == dyn.crend ());
- }
-
-template <class T>
-void dyn_test ( dynarray<T> &dyn ) {
- T *data = dyn.data ();
- assert ( data == &*dyn.begin ());
- assert ( data == &*dyn.cbegin ());
-
- assert ( data + dyn.size() - 1 == &*dyn.rbegin ());
- assert ( data + dyn.size() - 1 == &*dyn.crbegin ());
-
- assert ( dyn.size () == std::distance ( dyn.begin(), dyn.end()));
- assert ( dyn.size () == std::distance ( dyn.cbegin(), dyn.cend()));
- assert ( dyn.size () == std::distance ( dyn.rbegin(), dyn.rend()));
- assert ( dyn.size () == std::distance ( dyn.crbegin(), dyn.crend()));
-
- assert ( dyn.begin () == dyn.cbegin ());
- assert ( &*dyn.begin () == &*dyn.cbegin ());
- assert ( dyn.rbegin () == dyn.crbegin ());
- assert ( &*dyn.rbegin () == &*dyn.crbegin ());
- assert ( dyn.end () == dyn.cend ());
- assert ( dyn.rend () == dyn.crend ());
- }
-
-
-template <class T>
-void test ( const T &val ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 4 );
- dyn_test ( d1 );
- dyn_test_const ( d1 );
-
- dynA d2 ( 7, val );
- dyn_test ( d2 );
- dyn_test_const ( d2 );
- }
-
-int main()
-{
- test<int> ( 14 );
- test<double> ( 14.0 );
- test<std::complex<double>> ( std::complex<double> ( 14, 0 ));
- test<std::string> ( "fourteen" );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp
deleted file mode 100644
index 6d28eef1b05..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.overview
-
-// size_type size() const noexcept;
-// size_type max_size() const noexcept;
-// bool empty() const noexcept;
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void dyn_test ( const dynarray<T> &dyn, size_t sz ) {
- assert ( dyn.size () == sz );
- assert ( dyn.max_size () == sz );
- assert ( dyn.empty () == ( sz == 0 ));
- }
-
-template <class T>
-void test ( std::initializer_list<T> vals ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( vals );
- dyn_test ( d1, vals.size ());
- }
-
-int main()
-{
- test ( { 1, 1, 2, 3, 5, 8 } );
- test ( { 1., 1., 2., 3., 5., 8. } );
- test ( { std::string("1"), std::string("1"), std::string("2"), std::string("3"),
- std::string("5"), std::string("8")} );
-
- test<int> ( {} );
- test<std::complex<double>> ( {} );
- test<std::string> ( {} );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp
deleted file mode 100644
index e82aa64b98b..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.overview
-
-// reference front();
-// const_reference front() const;
-// reference back();
-// const_reference back() const;
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void dyn_test_const ( const dynarray<T> &dyn ) {
- const T *data = dyn.data ();
- assert ( *data == dyn.front ());
- assert ( *(data + dyn.size() - 1 ) == dyn.back ());
- }
-
-template <class T>
-void dyn_test ( dynarray<T> &dyn ) {
- T *data = dyn.data ();
- assert ( *data == dyn.front ());
- assert ( *(data + dyn.size() - 1 ) == dyn.back ());
- }
-
-
-template <class T>
-void test ( const T &val ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 4 );
- dyn_test ( d1 );
- dyn_test_const ( d1 );
-
- dynA d2 ( 7, val );
- dyn_test ( d2 );
- dyn_test_const ( d2 );
- }
-
-int main()
-{
- test<int> ( 14 );
- test<double> ( 14.0 );
- test<std::complex<double>> ( std::complex<double> ( 14, 0 ));
- test<std::string> ( "fourteen" );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp
deleted file mode 100644
index 7317a2023cb..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.overview
-
-// const_reference at(size_type n) const;
-// reference at(size_type n);
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void dyn_test_const ( const dynarray<T> &dyn, const std::initializer_list<T> &vals ) {
- const T *data = dyn.data ();
- auto it = vals.begin ();
- for ( size_t i = 0; i < dyn.size(); ++i, ++it ) {
- assert ( data + i == &dyn[i]);
- assert ( *it == dyn[i]);
- }
- }
-
-template <class T>
-void dyn_test ( dynarray<T> &dyn, const std::initializer_list<T> &vals ) {
- T *data = dyn.data ();
- auto it = vals.begin ();
- for ( size_t i = 0; i < dyn.size(); ++i, ++it ) {
- assert ( data + i == &dyn[i]);
- assert ( *it == dyn[i]);
- }
- }
-
-
-template <class T>
-void test ( std::initializer_list<T> vals ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( vals );
- dyn_test ( d1, vals );
- dyn_test_const ( d1, vals );
- }
-
-int main()
-{
- test ( { 1, 1, 2, 3, 5, 8 } );
- test ( { 1., 1., 2., 3., 5., 8. } );
- test ( { std::string("1"), std::string("1"), std::string("2"), std::string("3"),
- std::string("5"), std::string("8")} );
-
- test<int> ( {} );
- test<std::complex<double>> ( {} );
- test<std::string> ( {} );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.traits/default.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.traits/default.pass.cpp
deleted file mode 100644
index 9b8240d4cd8..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.traits/default.pass.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.data
-
-// template <class Type, class Alloc>
-// struct uses_allocator<dynarray<Type>, Alloc> : true_type { };
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include "test_allocator.h"
-
-using std::experimental::dynarray;
-
-int main()
-{
- static_assert ( std::uses_allocator<dynarray<int>, test_allocator<int>>::value, "" );
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/dynarray.zero/default.pass.cpp b/libcxx/test/containers/sequences/dynarray/dynarray.zero/default.pass.cpp
deleted file mode 100644
index 93f3b18f192..00000000000
--- a/libcxx/test/containers/sequences/dynarray/dynarray.zero/default.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// dynarray.zero
-
-// dynarray shall provide support for the special case of construction with a size of zero.
-// In the case that the size is zero, begin() == end() == unique value.
-// The return value of data() is unspecified.
-// The effect of calling front() or back() for a zero-sized dynarray is undefined.
-
-
-
-#include <__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <experimental/dynarray>
-#include <cassert>
-
-#include <algorithm>
-#include <complex>
-#include <string>
-
-using std::experimental::dynarray;
-
-template <class T>
-void test ( ) {
- typedef dynarray<T> dynA;
-
- dynA d1 ( 0 );
- assert ( d1.size() == 0 );
- assert ( d1.begin() == d1.end ());
- }
-
-int main()
-{
- test<int> ();
- test<double> ();
- test<std::complex<double>> ();
- test<std::string> ();
-}
-#else
-int main() {}
-#endif
diff --git a/libcxx/test/containers/sequences/dynarray/nothing_to_do.pass.cpp b/libcxx/test/containers/sequences/dynarray/nothing_to_do.pass.cpp
deleted file mode 100644
index b58f5c55b64..00000000000
--- a/libcxx/test/containers/sequences/dynarray/nothing_to_do.pass.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp
deleted file mode 100644
index 2ec9b871332..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// reference front();
-// const_reference front() const;
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- assert(c.front() == 0);
- c.front() = 10;
- assert(c.front() == 10);
- assert(*c.begin() == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const C c(std::begin(t), std::end(t));
- assert(c.front() == 0);
- assert(*c.begin() == 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- assert(c.front() == 0);
- c.front() = 10;
- assert(c.front() == 10);
- assert(*c.begin() == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const C c(std::begin(t), std::end(t));
- assert(c.front() == 0);
- assert(*c.begin() == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.fail.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.fail.cpp
deleted file mode 100644
index cd4d1ede120..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.fail.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// explicit forward_list(const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "../../../NotConstructible.h"
-
-int main()
-{
- {
- typedef test_allocator<NotConstructible> A;
- typedef A::value_type T;
- typedef std::forward_list<T, A> C;
- C c = A(12);
- assert(c.get_allocator() == A(12));
- assert(c.empty());
- }
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp
deleted file mode 100644
index 7aba906ec20..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// explicit forward_list(const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "../../../NotConstructible.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef test_allocator<NotConstructible> A;
- typedef A::value_type T;
- typedef std::forward_list<T, A> C;
- C c(A(12));
- assert(c.get_allocator() == A(12));
- assert(c.empty());
- }
-#if __cplusplus >= 201103L
- {
- typedef min_allocator<NotConstructible> A;
- typedef A::value_type T;
- typedef std::forward_list<T, A> C;
- C c(A{});
- assert(c.get_allocator() == A());
- assert(c.empty());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp
deleted file mode 100644
index 0b9263db989..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list& operator=(const forward_list& x);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(10));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(10));
- }
- {
- typedef int T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(11));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(11));
- }
- {
- typedef int T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(10));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(10));
- }
- {
- typedef int T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(11));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(11));
- }
-
- {
- typedef int T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(10));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(10));
- }
- {
- typedef int T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(11));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(10));
- }
- {
- typedef int T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(10));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(10));
- }
- {
- typedef int T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t0), std::end(t0), A(10));
- C c1(std::begin(t1), std::end(t1), A(11));
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A(10));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c0(std::begin(t0), std::end(t0), A());
- C c1(std::begin(t1), std::end(t1), A());
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t0), std::end(t0), A());
- C c1(std::begin(t1), std::end(t1), A());
- c1 = c0;
- assert(c1 == c0);
- assert(c1.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp
deleted file mode 100644
index e0382a10db4..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void assign(initializer_list<value_type> il);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- c.assign({0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- c.assign({10, 11, 12, 13});
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- c.assign({0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- c.assign({10, 11, 12, 13});
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp
deleted file mode 100644
index a3d270f01d9..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list& operator=(forward_list&& x);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- T t1[] = {10, 11, 12, 13};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(10));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c1.get_allocator() == A(10));
- assert(c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- T t1[] = {10, 11, 12, 13};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(11));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c1.get_allocator() == A(11));
- assert(!c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {10, 11, 12, 13};
- T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(10));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- assert(c1.get_allocator() == A(10));
- assert(c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {10, 11, 12, 13};
- T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(11));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- assert(c1.get_allocator() == A(11));
- assert(!c0.empty());
- }
-
- {
- typedef MoveOnly T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- T t1[] = {10, 11, 12, 13};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(10));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c1.get_allocator() == A(10));
- assert(c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- T t1[] = {10, 11, 12, 13};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(11));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c1.get_allocator() == A(10));
- assert(c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {10, 11, 12, 13};
- T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(10));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- assert(c1.get_allocator() == A(10));
- assert(c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {10, 11, 12, 13};
- T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A(10));
- C c1(I(std::begin(t1)), I(std::end(t1)), A(11));
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- assert(c1.get_allocator() == A(10));
- assert(c0.empty());
- }
-#if __cplusplus >= 201103L
- {
- typedef MoveOnly T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- T t1[] = {10, 11, 12, 13};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A());
- C c1(I(std::begin(t1)), I(std::end(t1)), A());
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c1.get_allocator() == A());
- assert(c0.empty());
- }
- {
- typedef MoveOnly T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- T t0[] = {10, 11, 12, 13};
- T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t0)), I(std::end(t0)), A());
- C c1(I(std::begin(t1)), I(std::end(t1)), A());
- c1 = std::move(c0);
- int n = 0;
- for (C::const_iterator i = c1.cbegin(); i != c1.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- assert(c1.get_allocator() == A());
- assert(c0.empty());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp
deleted file mode 100644
index 551908fea16..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list& operator=(initializer_list<value_type> il);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- c = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- c = {10, 11, 12, 13};
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- c = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- c = {10, 11, 12, 13};
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
deleted file mode 100644
index 0b348e6920c..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class InputIterator>
-// void assign(InputIterator first, InputIterator last);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- typedef input_iterator<const T*> I;
- c.assign(I(std::begin(t0)), I(std::end(t0)));
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- typedef input_iterator<const T*> I;
- c.assign(I(std::begin(t0)), I(std::end(t0)));
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10+n);
- assert(n == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t0[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- typedef input_iterator<const T*> I;
- c.assign(I(std::begin(t0)), I(std::end(t0)));
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t0[] = {10, 11, 12, 13};
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- typedef input_iterator<const T*> I;
- c.assign(I(std::begin(t0)), I(std::end(t0)));
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, (void) ++n)
- assert(*i == 10+n);
- assert(n == 4);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp
deleted file mode 100644
index ea53e1c3732..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void assign(size_type n, const value_type& v);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- c.assign(10, 1);
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 1);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- c.assign(4, 10);
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10);
- assert(n == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {10, 11, 12, 13};
- C c(std::begin(t1), std::end(t1));
- c.assign(10, 1);
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 1);
- assert(n == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t1), std::end(t1));
- c.assign(4, 10);
- int n = 0;
- for (C::const_iterator i = c.cbegin(); i != c.cend(); ++i, ++n)
- assert(*i == 10);
- assert(n == 4);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp
deleted file mode 100644
index 2fc53bc3a51..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(const forward_list& x);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t), std::end(t), A(10));
- C c = c0;
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c == c0);
- assert(c.get_allocator() == A(10));
- }
-#ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
- {
- typedef int T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t), std::end(t), A(10));
- C c = c0;
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c == c0);
- assert(c.get_allocator() == A(-2));
- }
-#endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t), std::end(t), A());
- C c = c0;
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c == c0);
- assert(c.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp
deleted file mode 100644
index bcc24e1cc68..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(const forward_list& x, const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t), std::end(t), A(10));
- C c(c0, A(9));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c == c0);
- assert(c.get_allocator() == A(9));
- }
- {
- typedef int T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t), std::end(t), A(10));
- C c(c0, A(9));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c == c0);
- assert(c.get_allocator() == A(9));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<int> A;
- typedef std::forward_list<T, A> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c0(std::begin(t), std::end(t), A());
- C c(c0, A());
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c == c0);
- assert(c.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
deleted file mode 100644
index 38e95fad839..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list();
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c;
- assert(c.empty());
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- assert(c.empty());
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c = {};
- assert(c.empty());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp
deleted file mode 100644
index 6b0233d65b6..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list()
-// noexcept(is_nothrow_default_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::forward_list<MoveOnly> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp
deleted file mode 100644
index 5ff00e6fe52..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// class forward_list
-
-// forward_list();
-
-#include <forward_list>
-
-struct X
-{
- std::forward_list<X> q;
-};
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
deleted file mode 100644
index 1f7b05efd66..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// ~forward_list() // implied noexcept;
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-#if __has_feature(cxx_noexcept)
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
- ~some_alloc() noexcept(false);
-};
-
-#endif
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::forward_list<MoveOnly> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_destructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp
deleted file mode 100644
index 5b31c4dad0a..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(initializer_list<value_type> il);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp
deleted file mode 100644
index 750486b829f..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(initializer_list<value_type> il, const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, A(14));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c.get_allocator() == A(14));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, A());
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == 10);
- assert(c.get_allocator() == A());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
deleted file mode 100644
index 164801a0b40..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(forward_list&& x);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t)), I(std::end(t)), A(10));
- C c = std::move(c0);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c0.empty());
- assert(c.get_allocator() == A(10));
- }
- {
- typedef MoveOnly T;
- typedef other_allocator<int> A;
- typedef std::forward_list<T, A> C;
- T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t)), I(std::end(t)), A(10));
- C c = std::move(c0);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c0.empty());
- assert(c.get_allocator() == A(10));
- }
-#if __cplusplus >= 201103L
- {
- typedef MoveOnly T;
- typedef min_allocator<int> A;
- typedef std::forward_list<T, A> C;
- T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t)), I(std::end(t)), A());
- C c = std::move(c0);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c0.empty());
- assert(c.get_allocator() == A());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp
deleted file mode 100644
index ba0cb5d3beb..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(forward_list&& x, const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t)), I(std::end(t)), A(10));
- C c(std::move(c0), A(10));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c0.empty());
- assert(c.get_allocator() == A(10));
- }
- {
- typedef MoveOnly T;
- typedef test_allocator<int> A;
- typedef std::forward_list<T, A> C;
- T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t)), I(std::end(t)), A(10));
- C c(std::move(c0), A(9));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(!c0.empty());
- assert(c.get_allocator() == A(9));
- }
-#if __cplusplus >= 201103L
- {
- typedef MoveOnly T;
- typedef min_allocator<int> A;
- typedef std::forward_list<T, A> C;
- T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- typedef std::move_iterator<T*> I;
- C c0(I(std::begin(t)), I(std::end(t)), A());
- C c(std::move(c0), A());
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c0.empty());
- assert(c.get_allocator() == A());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
deleted file mode 100644
index cc5b9d54ed3..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list& operator=(forward_list&& c)
-// noexcept(
-// allocator_type::propagate_on_container_move_assignment::value &&
-// is_nothrow_move_assignable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::forward_list<MoveOnly> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp
deleted file mode 100644
index 3666c7d169d..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(forward_list&&)
-// noexcept(is_nothrow_move_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::forward_list<MoveOnly> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
deleted file mode 100644
index 763952439f0..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class InputIterator>
-// forward_list(InputIterator first, InputIterator last);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- typedef input_iterator<const T*> I;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(I(std::begin(t)), I(std::end(t)));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef input_iterator<const T*> I;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(I(std::begin(t)), I(std::end(t)));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
deleted file mode 100644
index d72c3581022..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class InputIterator>
-// forward_list(InputIterator first, InputIterator last,
-// const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "test_allocator.h"
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- typedef input_iterator<const T*> I;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(I(std::begin(t)), I(std::end(t)), A(13));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c.get_allocator() == A(13));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- typedef input_iterator<const T*> I;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(I(std::begin(t)), I(std::end(t)), A());
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == n);
- assert(n == std::end(t) - std::begin(t));
- assert(c.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.fail.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.fail.cpp
deleted file mode 100644
index 2d963a1be47..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.fail.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// explicit forward_list(size_type n);
-
-#include <forward_list>
-#include <cassert>
-
-#include "DefaultOnly.h"
-
-int main()
-{
- {
- typedef DefaultOnly T;
- typedef std::forward_list<T> C;
- unsigned N = 10;
- C c = N;
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- assert(*i == T());
-#else
- ;
-#endif
- assert(n == N);
- }
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp
deleted file mode 100644
index e02dcb4bf69..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// explicit forward_list(size_type n);
-// explicit forward_list(size_type n, const Alloc& a);
-
-#include <forward_list>
-#include <cassert>
-
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void check_allocator(unsigned n, Allocator const &alloc = Allocator())
-{
-#if _LIBCPP_STD_VER > 11
- typedef std::forward_list<T, Allocator> C;
- C d(n, alloc);
- assert(d.get_allocator() == alloc);
- assert(std::distance(d.begin(), d.end()) == n);
-#endif
-}
-
-int main()
-{
- {
- typedef DefaultOnly T;
- typedef std::forward_list<T> C;
- unsigned N = 10;
- C c(N);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- assert(*i == T());
-#else
- ;
-#endif
- assert(n == N);
- }
-#if __cplusplus >= 201103L
- {
- typedef DefaultOnly T;
- typedef std::forward_list<T, min_allocator<T>> C;
- unsigned N = 10;
- C c(N);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- assert(*i == T());
-#else
- ;
-#endif
- assert(n == N);
- check_allocator<T, min_allocator<T>> ( 0 );
- check_allocator<T, min_allocator<T>> ( 3 );
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp
deleted file mode 100644
index 05ab98bb205..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(size_type n, const value_type& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- T v(6);
- unsigned N = 10;
- C c(N, v);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == v);
- assert(n == N);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- T v(6);
- unsigned N = 10;
- C c(N, v);
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == v);
- assert(n == N);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp
deleted file mode 100644
index 1d631ab12ba..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// forward_list(size_type n, const value_type& v, const allocator_type& a);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef test_allocator<int> A;
- typedef A::value_type T;
- typedef std::forward_list<T, A> C;
- T v(6);
- unsigned N = 10;
- C c(N, v, A(12));
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == v);
- assert(n == N);
- assert(c.get_allocator() == A(12));
- }
-#if __cplusplus >= 201103L
- {
- typedef min_allocator<int> A;
- typedef A::value_type T;
- typedef std::forward_list<T, A> C;
- T v(6);
- unsigned N = 10;
- C c(N, v, A());
- unsigned n = 0;
- for (C::const_iterator i = c.begin(), e = c.end(); i != e; ++i, ++n)
- assert(*i == v);
- assert(n == N);
- assert(c.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp
deleted file mode 100644
index 083cec2886d..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator before_begin();
-// const_iterator before_begin() const;
-// const_iterator cbefore_begin() const;
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c;
- C::iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 1);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const C c;
- C::const_iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 1);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const C c;
- C::const_iterator i = c.cbefore_begin();
- assert(std::distance(i, c.end()) == 1);
- assert(c.cbefore_begin() == c.before_begin());
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 11);
- assert(std::next(c.before_begin()) == c.begin());
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const C c(std::begin(t), std::end(t));
- C::const_iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 11);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- C::iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 1);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const C c;
- C::const_iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 1);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const C c;
- C::const_iterator i = c.cbefore_begin();
- assert(std::distance(i, c.end()) == 1);
- assert(c.cbefore_begin() == c.before_begin());
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 11);
- assert(std::next(c.before_begin()) == c.begin());
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- const C c(std::begin(t), std::end(t));
- C::const_iterator i = c.before_begin();
- assert(std::distance(i, c.end()) == 11);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
deleted file mode 100644
index 6f3ac548db8..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator begin();
-// iterator end();
-// const_iterator begin() const;
-// const_iterator end() const;
-// const_iterator cbegin() const;
-// const_iterator cend() const;
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 1);
- *i = 10;
- assert(*i == 10);
- assert(std::distance(c.begin(), c.end()) == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C::iterator i;
- C::const_iterator j;
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 1);
- *i = 10;
- assert(*i == 10);
- assert(std::distance(c.begin(), c.end()) == 10);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C::iterator i;
- C::const_iterator j;
- }
-#endif
-#if _LIBCPP_STD_VER > 11
- { // N3644 testing
- std::forward_list<int>::iterator ii1{}, ii2{};
- std::forward_list<int>::iterator ii4 = ii1;
- std::forward_list<int>::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
-
- assert (!(ii1 != ii2 ));
-
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
-
-// std::forward_list<int> c;
-// assert ( ii1 != c.cbegin());
-// assert ( cii != c.begin());
-// assert ( cii != c.cend());
-// assert ( ii1 != c.end());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp
deleted file mode 100644
index 2739b49d8eb..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void clear();
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../NotConstructible.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef NotConstructible T;
- typedef std::forward_list<T> C;
- C c;
- c.clear();
- assert(distance(c.begin(), c.end()) == 0);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- c.clear();
- assert(distance(c.begin(), c.end()) == 0);
-
- c.clear();
- assert(distance(c.begin(), c.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef NotConstructible T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.clear();
- assert(distance(c.begin(), c.end()) == 0);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- c.clear();
- assert(distance(c.begin(), c.end()) == 0);
-
- c.clear();
- assert(distance(c.begin(), c.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp
deleted file mode 100644
index e305c5b6ab5..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class... Args>
-// iterator emplace_after(const_iterator p, Args&&... args);
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../Emplaceable.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef Emplaceable T;
- typedef std::forward_list<T> C;
- typedef C::iterator I;
- C c;
- I i = c.emplace_after(c.cbefore_begin());
- assert(i == c.begin());
- assert(c.front() == Emplaceable());
- assert(distance(c.begin(), c.end()) == 1);
-
- i = c.emplace_after(c.cbegin(), 1, 2.5);
- assert(i == next(c.begin()));
- assert(c.front() == Emplaceable());
- assert(*next(c.begin()) == Emplaceable(1, 2.5));
- assert(distance(c.begin(), c.end()) == 2);
-
- i = c.emplace_after(next(c.cbegin()), 2, 3.5);
- assert(i == next(c.begin(), 2));
- assert(c.front() == Emplaceable());
- assert(*next(c.begin()) == Emplaceable(1, 2.5));
- assert(*next(c.begin(), 2) == Emplaceable(2, 3.5));
- assert(distance(c.begin(), c.end()) == 3);
-
- i = c.emplace_after(c.cbegin(), 3, 4.5);
- assert(i == next(c.begin()));
- assert(c.front() == Emplaceable());
- assert(*next(c.begin(), 1) == Emplaceable(3, 4.5));
- assert(*next(c.begin(), 2) == Emplaceable(1, 2.5));
- assert(*next(c.begin(), 3) == Emplaceable(2, 3.5));
- assert(distance(c.begin(), c.end()) == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef Emplaceable T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef C::iterator I;
- C c;
- I i = c.emplace_after(c.cbefore_begin());
- assert(i == c.begin());
- assert(c.front() == Emplaceable());
- assert(distance(c.begin(), c.end()) == 1);
-
- i = c.emplace_after(c.cbegin(), 1, 2.5);
- assert(i == next(c.begin()));
- assert(c.front() == Emplaceable());
- assert(*next(c.begin()) == Emplaceable(1, 2.5));
- assert(distance(c.begin(), c.end()) == 2);
-
- i = c.emplace_after(next(c.cbegin()), 2, 3.5);
- assert(i == next(c.begin(), 2));
- assert(c.front() == Emplaceable());
- assert(*next(c.begin()) == Emplaceable(1, 2.5));
- assert(*next(c.begin(), 2) == Emplaceable(2, 3.5));
- assert(distance(c.begin(), c.end()) == 3);
-
- i = c.emplace_after(c.cbegin(), 3, 4.5);
- assert(i == next(c.begin()));
- assert(c.front() == Emplaceable());
- assert(*next(c.begin(), 1) == Emplaceable(3, 4.5));
- assert(*next(c.begin(), 2) == Emplaceable(1, 2.5));
- assert(*next(c.begin(), 3) == Emplaceable(2, 3.5));
- assert(distance(c.begin(), c.end()) == 4);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp
deleted file mode 100644
index c02337e0562..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class... Args> void emplace_front(Args&&... args);
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../Emplaceable.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef Emplaceable T;
- typedef std::forward_list<T> C;
- C c;
- c.emplace_front();
- assert(c.front() == Emplaceable());
- assert(distance(c.begin(), c.end()) == 1);
- c.emplace_front(1, 2.5);
- assert(c.front() == Emplaceable(1, 2.5));
- assert(*next(c.begin()) == Emplaceable());
- assert(distance(c.begin(), c.end()) == 2);
- }
-#if __cplusplus >= 201103L
- {
- typedef Emplaceable T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.emplace_front();
- assert(c.front() == Emplaceable());
- assert(distance(c.begin(), c.end()) == 1);
- c.emplace_front(1, 2.5);
- assert(c.front() == Emplaceable(1, 2.5));
- assert(*next(c.begin()) == Emplaceable());
- assert(distance(c.begin(), c.end()) == 2);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp
deleted file mode 100644
index bd9b15300ef..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator erase_after(const_iterator first, const_iterator last);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
-
- C::iterator i = c.erase_after(next(c.cbefore_begin(), 4), next(c.cbefore_begin(), 4));
- assert(i == next(c.cbefore_begin(), 4));
- assert(distance(c.begin(), c.end()) == 10);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 3);
- assert(*next(c.begin(), 4) == 4);
- assert(*next(c.begin(), 5) == 5);
- assert(*next(c.begin(), 6) == 6);
- assert(*next(c.begin(), 7) == 7);
- assert(*next(c.begin(), 8) == 8);
- assert(*next(c.begin(), 9) == 9);
-
- i = c.erase_after(next(c.cbefore_begin(), 2), next(c.cbefore_begin(), 5));
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 8);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 5);
- assert(*next(c.begin(), 4) == 6);
- assert(*next(c.begin(), 5) == 7);
- assert(*next(c.begin(), 6) == 8);
- assert(*next(c.begin(), 7) == 9);
-
- i = c.erase_after(next(c.cbefore_begin(), 2), next(c.cbefore_begin(), 3));
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 8);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 5);
- assert(*next(c.begin(), 4) == 6);
- assert(*next(c.begin(), 5) == 7);
- assert(*next(c.begin(), 6) == 8);
- assert(*next(c.begin(), 7) == 9);
-
- i = c.erase_after(next(c.cbefore_begin(), 5), next(c.cbefore_begin(), 9));
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 5);
- assert(*next(c.begin(), 4) == 6);
-
- i = c.erase_after(next(c.cbefore_begin(), 0), next(c.cbefore_begin(), 2));
- assert(i == c.begin());
- assert(distance(c.begin(), c.end()) == 4);
- assert(*next(c.begin(), 0) == 1);
- assert(*next(c.begin(), 1) == 4);
- assert(*next(c.begin(), 2) == 5);
- assert(*next(c.begin(), 3) == 6);
-
- i = c.erase_after(next(c.cbefore_begin(), 0), next(c.cbefore_begin(), 5));
- assert(i == c.begin());
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
-
- C::iterator i = c.erase_after(next(c.cbefore_begin(), 4), next(c.cbefore_begin(), 4));
- assert(i == next(c.cbefore_begin(), 4));
- assert(distance(c.begin(), c.end()) == 10);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 3);
- assert(*next(c.begin(), 4) == 4);
- assert(*next(c.begin(), 5) == 5);
- assert(*next(c.begin(), 6) == 6);
- assert(*next(c.begin(), 7) == 7);
- assert(*next(c.begin(), 8) == 8);
- assert(*next(c.begin(), 9) == 9);
-
- i = c.erase_after(next(c.cbefore_begin(), 2), next(c.cbefore_begin(), 5));
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 8);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 5);
- assert(*next(c.begin(), 4) == 6);
- assert(*next(c.begin(), 5) == 7);
- assert(*next(c.begin(), 6) == 8);
- assert(*next(c.begin(), 7) == 9);
-
- i = c.erase_after(next(c.cbefore_begin(), 2), next(c.cbefore_begin(), 3));
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 8);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 5);
- assert(*next(c.begin(), 4) == 6);
- assert(*next(c.begin(), 5) == 7);
- assert(*next(c.begin(), 6) == 8);
- assert(*next(c.begin(), 7) == 9);
-
- i = c.erase_after(next(c.cbefore_begin(), 5), next(c.cbefore_begin(), 9));
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 5);
- assert(*next(c.begin(), 4) == 6);
-
- i = c.erase_after(next(c.cbefore_begin(), 0), next(c.cbefore_begin(), 2));
- assert(i == c.begin());
- assert(distance(c.begin(), c.end()) == 4);
- assert(*next(c.begin(), 0) == 1);
- assert(*next(c.begin(), 1) == 4);
- assert(*next(c.begin(), 2) == 5);
- assert(*next(c.begin(), 3) == 6);
-
- i = c.erase_after(next(c.cbefore_begin(), 0), next(c.cbefore_begin(), 5));
- assert(i == c.begin());
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp
deleted file mode 100644
index 4f51498bc65..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator erase_after(const_iterator p);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- C::iterator i = c.erase_after(next(c.cbefore_begin(), 4));
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 4);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 3);
-
- i = c.erase_after(next(c.cbefore_begin(), 0));
- assert(i == c.begin());
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 1);
- assert(*next(c.begin(), 1) == 2);
- assert(*next(c.begin(), 2) == 3);
-
- i = c.erase_after(next(c.cbefore_begin(), 1));
- assert(i == next(c.begin()));
- assert(distance(c.begin(), c.end()) == 2);
- assert(*next(c.begin(), 0) == 1);
- assert(*next(c.begin(), 1) == 3);
-
- i = c.erase_after(next(c.cbefore_begin(), 1));
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 1);
- assert(*next(c.begin(), 0) == 1);
-
- i = c.erase_after(next(c.cbefore_begin(), 0));
- assert(i == c.begin());
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- C::iterator i = c.erase_after(next(c.cbefore_begin(), 4));
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 4);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 3);
-
- i = c.erase_after(next(c.cbefore_begin(), 0));
- assert(i == c.begin());
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 1);
- assert(*next(c.begin(), 1) == 2);
- assert(*next(c.begin(), 2) == 3);
-
- i = c.erase_after(next(c.cbefore_begin(), 1));
- assert(i == next(c.begin()));
- assert(distance(c.begin(), c.end()) == 2);
- assert(*next(c.begin(), 0) == 1);
- assert(*next(c.begin(), 1) == 3);
-
- i = c.erase_after(next(c.cbefore_begin(), 1));
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 1);
- assert(*next(c.begin(), 0) == 1);
-
- i = c.erase_after(next(c.cbefore_begin(), 0));
- assert(i == c.begin());
- assert(i == c.end());
- assert(distance(c.begin(), c.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp
deleted file mode 100644
index ec650b69572..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator insert_after(const_iterator p, const value_type& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), 0);
- assert(i == c.begin());
- assert(c.front() == 0);
- assert(c.front() == 0);
- assert(distance(c.begin(), c.end()) == 1);
-
- i = c.insert_after(c.cbegin(), 1);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
-
- i = c.insert_after(next(c.cbegin()), 2);
- assert(i == next(c.begin(), 2));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(distance(c.begin(), c.end()) == 3);
-
- i = c.insert_after(c.cbegin(), 3);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 1);
- assert(*next(c.begin(), 3) == 2);
- assert(distance(c.begin(), c.end()) == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), 0);
- assert(i == c.begin());
- assert(c.front() == 0);
- assert(c.front() == 0);
- assert(distance(c.begin(), c.end()) == 1);
-
- i = c.insert_after(c.cbegin(), 1);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
-
- i = c.insert_after(next(c.cbegin()), 2);
- assert(i == next(c.begin(), 2));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(distance(c.begin(), c.end()) == 3);
-
- i = c.insert_after(c.cbegin(), 3);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 1);
- assert(*next(c.begin(), 3) == 2);
- assert(distance(c.begin(), c.end()) == 4);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp
deleted file mode 100644
index 4d301819980..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator insert_after(const_iterator p, initializer_list<value_type> il);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- typedef int T;
- typedef std::forward_list<T> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), {});
- assert(i == c.before_begin());
- assert(distance(c.begin(), c.end()) == 0);
-
- i = c.insert_after(c.cbefore_begin(), {0, 1, 2});
- assert(i == next(c.before_begin(), 3));
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- i = c.insert_after(c.begin(), {3, 4});
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 1);
- assert(*next(c.begin(), 4) == 2);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), {});
- assert(i == c.before_begin());
- assert(distance(c.begin(), c.end()) == 0);
-
- i = c.insert_after(c.cbefore_begin(), {0, 1, 2});
- assert(i == next(c.before_begin(), 3));
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- i = c.insert_after(c.begin(), {3, 4});
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 1);
- assert(*next(c.begin(), 4) == 2);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
deleted file mode 100644
index 103475f1eda..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class InputIterator>
-// iterator insert_after(const_iterator p,
-// InputIterator first, InputIterator last);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- typedef C::iterator I;
- typedef input_iterator<const T*> J;
- C c;
- const T t[] = {0, 1, 2, 3, 4};
- I i = c.insert_after(c.cbefore_begin(), J(t), J(t));
- assert(i == c.before_begin());
- assert(distance(c.begin(), c.end()) == 0);
-
- i = c.insert_after(c.cbefore_begin(), J(t), J(t+3));
- assert(i == next(c.before_begin(), 3));
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- i = c.insert_after(c.begin(), J(t+3), J(t+5));
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 1);
- assert(*next(c.begin(), 4) == 2);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef C::iterator I;
- typedef input_iterator<const T*> J;
- C c;
- const T t[] = {0, 1, 2, 3, 4};
- I i = c.insert_after(c.cbefore_begin(), J(t), J(t));
- assert(i == c.before_begin());
- assert(distance(c.begin(), c.end()) == 0);
-
- i = c.insert_after(c.cbefore_begin(), J(t), J(t+3));
- assert(i == next(c.before_begin(), 3));
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- i = c.insert_after(c.begin(), J(t+3), J(t+5));
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 4);
- assert(*next(c.begin(), 3) == 1);
- assert(*next(c.begin(), 4) == 2);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp
deleted file mode 100644
index 4f0be520c30..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator insert_after(const_iterator p, value_type&& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef std::forward_list<T> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), 0);
- assert(i == c.begin());
- assert(c.front() == 0);
- assert(c.front() == 0);
- assert(distance(c.begin(), c.end()) == 1);
-
- i = c.insert_after(c.cbegin(), 1);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
-
- i = c.insert_after(next(c.cbegin()), 2);
- assert(i == next(c.begin(), 2));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(distance(c.begin(), c.end()) == 3);
-
- i = c.insert_after(c.cbegin(), 3);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 1);
- assert(*next(c.begin(), 3) == 2);
- assert(distance(c.begin(), c.end()) == 4);
- }
-#if __cplusplus >= 201103L
- {
- typedef MoveOnly T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), 0);
- assert(i == c.begin());
- assert(c.front() == 0);
- assert(c.front() == 0);
- assert(distance(c.begin(), c.end()) == 1);
-
- i = c.insert_after(c.cbegin(), 1);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
-
- i = c.insert_after(next(c.cbegin()), 2);
- assert(i == next(c.begin(), 2));
- assert(c.front() == 0);
- assert(*next(c.begin()) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(distance(c.begin(), c.end()) == 3);
-
- i = c.insert_after(c.cbegin(), 3);
- assert(i == next(c.begin()));
- assert(c.front() == 0);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 1);
- assert(*next(c.begin(), 3) == 2);
- assert(distance(c.begin(), c.end()) == 4);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp
deleted file mode 100644
index b2da2ecd3bb..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// iterator insert_after(const_iterator p, size_type n, const value_type& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), 0, 0);
- assert(i == c.before_begin());
- assert(distance(c.begin(), c.end()) == 0);
-
- i = c.insert_after(c.cbefore_begin(), 3, 3);
- assert(i == next(c.before_begin(), 3));
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 3);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 3);
-
- i = c.insert_after(c.begin(), 2, 2);
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 3);
- assert(*next(c.begin(), 1) == 2);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 3);
- assert(*next(c.begin(), 4) == 3);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef C::iterator I;
- C c;
- I i = c.insert_after(c.cbefore_begin(), 0, 0);
- assert(i == c.before_begin());
- assert(distance(c.begin(), c.end()) == 0);
-
- i = c.insert_after(c.cbefore_begin(), 3, 3);
- assert(i == next(c.before_begin(), 3));
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 3);
- assert(*next(c.begin(), 1) == 3);
- assert(*next(c.begin(), 2) == 3);
-
- i = c.insert_after(c.begin(), 2, 2);
- assert(i == next(c.begin(), 2));
- assert(distance(c.begin(), c.end()) == 5);
- assert(*next(c.begin(), 0) == 3);
- assert(*next(c.begin(), 1) == 2);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 3);
- assert(*next(c.begin(), 4) == 3);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp
deleted file mode 100644
index 276f2c9f8ed..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void pop_front();
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- typedef std::forward_list<T> C;
- C c;
- c.push_front(1);
- c.push_front(3);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 1);
- assert(c.front() == 1);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 0);
- }
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef std::forward_list<T> C;
- C c;
- c.push_front(1);
- c.push_front(3);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 1);
- assert(c.front() == 1);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 0);
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.push_front(1);
- c.push_front(3);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 1);
- assert(c.front() == 1);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 0);
- }
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.push_front(1);
- c.push_front(3);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 1);
- assert(c.front() == 1);
- c.pop_front();
- assert(distance(c.begin(), c.end()) == 0);
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp
deleted file mode 100644
index 85958afc1ce..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void push_front(const value_type& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c;
- c.push_front(1);
- assert(c.front() == 1);
- assert(distance(c.begin(), c.end()) == 1);
- c.push_front(3);
- assert(c.front() == 3);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.push_front(1);
- assert(c.front() == 1);
- assert(distance(c.begin(), c.end()) == 1);
- c.push_front(3);
- assert(c.front() == 3);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
deleted file mode 100644
index 43c62eb00cb..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void push_front(const value_type& x);
-
-#include <forward_list>
-#include <cassert>
-
-// Flag that makes the copy constructor for CMyClass throw an exception
-static bool gCopyConstructorShouldThow = false;
-
-
-class CMyClass {
- public: CMyClass();
- public: CMyClass(const CMyClass& iOther);
- public: ~CMyClass();
-
- private: int fMagicValue;
-
- private: static int kStartedConstructionMagicValue;
- private: static int kFinishedConstructionMagicValue;
-};
-
-// Value for fMagicValue when the constructor has started running, but not yet finished
-int CMyClass::kStartedConstructionMagicValue = 0;
-// Value for fMagicValue when the constructor has finished running
-int CMyClass::kFinishedConstructionMagicValue = 12345;
-
-CMyClass::CMyClass() :
- fMagicValue(kStartedConstructionMagicValue)
-{
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::CMyClass(const CMyClass& /*iOther*/) :
- fMagicValue(kStartedConstructionMagicValue)
-{
- // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
- if (gCopyConstructorShouldThow) {
- throw std::exception();
- }
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::~CMyClass() {
- // Only instances for which the constructor has finished running should be destructed
- assert(fMagicValue == kFinishedConstructionMagicValue);
-}
-
-int main()
-{
- CMyClass instance;
- std::forward_list<CMyClass> vec;
-
- vec.push_front(instance);
-
- gCopyConstructorShouldThow = true;
- try {
- vec.push_front(instance);
- }
- catch (...) {
- }
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp
deleted file mode 100644
index 53181ec881e..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void push_front(value_type&& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- typedef MoveOnly T;
- typedef std::forward_list<T> C;
- C c;
- c.push_front(1);
- assert(c.front() == 1);
- assert(distance(c.begin(), c.end()) == 1);
- c.push_front(3);
- assert(c.front() == 3);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
- }
-#if __cplusplus >= 201103L
- {
- typedef MoveOnly T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.push_front(1);
- assert(c.front() == 1);
- assert(distance(c.begin(), c.end()) == 1);
- c.push_front(3);
- assert(c.front() == 3);
- assert(*next(c.begin()) == 1);
- assert(distance(c.begin(), c.end()) == 2);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp
deleted file mode 100644
index ef7ef82626d..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void resize(size_type n);
-
-#include <forward_list>
-#include <cassert>
-
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef DefaultOnly T;
- typedef std::forward_list<T> C;
- C c;
- c.resize(0);
- assert(distance(c.begin(), c.end()) == 0);
- c.resize(10);
- assert(distance(c.begin(), c.end()) == 10);
- c.resize(20);
- assert(distance(c.begin(), c.end()) == 20);
- c.resize(5);
- assert(distance(c.begin(), c.end()) == 5);
- c.resize(0);
- assert(distance(c.begin(), c.end()) == 0);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- c.resize(3);
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- c.resize(6);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 0);
- assert(*next(c.begin(), 4) == 0);
- assert(*next(c.begin(), 5) == 0);
-
- c.resize(6);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 0);
- assert(*next(c.begin(), 4) == 0);
- assert(*next(c.begin(), 5) == 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef DefaultOnly T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- c.resize(0);
- assert(distance(c.begin(), c.end()) == 0);
- c.resize(10);
- assert(distance(c.begin(), c.end()) == 10);
- c.resize(20);
- assert(distance(c.begin(), c.end()) == 20);
- c.resize(5);
- assert(distance(c.begin(), c.end()) == 5);
- c.resize(0);
- assert(distance(c.begin(), c.end()) == 0);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- c.resize(3);
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- c.resize(6);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 0);
- assert(*next(c.begin(), 4) == 0);
- assert(*next(c.begin(), 5) == 0);
-
- c.resize(6);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 0);
- assert(*next(c.begin(), 4) == 0);
- assert(*next(c.begin(), 5) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp
deleted file mode 100644
index d4bd6b4e011..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void resize(size_type n, const value_type& v);
-
-#include <forward_list>
-#include <cassert>
-
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- c.resize(3, 10);
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- c.resize(6, 10);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 10);
- assert(*next(c.begin(), 4) == 10);
- assert(*next(c.begin(), 5) == 10);
-
- c.resize(6, 12);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 10);
- assert(*next(c.begin(), 4) == 10);
- assert(*next(c.begin(), 5) == 10);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4};
- C c(std::begin(t), std::end(t));
-
- c.resize(3, 10);
- assert(distance(c.begin(), c.end()) == 3);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
-
- c.resize(6, 10);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 10);
- assert(*next(c.begin(), 4) == 10);
- assert(*next(c.begin(), 5) == 10);
-
- c.resize(6, 12);
- assert(distance(c.begin(), c.end()) == 6);
- assert(*next(c.begin(), 0) == 0);
- assert(*next(c.begin(), 1) == 1);
- assert(*next(c.begin(), 2) == 2);
- assert(*next(c.begin(), 3) == 10);
- assert(*next(c.begin(), 4) == 10);
- assert(*next(c.begin(), 5) == 10);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge.pass.cpp
deleted file mode 100644
index 3b6f853c84c..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void merge(forward_list&& x);
-
-#include <forward_list>
-#include <iterator>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {3, 5, 6, 7, 12, 13};
- const T t2[] = {0, 1, 2, 4, 8, 9, 10, 11, 14, 15};
- const T t3[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.merge(c2);
- C c3(std::begin(t3), std::end(t3));
- assert(c1 == c3);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {3, 5, 6, 7, 12, 13};
- const T t2[] = {0, 1, 2, 4, 8, 9, 10, 11, 14, 15};
- const T t3[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.merge(c2);
- C c3(std::begin(t3), std::end(t3));
- assert(c1 == c3);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge_pred.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge_pred.pass.cpp
deleted file mode 100644
index 7e873bdddd0..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/merge_pred.pass.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class Compare> void merge(forward_list&& x, Compare comp);
-
-#include <forward_list>
-#include <iterator>
-#include <functional>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {13, 12, 7, 6, 5, 3};
- const T t2[] = {15, 14, 11, 10, 9, 8, 4, 2, 1, 0};
- const T t3[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.merge(c2, std::greater<T>());
- C c3(std::begin(t3), std::end(t3));
- assert(c1 == c3);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {13, 12, 7, 6, 5, 3};
- const T t2[] = {15, 14, 11, 10, 9, 8, 4, 2, 1, 0};
- const T t3[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.merge(c2, std::greater<T>());
- C c3(std::begin(t3), std::end(t3));
- assert(c1 == c3);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp
deleted file mode 100644
index 18d4cae8cc6..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void remove(const value_type& v);
-
-#include <forward_list>
-#include <iterator>
-#include <cassert>
-
-#include "min_allocator.h"
-
-struct S {
- S(int i) : i_(new int(i)) {}
- S(const S &rhs) : i_(new int(*rhs.i_)) {}
- S& operator = (const S &rhs) { *i_ = *rhs.i_; return *this; }
- ~S () { delete i_; i_ = NULL; }
- bool operator == (const S &rhs) const { return *i_ == *rhs.i_; }
- int get () const { return *i_; }
- int *i_;
- };
-
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 0, 0, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2;
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c1;
- C c2;
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(0);
- assert(c1 == c2);
- }
- { // LWG issue #526
- typedef int T;
- typedef std::forward_list<T> C;
- int t1[] = {1, 2, 1, 3, 5, 8, 11};
- int t2[] = { 2, 3, 5, 8, 11};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(c1.front());
- assert(c1 == c2);
- }
- {
- typedef S T;
- typedef std::forward_list<T> C;
- int t1[] = {1, 2, 1, 3, 5, 8, 11, 1};
- int t2[] = { 2, 3, 5, 8, 11 };
- C c;
- for(int *ip = std::end(t1); ip != std::begin(t1);)
- c.push_front(S(*--ip));
- c.remove(c.front());
- C::const_iterator it = c.begin();
- for(int *ip = std::begin(t2); ip != std::end(t2); ++ip, ++it) {
- assert ( it != c.end());
- assert ( *ip == it->get());
- }
- assert ( it == c.end ());
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 0, 0, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2;
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c1;
- C c2;
- c1.remove(0);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.remove(0);
- assert(c1 == c2);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
deleted file mode 100644
index ed408fbd685..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class Predicate> void remove_if(Predicate pred);
-
-#include <forward_list>
-#include <iterator>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "counting_predicates.hpp"
-
-
-bool g(int i)
-{
- return i < 3;
-}
-
-int main()
-{
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 0, 0, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2;
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T> C;
- C c1;
- C c2;
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == 0);
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 0, 0, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2;
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c1;
- C c2;
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == 0);
- }
- {
- typedef int T;
- typedef unary_counting_predicate<bool(*)(T), T> Predicate;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 5, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- Predicate cp(g);
- c1.remove_if(std::ref(cp));
- assert(c1 == c2);
- assert(cp.count() == std::distance(std::begin(t1), std::end(t1)));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp
deleted file mode 100644
index 9bf0d03a885..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void reverse();
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void test(int N)
-{
- C c;
- for (int i = 0; i < N; ++i)
- c.push_front(i);
- c.reverse();
- assert(distance(c.begin(), c.end()) == N);
- typename C::const_iterator j = c.begin();
- for (int i = 0; i < N; ++i, ++j)
- assert(*j == i);
-}
-
-int main()
-{
- for (int i = 0; i < 10; ++i)
- test<std::forward_list<int> >(i);
-#if __cplusplus >= 201103L
- for (int i = 0; i < 10; ++i)
- test<std::forward_list<int, min_allocator<int>> >(i);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort.pass.cpp
deleted file mode 100644
index 06e40c595ec..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort.pass.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void sort();
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void test(int N)
-{
- typedef typename C::value_type T;
- typedef std::vector<T> V;
- V v;
- for (int i = 0; i < N; ++i)
- v.push_back(i);
- std::random_shuffle(v.begin(), v.end());
- C c(v.begin(), v.end());
- c.sort();
- assert(distance(c.begin(), c.end()) == N);
- typename C::const_iterator j = c.begin();
- for (int i = 0; i < N; ++i, ++j)
- assert(*j == i);
-}
-
-int main()
-{
- for (int i = 0; i < 40; ++i)
- test<std::forward_list<int> >(i);
-#if __cplusplus >= 201103L
- for (int i = 0; i < 40; ++i)
- test<std::forward_list<int, min_allocator<int>> >(i);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort_pred.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort_pred.pass.cpp
deleted file mode 100644
index 8b6ca39b2aa..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/sort_pred.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class Compare> void sort(Compare comp);
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <vector>
-#include <functional>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void test(int N)
-{
- typedef typename C::value_type T;
- typedef std::vector<T> V;
- V v;
- for (int i = 0; i < N; ++i)
- v.push_back(i);
- std::random_shuffle(v.begin(), v.end());
- C c(v.begin(), v.end());
- c.sort(std::greater<T>());
- assert(distance(c.begin(), c.end()) == N);
- typename C::const_iterator j = c.begin();
- for (int i = 0; i < N; ++i, ++j)
- assert(*j == N-1-i);
-}
-
-int main()
-{
- for (int i = 0; i < 40; ++i)
- test<std::forward_list<int> >(i);
-#if __cplusplus >= 201103L
- for (int i = 0; i < 40; ++i)
- test<std::forward_list<int, min_allocator<int>> >(i);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp
deleted file mode 100644
index 51da651970c..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void splice_after(const_iterator p, forward_list&& x);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-typedef int T;
-const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7};
-const T t2[] = {10, 11, 12, 13, 14, 15};
-const int size_t1 = std::end(t1) - std::begin(t1);
-const int size_t2 = std::end(t2) - std::begin(t2);
-
-template <class C>
-void
-testd(const C& c, int p, int l)
-{
- typename C::const_iterator i = c.begin();
- int n1 = 0;
- for (; n1 < p; ++n1, ++i)
- assert(*i == t1[n1]);
- for (int n2 = 0; n2 < l; ++n2, ++i)
- assert(*i == t2[n2]);
- for (; n1 < size_t1; ++n1, ++i)
- assert(*i == t1[n1]);
- assert(distance(c.begin(), c.end()) == size_t1 + l);
-}
-
-int main()
-{
- {
- // splicing different containers
- typedef std::forward_list<T> C;
- for (int l = 0; l <= size_t2; ++l)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
- C c2(t2, t2+l);
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c2));
- testd(c1, p, l);
- }
- }
- }
-#if __cplusplus >= 201103L
- {
- // splicing different containers
- typedef std::forward_list<T, min_allocator<T>> C;
- for (int l = 0; l <= size_t2; ++l)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
- C c2(t2, t2+l);
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c2));
- testd(c1, p, l);
- }
- }
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp
deleted file mode 100644
index 296ffcd6955..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void splice_after(const_iterator p, forward_list&& x, const_iterator i);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-typedef int T;
-const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7};
-const T t2[] = {10, 11, 12};
-const int size_t1 = std::end(t1) - std::begin(t1);
-const int size_t2 = std::end(t2) - std::begin(t2);
-
-template <class C>
-void
-testd(const C& c, int p, int f)
-{
- typename C::const_iterator i = c.begin();
- int n1 = 0;
- for (; n1 < p; ++n1, ++i)
- assert(*i == t1[n1]);
- for (int n2 = f; n2 < f+1; ++n2, ++i)
- assert(*i == t2[n2]);
- for (; n1 < size_t1; ++n1, ++i)
- assert(*i == t1[n1]);
- assert(distance(c.begin(), c.end()) == size_t1 + 1);
-}
-
-template <class C>
-void
-tests(const C& c, int p, int f)
-{
- typename C::const_iterator i = c.begin();
- int n = 0;
- int d = 1;
- if (p == f || p == f+1)
- {
- for (n = 0; n < size_t1; ++n, ++i)
- assert(*i == t1[n]);
- }
- else if (p < f)
- {
- for (n = 0; n < p; ++n, ++i)
- assert(*i == t1[n]);
- for (n = f; n < f+1; ++n, ++i)
- assert(*i == t1[n]);
- for (n = p; n < f; ++n, ++i)
- assert(*i == t1[n]);
- for (n = f+1; n < size_t1; ++n, ++i)
- assert(*i == t1[n]);
- }
- else // p > f+1
- {
- for (n = 0; n < f; ++n, ++i)
- assert(*i == t1[n]);
- for (n = f+1; n < p; ++n, ++i)
- assert(*i == t1[n]);
- for (n = f; n < f+1; ++n, ++i)
- assert(*i == t1[n]);
- for (n = p; n < size_t1; ++n, ++i)
- assert(*i == t1[n]);
- }
- assert(distance(c.begin(), c.end()) == size_t1);
-}
-
-int main()
-{
- {
- // splicing different containers
- typedef std::forward_list<T> C;
- for (int f = 0; f <= size_t2-1; ++f)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c2),
- next(c2.cbefore_begin(), f));
- testd(c1, p, f);
- }
- }
-
- // splicing within same container
- for (int f = 0; f <= size_t1-1; ++f)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c1),
- next(c1.cbefore_begin(), f));
- tests(c1, p, f);
- }
- }
- }
-#if __cplusplus >= 201103L
- {
- // splicing different containers
- typedef std::forward_list<T, min_allocator<T>> C;
- for (int f = 0; f <= size_t2-1; ++f)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c2),
- next(c2.cbefore_begin(), f));
- testd(c1, p, f);
- }
- }
-
- // splicing within same container
- for (int f = 0; f <= size_t1-1; ++f)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c1),
- next(c1.cbefore_begin(), f));
- tests(c1, p, f);
- }
- }
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp
deleted file mode 100644
index 90a15995963..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void splice_after(const_iterator p, forward_list&& x,
-// const_iterator first, const_iterator last);
-
-#include <forward_list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-typedef int T;
-const T t1[] = {0, 1, 2, 3, 4, 5, 6, 7};
-const T t2[] = {10, 11, 12, 13, 14, 15};
-const int size_t1 = std::end(t1) - std::begin(t1);
-const int size_t2 = std::end(t2) - std::begin(t2);
-
-template <class C>
-void
-testd(const C& c, int p, int f, int l)
-{
- typename C::const_iterator i = c.begin();
- int n1 = 0;
- for (; n1 < p; ++n1, ++i)
- assert(*i == t1[n1]);
- for (int n2 = f; n2 < l-1; ++n2, ++i)
- assert(*i == t2[n2]);
- for (; n1 < size_t1; ++n1, ++i)
- assert(*i == t1[n1]);
- assert(distance(c.begin(), c.end()) == size_t1 + (l > f+1 ? l-1-f : 0));
-}
-
-template <class C>
-void
-tests(const C& c, int p, int f, int l)
-{
- typename C::const_iterator i = c.begin();
- int n = 0;
- int d = l > f+1 ? l-1-f : 0;
- if (d == 0 || p == f)
- {
- for (n = 0; n < size_t1; ++n, ++i)
- assert(*i == t1[n]);
- }
- else if (p < f)
- {
- for (n = 0; n < p; ++n, ++i)
- assert(*i == t1[n]);
- for (n = f; n < l-1; ++n, ++i)
- assert(*i == t1[n]);
- for (n = p; n < f; ++n, ++i)
- assert(*i == t1[n]);
- for (n = l-1; n < size_t1; ++n, ++i)
- assert(*i == t1[n]);
- }
- else // p > f
- {
- for (n = 0; n < f; ++n, ++i)
- assert(*i == t1[n]);
- for (n = l-1; n < p; ++n, ++i)
- assert(*i == t1[n]);
- for (n = f; n < l-1; ++n, ++i)
- assert(*i == t1[n]);
- for (n = p; n < size_t1; ++n, ++i)
- assert(*i == t1[n]);
- }
- assert(distance(c.begin(), c.end()) == size_t1);
-}
-
-int main()
-{
- {
- // splicing different containers
- typedef std::forward_list<T> C;
- for (int f = 0; f <= size_t2+1; ++f)
- {
- for (int l = f; l <= size_t2+1; ++l)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c2),
- next(c2.cbefore_begin(), f), next(c2.cbefore_begin(), l));
- testd(c1, p, f, l);
- }
- }
- }
-
- // splicing within same container
- for (int f = 0; f <= size_t1+1; ++f)
- {
- for (int l = f; l <= size_t1; ++l)
- {
- for (int p = 0; p <= f; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c1),
- next(c1.cbefore_begin(), f), next(c1.cbefore_begin(), l));
- tests(c1, p, f, l);
- }
- for (int p = l; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c1),
- next(c1.cbefore_begin(), f), next(c1.cbefore_begin(), l));
- tests(c1, p, f, l);
- }
- }
- }
- }
-#if __cplusplus >= 201103L
- {
- // splicing different containers
- typedef std::forward_list<T, min_allocator<T>> C;
- for (int f = 0; f <= size_t2+1; ++f)
- {
- for (int l = f; l <= size_t2+1; ++l)
- {
- for (int p = 0; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c2),
- next(c2.cbefore_begin(), f), next(c2.cbefore_begin(), l));
- testd(c1, p, f, l);
- }
- }
- }
-
- // splicing within same container
- for (int f = 0; f <= size_t1+1; ++f)
- {
- for (int l = f; l <= size_t1; ++l)
- {
- for (int p = 0; p <= f; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c1),
- next(c1.cbefore_begin(), f), next(c1.cbefore_begin(), l));
- tests(c1, p, f, l);
- }
- for (int p = l; p <= size_t1; ++p)
- {
- C c1(std::begin(t1), std::end(t1));
-
- c1.splice_after(next(c1.cbefore_begin(), p), std::move(c1),
- next(c1.cbefore_begin(), f), next(c1.cbefore_begin(), l));
- tests(c1, p, f, l);
- }
- }
- }
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp
deleted file mode 100644
index 25db6e64b8a..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void unique();
-
-#include <forward_list>
-#include <iterator>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {0, 5, 0, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 0, 0, 0};
- const T t2[] = {0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c1;
- C c2;
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {0, 5, 0, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 0, 0, 0};
- const T t2[] = {0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c1;
- C c2;
- c1.unique();
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique();
- assert(c1 == c2);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
deleted file mode 100644
index b7dce20b709..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class BinaryPredicate> void unique(BinaryPredicate binary_pred);
-
-#include <forward_list>
-#include <iterator>
-#include <cassert>
-
-#include "min_allocator.h"
-
-bool g(int x, int y)
-{
- return x == y;
-}
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {0, 5, 0, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {0, 0, 0, 0};
- const T t2[] = {0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c1;
- C c2;
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 5, 5, 0, 0, 0, 5};
- const T t2[] = {0, 5, 0, 5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {0, 0, 0, 0};
- const T t2[] = {0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5};
- const T t2[] = {5};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c1;
- C c2;
- c1.unique(g);
- assert(c1 == c2);
- }
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- const T t1[] = {5, 5, 5, 0};
- const T t2[] = {5, 0};
- C c1(std::begin(t1), std::end(t1));
- C c2(std::begin(t2), std::end(t2));
- c1.unique(g);
- assert(c1 == c2);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
deleted file mode 100644
index ca673b58368..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator>
-// bool operator==(const forward_list<T, Allocator>& x,
-// const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-// bool operator!=(const forward_list<T, Allocator>& x,
-// const forward_list<T, Allocator>& y);
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void test(int N, int M)
-{
- typedef typename C::value_type T;
- C c1;
- for (int i = 0; i < N; ++i)
- c1.push_front(i);
- C c2;
- for (int i = 0; i < M; ++i)
- c2.push_front(i);
- if (N == M)
- assert(c1 == c2);
- else
- assert(c1 != c2);
- c2 = c1;
- assert(c1 == c2);
- if (N > 0)
- {
- c2.front() = N+1;
- assert(c1 != c2);
- }
-}
-
-int main()
-{
- for (int i = 0; i < 10; ++i)
- for (int j = 0; j < 10; ++j)
- test<std::forward_list<int> >(i, j);
-#if __cplusplus >= 201103L
- for (int i = 0; i < 10; ++i)
- for (int j = 0; j < 10; ++j)
- test<std::forward_list<int, min_allocator<int>> >(i, j);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
deleted file mode 100644
index 2b2be7b6c22..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void swap(forward_list& x);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(2));
- }
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- C c2(A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(2));
- }
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(2));
- }
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- C c2(A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(2));
- }
-
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(1));
- }
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- C c2(A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(1));
- }
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(1));
- }
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- C c2(A(2));
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(1));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A());
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A());
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A());
- C c2(A{});
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A{});
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A());
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A{});
- C c2(A{});
- c1.swap(c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
deleted file mode 100644
index d6ba5a47cbe..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator>
-// void swap(forward_list<T, Allocator>& x, forward_list<T, Allocator>& y);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(2));
- }
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- C c2(A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(2));
- }
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(2));
- }
- {
- typedef int T;
- typedef test_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- C c2(A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(1));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(2));
- }
-
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(1));
- }
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A(1));
- C c2(A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A(1));
- }
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(1));
- }
- {
- typedef int T;
- typedef other_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A(1));
- C c2(A(2));
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A(2));
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A(1));
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A());
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A());
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- const T t1[] = {0, 1, 2, 3, 4, 5};
- C c1(std::begin(t1), std::end(t1), A());
- C c2(A{});
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 6);
- assert(*next(c2.begin(), 0) == 0);
- assert(*next(c2.begin(), 1) == 1);
- assert(*next(c2.begin(), 2) == 2);
- assert(*next(c2.begin(), 3) == 3);
- assert(*next(c2.begin(), 4) == 4);
- assert(*next(c2.begin(), 5) == 5);
- assert(c2.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A{});
- const T t2[] = {10, 11, 12};
- C c2(std::begin(t2), std::end(t2), A());
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 3);
- assert(*next(c1.begin(), 0) == 10);
- assert(*next(c1.begin(), 1) == 11);
- assert(*next(c1.begin(), 2) == 12);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A());
- }
- {
- typedef int T;
- typedef min_allocator<T> A;
- typedef std::forward_list<T, A> C;
- C c1(A{});
- C c2(A{});
- swap(c1, c2);
-
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c1.get_allocator() == A());
-
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(c2.get_allocator() == A());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
deleted file mode 100644
index 42e245d007b..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator>
-// bool operator< (const forward_list<T, Allocator>& x,
-// const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-// bool operator> (const forward_list<T, Allocator>& x,
-// const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-// bool operator>=(const forward_list<T, Allocator>& x,
-// const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-// bool operator<=(const forward_list<T, Allocator>& x,
-// const forward_list<T, Allocator>& y);
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void test(int N, int M)
-{
- typedef typename C::value_type T;
- C c1;
- for (int i = 0; i < N; ++i)
- c1.push_front(i);
- C c2;
- for (int i = 0; i < M; ++i)
- c2.push_front(i);
- if (N < M)
- assert(c1 < c2);
- if (N <= M)
- assert(c1 <= c2);
- if (N >= M)
- assert(c1 >= c2);
- if (N > M)
- assert(c1 > c2);
-}
-
-int main()
-{
- for (int i = 0; i < 10; ++i)
- for (int j = 0; j < 10; ++j)
- test<std::forward_list<int> >(i, j);
-#if __cplusplus >= 201103L
- for (int i = 0; i < 10; ++i)
- for (int j = 0; j < 10; ++j)
- test<std::forward_list<int, min_allocator<int>> >(i, j);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
deleted file mode 100644
index cde97d5f738..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void swap(forward_list& c)
-// noexcept(!allocator_type::propagate_on_container_swap::value ||
-// __is_nothrow_swappable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <forward_list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
-
- some_alloc() {}
- some_alloc(const some_alloc&);
- void deallocate(void*, unsigned) {}
-
- typedef std::true_type propagate_on_container_swap;
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::forward_list<MoveOnly> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
- C c1, c2;
- static_assert(!noexcept(swap(c1, c2)), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/max_size.pass.cpp b/libcxx/test/containers/sequences/forwardlist/max_size.pass.cpp
deleted file mode 100644
index be7ebaf44b0..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/max_size.pass.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// size_type max_size() const;
-
-#include <forward_list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::forward_list<T> C;
- C c;
- assert(c.max_size() > 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::forward_list<T, min_allocator<T>> C;
- C c;
- assert(c.max_size() > 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/types.pass.cpp b/libcxx/test/containers/sequences/forwardlist/types.pass.cpp
deleted file mode 100644
index c95548710bc..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/types.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator = allocator<T>>
-// class forward_list
-// {
-// public:
-// typedef T value_type;
-// typedef Allocator allocator_type;
-//
-// typedef value_type& reference;
-// typedef const value_type& const_reference;
-// typedef typename allocator_traits<allocator_type>::pointer pointer;
-// typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
-// typedef typename allocator_traits<allocator_type>::size_type size_type;
-// typedef typename allocator_traits<allocator_type>::difference_type difference_type;
-// ...
-// };
-
-#include <forward_list>
-#include <type_traits>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef std::forward_list<char> C;
- static_assert((std::is_same<C::value_type, char>::value), "");
- static_assert((std::is_same<C::allocator_type, std::allocator<char> >::value), "");
- static_assert((std::is_same<C::reference, char&>::value), "");
- static_assert((std::is_same<C::const_reference, const char&>::value), "");
- static_assert((std::is_same<C::pointer, char*>::value), "");
- static_assert((std::is_same<C::const_pointer, const char*>::value), "");
- static_assert((std::is_same<C::size_type, std::size_t>::value), "");
- static_assert((std::is_same<C::difference_type, std::ptrdiff_t>::value), "");
- }
-#if __cplusplus >= 201103L
- {
- typedef std::forward_list<char, min_allocator<char>> C;
- static_assert((std::is_same<C::value_type, char>::value), "");
- static_assert((std::is_same<C::allocator_type, min_allocator<char> >::value), "");
- static_assert((std::is_same<C::reference, char&>::value), "");
- static_assert((std::is_same<C::const_reference, const char&>::value), "");
- static_assert((std::is_same<C::pointer, min_pointer<char>>::value), "");
- static_assert((std::is_same<C::const_pointer, min_pointer<const char>>::value), "");
-// min_allocator doesn't have a size_type, so one gets synthesized
- static_assert((std::is_same<C::size_type, std::make_unsigned<C::difference_type>::type>::value), "");
- static_assert((std::is_same<C::difference_type, std::ptrdiff_t>::value), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/forwardlist/version.pass.cpp b/libcxx/test/containers/sequences/forwardlist/version.pass.cpp
deleted file mode 100644
index 918c8dd5d73..00000000000
--- a/libcxx/test/containers/sequences/forwardlist/version.pass.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-#include <forward_list>
-
-#ifndef _LIBCPP_VERSION
-#error _LIBCPP_VERSION not defined
-#endif
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/list/db_back.pass.cpp b/libcxx/test/containers/sequences/list/db_back.pass.cpp
deleted file mode 100644
index b16c0e90701..00000000000
--- a/libcxx/test/containers/sequences/list/db_back.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call back() on empty container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- C c(1);
- assert(c.back() == 0);
- c.clear();
- assert(c.back() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c(1);
- assert(c.back() == 0);
- c.clear();
- assert(c.back() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_cback.pass.cpp b/libcxx/test/containers/sequences/list/db_cback.pass.cpp
deleted file mode 100644
index ba3977e16f4..00000000000
--- a/libcxx/test/containers/sequences/list/db_cback.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call back() on empty const container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- const C c;
- assert(c.back() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- const C c;
- assert(c.back() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_cfront.pass.cpp b/libcxx/test/containers/sequences/list/db_cfront.pass.cpp
deleted file mode 100644
index d42290c43c0..00000000000
--- a/libcxx/test/containers/sequences/list/db_cfront.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call front() on empty const container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- const C c;
- assert(c.front() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- const C c;
- assert(c.front() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_front.pass.cpp b/libcxx/test/containers/sequences/list/db_front.pass.cpp
deleted file mode 100644
index 037b16035c6..00000000000
--- a/libcxx/test/containers/sequences/list/db_front.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call front() on empty container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- C c(1);
- assert(c.front() == 0);
- c.clear();
- assert(c.front() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c(1);
- assert(c.front() == 0);
- c.clear();
- assert(c.front() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_iterators_6.pass.cpp b/libcxx/test/containers/sequences/list/db_iterators_6.pass.cpp
deleted file mode 100644
index a5b8020b373..00000000000
--- a/libcxx/test/containers/sequences/list/db_iterators_6.pass.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Decrement iterator prior to begin.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- C c(1);
- C::iterator i = c.end();
- --i;
- assert(i == c.begin());
- --i;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.end();
- --i;
- assert(i == c.begin());
- --i;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_iterators_7.pass.cpp b/libcxx/test/containers/sequences/list/db_iterators_7.pass.cpp
deleted file mode 100644
index 76a491b1184..00000000000
--- a/libcxx/test/containers/sequences/list/db_iterators_7.pass.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Increment iterator past end.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- C c(1);
- C::iterator i = c.begin();
- ++i;
- assert(i == c.end());
- ++i;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.begin();
- ++i;
- assert(i == c.end());
- ++i;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_iterators_8.pass.cpp b/libcxx/test/containers/sequences/list/db_iterators_8.pass.cpp
deleted file mode 100644
index 1d1ee23a393..00000000000
--- a/libcxx/test/containers/sequences/list/db_iterators_8.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Dereference non-dereferenceable iterator.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- C c(1);
- C::iterator i = c.end();
- T j = *i;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.end();
- T j = *i;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/db_iterators_9.pass.cpp b/libcxx/test/containers/sequences/list/db_iterators_9.pass.cpp
deleted file mode 100644
index d02fcd6e449..00000000000
--- a/libcxx/test/containers/sequences/list/db_iterators_9.pass.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Operations on "NULL" iterators
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) do { if (!x) throw 1; } while(0)
-
-#include <list>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-struct S { int val; };
-
-int main()
-{
-#if _LIBCPP_STD_VER > 11
- {
- unsigned lib_asserts;
-
- typedef S T;
- typedef std::list<T> C;
- C::iterator i{};
- C::const_iterator ci{};
-
- lib_asserts = 0;
- try { ++i; } catch (int) { ++lib_asserts; }
- try { i++; } catch (int) { ++lib_asserts; }
- try { ++ci; } catch (int) { ++lib_asserts; }
- try { ci++; } catch (int) { ++lib_asserts; }
- assert(lib_asserts == 4);
-
- lib_asserts = 0;
- try { --i; } catch (int) { ++lib_asserts; }
- try { i--; } catch (int) { ++lib_asserts; }
- try { --ci; } catch (int) { ++lib_asserts; }
- try { ci--; } catch (int) { ++lib_asserts; }
- assert(lib_asserts == 4);
-
- lib_asserts = 0;
- try { *i; } catch (int) { ++lib_asserts; }
- try { *ci; } catch (int) { ++lib_asserts; }
- try { (void) i->val; } catch (int) { ++lib_asserts; }
- try { (void) ci->val; } catch (int) { ++lib_asserts; }
- assert(lib_asserts == 4);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/iterators.pass.cpp b/libcxx/test/containers/sequences/list/iterators.pass.cpp
deleted file mode 100644
index a33ee3ecd2d..00000000000
--- a/libcxx/test/containers/sequences/list/iterators.pass.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator begin();
-// iterator end();
-// const_iterator begin() const;
-// const_iterator end() const;
-// const_iterator cbegin() const;
-// const_iterator cend() const;
-
-#include <list>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-struct A
-{
- int first;
- int second;
-};
-
-int main()
-{
- {
- typedef int T;
- typedef std::list<T> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::list<T> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::list<T> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef int T;
- typedef std::list<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 1);
- *i = 10;
- assert(*i == 10);
- assert(std::distance(c.begin(), c.end()) == 10);
- }
- {
- typedef int T;
- typedef std::list<T> C;
- C::iterator i;
- C::const_iterator j;
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 1);
- *i = 10;
- assert(*i == 10);
- assert(std::distance(c.begin(), c.end()) == 10);
- }
- {
- typedef int T;
- typedef std::list<T, min_allocator<T>> C;
- C::iterator i;
- C::const_iterator j;
- }
- {
- typedef A T;
- typedef std::list<T, min_allocator<T>> C;
- C c = {A{1, 2}};
- C::iterator i = c.begin();
- i->first = 3;
- C::const_iterator j = i;
- assert(j->first == 3);
- }
-#endif
-#if _LIBCPP_STD_VER > 11
- {
- std::list<int> c;
- std::list<int>::iterator ii1{}, ii2{};
- std::list<int>::iterator ii4 = ii1;
- std::list<int>::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
-
- assert (!(ii1 != ii2 ));
-
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
-
- assert ( ii1 != c.cbegin());
- assert ( cii != c.begin());
- }
-#endif
-
-}
diff --git a/libcxx/test/containers/sequences/list/list.capacity/resize_size.pass.cpp b/libcxx/test/containers/sequences/list/list.capacity/resize_size.pass.cpp
deleted file mode 100644
index 14629b173a6..00000000000
--- a/libcxx/test/containers/sequences/list/list.capacity/resize_size.pass.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void resize(size_type sz);
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> l(5, 2);
- l.resize(2);
- assert(l.size() == 2);
- assert(std::distance(l.begin(), l.end()) == 2);
- assert(l == std::list<int>(2, 2));
- }
- {
- std::list<int> l(5, 2);
- l.resize(10);
- assert(l.size() == 10);
- assert(std::distance(l.begin(), l.end()) == 10);
- assert(l.front() == 2);
- assert(l.back() == 0);
- }
-#ifdef __LIBCPP_MOVE
- {
- std::list<DefaultOnly> l(10);
- l.resize(5);
- assert(l.size() == 5);
- assert(std::distance(l.begin(), l.end()) == 5);
- }
- {
- std::list<DefaultOnly> l(10);
- l.resize(20);
- assert(l.size() == 20);
- assert(std::distance(l.begin(), l.end()) == 20);
- }
-#endif // __LIBCPP_MOVE
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l(5, 2);
- l.resize(2);
- assert(l.size() == 2);
- assert(std::distance(l.begin(), l.end()) == 2);
- assert((l == std::list<int, min_allocator<int>>(2, 2)));
- }
- {
- std::list<int, min_allocator<int>> l(5, 2);
- l.resize(10);
- assert(l.size() == 10);
- assert(std::distance(l.begin(), l.end()) == 10);
- assert(l.front() == 2);
- assert(l.back() == 0);
- }
-#ifdef __LIBCPP_MOVE
- {
- std::list<DefaultOnly, min_allocator<DefaultOnly>> l(10);
- l.resize(5);
- assert(l.size() == 5);
- assert(std::distance(l.begin(), l.end()) == 5);
- }
- {
- std::list<DefaultOnly, min_allocator<DefaultOnly>> l(10);
- l.resize(20);
- assert(l.size() == 20);
- assert(std::distance(l.begin(), l.end()) == 20);
- }
-#endif // __LIBCPP_MOVE
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.capacity/resize_size_value.pass.cpp b/libcxx/test/containers/sequences/list/list.capacity/resize_size_value.pass.cpp
deleted file mode 100644
index 2738ffbbefd..00000000000
--- a/libcxx/test/containers/sequences/list/list.capacity/resize_size_value.pass.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void resize(size_type sz, const value_type& x);
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<double> l(5, 2);
- l.resize(2, 3.5);
- assert(l.size() == 2);
- assert(std::distance(l.begin(), l.end()) == 2);
- assert(l == std::list<double>(2, 2));
- }
- {
- std::list<double> l(5, 2);
- l.resize(10, 3.5);
- assert(l.size() == 10);
- assert(std::distance(l.begin(), l.end()) == 10);
- assert(l.front() == 2);
- assert(l.back() == 3.5);
- }
-#if __cplusplus >= 201103L
- {
- std::list<double, min_allocator<double>> l(5, 2);
- l.resize(2, 3.5);
- assert(l.size() == 2);
- assert(std::distance(l.begin(), l.end()) == 2);
- assert((l == std::list<double, min_allocator<double>>(2, 2)));
- }
- {
- std::list<double, min_allocator<double>> l(5, 2);
- l.resize(10, 3.5);
- assert(l.size() == 10);
- assert(std::distance(l.begin(), l.end()) == 10);
- assert(l.front() == 2);
- assert(l.back() == 3.5);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/assign_copy.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/assign_copy.pass.cpp
deleted file mode 100644
index b851eb9dc5a..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/assign_copy.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list& operator=(const list& c);
-
-#include <list>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int, test_allocator<int> > l(3, 2, test_allocator<int>(5));
- std::list<int, test_allocator<int> > l2(l, test_allocator<int>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<int>(3));
- }
- {
- std::list<int, other_allocator<int> > l(3, 2, other_allocator<int>(5));
- std::list<int, other_allocator<int> > l2(l, other_allocator<int>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<int>(5));
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int> > l(3, 2, min_allocator<int>());
- std::list<int, min_allocator<int> > l2(l, min_allocator<int>());
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<int>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/assign_initializer_list.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/assign_initializer_list.pass.cpp
deleted file mode 100644
index 24bd140c4e4..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/assign_initializer_list.pass.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void assign(initializer_list<value_type> il);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::list<int> d;
- d.assign({3, 4, 5, 6});
- assert(d.size() == 4);
- std::list<int>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> d;
- d.assign({3, 4, 5, 6});
- assert(d.size() == 4);
- std::list<int, min_allocator<int>>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/assign_move.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/assign_move.pass.cpp
deleted file mode 100644
index 99f0a98204f..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/assign_move.pass.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list& operator=(list&& c);
-
-#include <list>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::list<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, test_allocator<MoveOnly> > l2(test_allocator<MoveOnly>(5));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
- {
- std::list<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::list<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, test_allocator<MoveOnly> > l2(test_allocator<MoveOnly>(6));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == test_allocator<MoveOnly>(6));
- }
- {
- std::list<MoveOnly, other_allocator<MoveOnly> > l(other_allocator<MoveOnly>(5));
- std::list<MoveOnly, other_allocator<MoveOnly> > lo(other_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, other_allocator<MoveOnly> > l2(other_allocator<MoveOnly>(6));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#if __cplusplus >= 201103L
- {
- std::list<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
- std::list<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, min_allocator<MoveOnly> > l2(min_allocator<MoveOnly>{});
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/copy.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/copy.pass.cpp
deleted file mode 100644
index 530690a925d..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/copy.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(const list& c);
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> l(3, 2);
- std::list<int> l2 = l;
- assert(l2 == l);
- }
- {
- std::list<int, test_allocator<int> > l(3, 2, test_allocator<int>(5));
- std::list<int, test_allocator<int> > l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == l.get_allocator());
- }
-#ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
- {
- std::list<int, other_allocator<int> > l(3, 2, other_allocator<int>(5));
- std::list<int, other_allocator<int> > l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<int>(-2));
- }
-#endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l(3, 2);
- std::list<int, min_allocator<int>> l2 = l;
- assert(l2 == l);
- }
- {
- std::list<int, min_allocator<int> > l(3, 2, min_allocator<int>());
- std::list<int, min_allocator<int> > l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == l.get_allocator());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/copy_alloc.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/copy_alloc.pass.cpp
deleted file mode 100644
index 99fe9f115f9..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/copy_alloc.pass.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(const list& c, const allocator_type& a);
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int, test_allocator<int> > l(3, 2, test_allocator<int>(5));
- std::list<int, test_allocator<int> > l2(l, test_allocator<int>(3));
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<int>(3));
- }
- {
- std::list<int, other_allocator<int> > l(3, 2, other_allocator<int>(5));
- std::list<int, other_allocator<int> > l2(l, other_allocator<int>(3));
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<int>(3));
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int> > l(3, 2, min_allocator<int>());
- std::list<int, min_allocator<int> > l2(l, min_allocator<int>());
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<int>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp
deleted file mode 100644
index c05bd74ca79..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// explicit list(const Alloc& = Alloc());
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<DefaultOnly> l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<int> l((std::allocator<int>()));
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<DefaultOnly, min_allocator<DefaultOnly>> l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<int, min_allocator<int>> l((min_allocator<int>()));
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<int> l = {};
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/default_noexcept.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/default_noexcept.pass.cpp
deleted file mode 100644
index f821fb4e7bb..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/default_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list()
-// noexcept(is_nothrow_default_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::list<MoveOnly> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/default_stack_alloc.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/default_stack_alloc.pass.cpp
deleted file mode 100644
index 9d9946b6896..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/default_stack_alloc.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// explicit list(const Alloc& = Alloc());
-
-#include <list>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<int> l((std::allocator<int>()));
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<int, stack_allocator<int, 4> > l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l;
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
- {
- std::list<int, min_allocator<int>> l((min_allocator<int>()));
- assert(l.size() == 0);
- assert(std::distance(l.begin(), l.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
deleted file mode 100644
index 13c7e5b5797..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// ~list() // implied noexcept;
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-#if __has_feature(cxx_noexcept)
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
- ~some_alloc() noexcept(false);
-};
-
-#endif
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::list<MoveOnly> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_destructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/initializer_list.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/initializer_list.pass.cpp
deleted file mode 100644
index 3307017989e..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/initializer_list.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(initializer_list<value_type> il);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::list<int> d = {3, 4, 5, 6};
- assert(d.size() == 4);
- std::list<int>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> d = {3, 4, 5, 6};
- assert(d.size() == 4);
- std::list<int, min_allocator<int>>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/initializer_list_alloc.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/initializer_list_alloc.pass.cpp
deleted file mode 100644
index 4a85e378c1c..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/initializer_list_alloc.pass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(initializer_list<value_type> il, const Allocator& a = allocator_type());
-
-#include <list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::list<int, test_allocator<int>> d({3, 4, 5, 6}, test_allocator<int>(3));
- assert(d.get_allocator() == test_allocator<int>(3));
- assert(d.size() == 4);
- std::list<int>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> d({3, 4, 5, 6}, min_allocator<int>());
- assert(d.get_allocator() == min_allocator<int>());
- assert(d.size() == 4);
- std::list<int, min_allocator<int>>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp
deleted file mode 100644
index 09eae8ab43c..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class InputIterator>
-// list(InputIterator first, InputIterator last, const Allocator& = Allocator());
-
-#include <list>
-#include <cassert>
-#include "test_iterators.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a[] = {0, 1, 2, 3};
- std::list<int> l(input_iterator<const int*>(a),
- input_iterator<const int*>(a + sizeof(a)/sizeof(a[0])));
- assert(l.size() == sizeof(a)/sizeof(a[0]));
- assert(std::distance(l.begin(), l.end()) == sizeof(a)/sizeof(a[0]));
- int j = 0;
- for (std::list<int>::const_iterator i = l.begin(), e = l.end(); i != e; ++i, ++j)
- assert(*i == j);
- }
- {
- int a[] = {0, 1, 2, 3};
- std::list<int> l(input_iterator<const int*>(a),
- input_iterator<const int*>(a + sizeof(a)/sizeof(a[0])),
- std::allocator<int>());
- assert(l.size() == sizeof(a)/sizeof(a[0]));
- assert(std::distance(l.begin(), l.end()) == sizeof(a)/sizeof(a[0]));
- int j = 0;
- for (std::list<int>::const_iterator i = l.begin(), e = l.end(); i != e; ++i, ++j)
- assert(*i == j);
- }
- {
- int a[] = {0, 1, 2, 3};
- std::list<int, stack_allocator<int, sizeof(a)/sizeof(a[0])> > l(input_iterator<const int*>(a),
- input_iterator<const int*>(a + sizeof(a)/sizeof(a[0])));
- assert(l.size() == sizeof(a)/sizeof(a[0]));
- assert(std::distance(l.begin(), l.end()) == sizeof(a)/sizeof(a[0]));
- int j = 0;
- for (std::list<int>::const_iterator i = l.begin(), e = l.end(); i != e; ++i, ++j)
- assert(*i == j);
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {0, 1, 2, 3};
- std::list<int, min_allocator<int>> l(input_iterator<const int*>(a),
- input_iterator<const int*>(a + sizeof(a)/sizeof(a[0])));
- assert(l.size() == sizeof(a)/sizeof(a[0]));
- assert(std::distance(l.begin(), l.end()) == sizeof(a)/sizeof(a[0]));
- int j = 0;
- for (std::list<int, min_allocator<int>>::const_iterator i = l.begin(), e = l.end(); i != e; ++i, ++j)
- assert(*i == j);
- }
- {
- int a[] = {0, 1, 2, 3};
- std::list<int, min_allocator<int>> l(input_iterator<const int*>(a),
- input_iterator<const int*>(a + sizeof(a)/sizeof(a[0])),
- min_allocator<int>());
- assert(l.size() == sizeof(a)/sizeof(a[0]));
- assert(std::distance(l.begin(), l.end()) == sizeof(a)/sizeof(a[0]));
- int j = 0;
- for (std::list<int, min_allocator<int>>::const_iterator i = l.begin(), e = l.end(); i != e; ++i, ++j)
- assert(*i == j);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/move.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/move.pass.cpp
deleted file mode 100644
index 44782b91075..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/move.pass.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(list&& c);
-
-#include <list>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::list<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, test_allocator<MoveOnly> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
- {
- std::list<MoveOnly, other_allocator<MoveOnly> > l(other_allocator<MoveOnly>(5));
- std::list<MoveOnly, other_allocator<MoveOnly> > lo(other_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, other_allocator<MoveOnly> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#if __cplusplus >= 201103L
- {
- std::list<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
- std::list<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, min_allocator<MoveOnly> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#endif
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> l1 = {1, 2, 3};
- std::list<int>::iterator i = l1.begin();
- std::list<int> l2 = std::move(l1);
- assert(*l2.erase(i) == 2);
- assert(l2.size() == 2);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/move_alloc.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/move_alloc.pass.cpp
deleted file mode 100644
index 4730755db81..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/move_alloc.pass.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(list&& c, const allocator_type& a);
-
-#include <list>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::list<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, test_allocator<MoveOnly> > l2(std::move(l), test_allocator<MoveOnly>(6));
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == test_allocator<MoveOnly>(6));
- }
- {
- std::list<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::list<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, test_allocator<MoveOnly> > l2(std::move(l), test_allocator<MoveOnly>(5));
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == test_allocator<MoveOnly>(5));
- }
- {
- std::list<MoveOnly, other_allocator<MoveOnly> > l(other_allocator<MoveOnly>(5));
- std::list<MoveOnly, other_allocator<MoveOnly> > lo(other_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, other_allocator<MoveOnly> > l2(std::move(l), other_allocator<MoveOnly>(4));
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == other_allocator<MoveOnly>(4));
- }
-#if __cplusplus >= 201103L
- {
- std::list<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
- std::list<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::list<MoveOnly, min_allocator<MoveOnly> > l2(std::move(l), min_allocator<MoveOnly>());
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == min_allocator<MoveOnly>());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
deleted file mode 100644
index d502e1c09c8..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list& operator=(list&& c)
-// noexcept(
-// allocator_type::propagate_on_container_move_assignment::value &&
-// is_nothrow_move_assignable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::list<MoveOnly> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/move_noexcept.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/move_noexcept.pass.cpp
deleted file mode 100644
index 2c10443f76b..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/move_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(list&&)
-// noexcept(is_nothrow_move_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::list<MoveOnly> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/op_equal_initializer_list.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/op_equal_initializer_list.pass.cpp
deleted file mode 100644
index 7b7b8a327b8..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/op_equal_initializer_list.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list& operator=(initializer_list<value_type> il);
-
-#include <list>
-#include <cassert>
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::list<int> d;
- d = {3, 4, 5, 6};
- assert(d.size() == 4);
- std::list<int>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> d;
- d = {3, 4, 5, 6};
- assert(d.size() == 4);
- std::list<int, min_allocator<int>>::iterator i = d.begin();
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/size_type.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/size_type.pass.cpp
deleted file mode 100644
index 75b93a3dfb6..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/size_type.pass.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// explicit list(size_type n);
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test3(unsigned n, Allocator const &alloc = Allocator())
-{
-#if _LIBCPP_STD_VER > 11
- typedef std::list<T, Allocator> C;
- typedef typename C::const_iterator const_iterator;
- {
- C d(n, alloc);
- assert(d.size() == n);
- assert(std::distance(d.begin(), d.end()) == n);
- assert(d.get_allocator() == alloc);
- }
-#endif
-}
-
-
-int main()
-{
- {
- std::list<int> l(3);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int>::const_iterator i = l.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- }
- {
- std::list<int, stack_allocator<int, 3> > l(3);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int>::const_iterator i = l.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- }
-#if _LIBCPP_STD_VER > 11
- {
- typedef std::list<int, min_allocator<int> > C;
- C l(3, min_allocator<int> ());
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- C::const_iterator i = l.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- test3<int, min_allocator<int>> (3);
- }
-#endif
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<DefaultOnly> l(3);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l(3);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int, min_allocator<int>>::const_iterator i = l.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- ++i;
- assert(*i == 0);
- }
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<DefaultOnly, min_allocator<DefaultOnly>> l(3);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.cons/size_value_alloc.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/size_value_alloc.pass.cpp
deleted file mode 100644
index 12da86da0a4..00000000000
--- a/libcxx/test/containers/sequences/list/list.cons/size_value_alloc.pass.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// list(size_type n, const T& value, const Allocator& = Allocator());
-
-#include <list>
-#include <cassert>
-#include "DefaultOnly.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> l(3, 2);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int>::const_iterator i = l.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l(3, 2, std::allocator<int>());
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int>::const_iterator i = l.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, stack_allocator<int, 3> > l(3, 2);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int>::const_iterator i = l.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l(3, 2);
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int, min_allocator<int>>::const_iterator i = l.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l(3, 2, min_allocator<int>());
- assert(l.size() == 3);
- assert(std::distance(l.begin(), l.end()) == 3);
- std::list<int, min_allocator<int>>::const_iterator i = l.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 2);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/clear.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/clear.pass.cpp
deleted file mode 100644
index 38696b6eb50..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/clear.pass.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void clear();
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a[] = {1, 2, 3};
- std::list<int> c(a, a+3);
- c.clear();
- assert(c.empty());
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {1, 2, 3};
- std::list<int, min_allocator<int>> c(a, a+3);
- c.clear();
- assert(c.empty());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/emplace.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/emplace.pass.cpp
deleted file mode 100644
index 6476d1d6c6a..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/emplace.pass.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class... Args> void emplace(const_iterator p, Args&&... args);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-class A
-{
- int i_;
- double d_;
-
- A(const A&);
- A& operator=(const A&);
-public:
- A(int i, double d)
- : i_(i), d_(d) {}
-
- int geti() const {return i_;}
- double getd() const {return d_;}
-};
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<A> c;
- c.emplace(c.cbegin(), 2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- c.emplace(c.cend(), 3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<A> c1;
- std::list<A> c2;
- std::list<A>::iterator i = c1.emplace(c2.cbegin(), 2, 3.5);
- assert(false);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#if __cplusplus >= 201103L
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<A, min_allocator<A>> c;
- c.emplace(c.cbegin(), 2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- c.emplace(c.cend(), 3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<A, min_allocator<A>> c1;
- std::list<A, min_allocator<A>> c2;
- std::list<A, min_allocator<A>>::iterator i = c1.emplace(c2.cbegin(), 2, 3.5);
- assert(false);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/emplace_back.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/emplace_back.pass.cpp
deleted file mode 100644
index 5983efc59ad..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/emplace_back.pass.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class... Args> void emplace_back(Args&&... args);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-class A
-{
- int i_;
- double d_;
-
- A(const A&);
- A& operator=(const A&);
-public:
- A(int i, double d)
- : i_(i), d_(d) {}
-
- int geti() const {return i_;}
- double getd() const {return d_;}
-};
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<A> c;
- c.emplace_back(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- c.emplace_back(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- }
-#if __cplusplus >= 201103L
- {
- std::list<A, min_allocator<A>> c;
- c.emplace_back(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- c.emplace_back(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/emplace_front.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/emplace_front.pass.cpp
deleted file mode 100644
index e2e68e33138..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/emplace_front.pass.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class... Args> void emplace_front(Args&&... args);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-class A
-{
- int i_;
- double d_;
-
- A(const A&);
- A& operator=(const A&);
-public:
- A(int i, double d)
- : i_(i), d_(d) {}
-
- int geti() const {return i_;}
- double getd() const {return d_;}
-};
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<A> c;
- c.emplace_front(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- c.emplace_front(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 3);
- assert(c.front().getd() == 4.5);
- assert(c.back().geti() == 2);
- assert(c.back().getd() == 3.5);
- }
-#if __cplusplus >= 201103L
- {
- std::list<A, min_allocator<A>> c;
- c.emplace_front(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- c.emplace_front(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 3);
- assert(c.front().getd() == 4.5);
- assert(c.back().geti() == 2);
- assert(c.back().getd() == 3.5);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter.pass.cpp
deleted file mode 100644
index c1cc9004367..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter.pass.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator erase(const_iterator position);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int>::const_iterator i = l1.begin();
- ++i;
- std::list<int>::iterator j = l1.erase(i);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(*j == 3);
- assert(*l1.begin() == 1);
- assert(*next(l1.begin()) == 3);
- j = l1.erase(j);
- assert(j == l1.end());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(*l1.begin() == 1);
- j = l1.erase(l1.begin());
- assert(j == l1.end());
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- ++i;
- std::list<int, min_allocator<int>>::iterator j = l1.erase(i);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(*j == 3);
- assert(*l1.begin() == 1);
- assert(*next(l1.begin()) == 3);
- j = l1.erase(j);
- assert(j == l1.end());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(*l1.begin() == 1);
- j = l1.erase(l1.begin());
- assert(j == l1.end());
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp
deleted file mode 100644
index 18c15eb02c8..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call erase(const_iterator position) with end()
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <cstdlib>
-#include <exception>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int>::const_iterator i = l1.end();
- l1.erase(i);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::const_iterator i = l1.end();
- l1.erase(i);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp
deleted file mode 100644
index 61ff8409c96..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call erase(const_iterator position) with iterator from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <cstdlib>
-#include <exception>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a1, a1+3);
- std::list<int>::const_iterator i = l2.begin();
- l1.erase(i);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a1, a1+3);
- std::list<int, min_allocator<int>>::const_iterator i = l2.begin();
- l1.erase(i);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter.pass.cpp
deleted file mode 100644
index bd3f66b4116..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter.pass.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator erase(const_iterator first, const_iterator last);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- int a1[] = {1, 2, 3};
- {
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l1.cbegin(), l1.cbegin());
- assert(l1.size() == 3);
- assert(distance(l1.cbegin(), l1.cend()) == 3);
- assert(i == l1.begin());
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin()));
- assert(l1.size() == 2);
- assert(distance(l1.cbegin(), l1.cend()) == 2);
- assert(i == l1.begin());
- assert(l1 == std::list<int>(a1+1, a1+3));
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.cbegin(), l1.cend()) == 1);
- assert(i == l1.begin());
- assert(l1 == std::list<int>(a1+2, a1+3));
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3));
- assert(l1.size() == 0);
- assert(distance(l1.cbegin(), l1.cend()) == 0);
- assert(i == l1.begin());
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), l1.cbegin());
- assert(l1.size() == 3);
- assert(distance(l1.cbegin(), l1.cend()) == 3);
- assert(i == l1.begin());
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin()));
- assert(l1.size() == 2);
- assert(distance(l1.cbegin(), l1.cend()) == 2);
- assert(i == l1.begin());
- assert((l1 == std::list<int, min_allocator<int>>(a1+1, a1+3)));
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.cbegin(), l1.cend()) == 1);
- assert(i == l1.begin());
- assert((l1 == std::list<int, min_allocator<int>>(a1+2, a1+3)));
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3));
- assert(l1.size() == 0);
- assert(distance(l1.cbegin(), l1.cend()) == 0);
- assert(i == l1.begin());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp
deleted file mode 100644
index 71ad497e7d9..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call erase(const_iterator first, const_iterator last); with first iterator from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l2.cbegin(), next(l1.cbegin()));
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l2.cbegin(), next(l1.cbegin()));
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp
deleted file mode 100644
index db76b4de486..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call erase(const_iterator first, const_iterator last); with second iterator from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l1.cbegin(), next(l2.cbegin()));
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l2.cbegin()));
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp
deleted file mode 100644
index 25c5c6147a0..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call erase(const_iterator first, const_iterator last); with both iterators from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a1, a1+3);
- std::list<int>::iterator i = l1.erase(l2.cbegin(), next(l2.cbegin()));
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(l2.cbegin(), next(l2.cbegin()));
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp
deleted file mode 100644
index 35a4ceb4848..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// Call erase(const_iterator first, const_iterator last); with a bad range
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <list>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.erase(next(l1.cbegin()), l1.cbegin());
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.erase(next(l1.cbegin()), l1.cbegin());
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_initializer_list.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_initializer_list.pass.cpp
deleted file mode 100644
index a82a2696e82..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_initializer_list.pass.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator insert(const_iterator p, initializer_list<value_type> il);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::list<int> d(10, 1);
- std::list<int>::iterator i = d.insert(next(d.cbegin(), 2), {3, 4, 5, 6});
- assert(d.size() == 14);
- assert(i == next(d.begin(), 2));
- i = d.begin();
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> d(10, 1);
- std::list<int, min_allocator<int>>::iterator i = d.insert(next(d.cbegin(), 2), {3, 4, 5, 6});
- assert(d.size() == 14);
- assert(i == next(d.begin(), 2));
- i = d.begin();
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 3);
- assert(*i++ == 4);
- assert(*i++ == 5);
- assert(*i++ == 6);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- assert(*i++ == 1);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
deleted file mode 100644
index d69deac36a9..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <InputIterator Iter>
-// iterator insert(const_iterator position, Iter first, Iter last);
-
-// UNSUPPORTED: asan, msan
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cstdlib>
-#include <cassert>
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-int throw_next = 0xFFFF;
-int count = 0;
-
-void* operator new(std::size_t s) throw(std::bad_alloc)
-{
- if (throw_next == 0)
- throw std::bad_alloc();
- --throw_next;
- ++count;
- return std::malloc(s);
-}
-
-void operator delete(void* p) throw()
-{
- --count;
- std::free(p);
-}
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::list<int> l1;
- std::list<int>::iterator i = l1.insert(l1.begin(), a1, a1+3);
- assert(i == l1.begin());
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- int a2[] = {4, 5, 6};
- i = l1.insert(i, a2, a2+3);
- assert(*i == 4);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 3);
- throw_next = 2;
- int save_count = count;
- try
- {
- i = l1.insert(i, a2, a2+3);
- assert(false);
- }
- catch (...)
- {
- }
- assert(save_count == count);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 3);
- }
- throw_next = 0xFFFF;
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v(100);
- std::list<int> v2(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::list<int>::iterator i = v.insert(next(v2.cbegin(), 10), input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>>::iterator i = l1.insert(l1.begin(), a1, a1+3);
- assert(i == l1.begin());
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- int a2[] = {4, 5, 6};
- i = l1.insert(i, a2, a2+3);
- assert(*i == 4);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 3);
- throw_next = 2;
- int save_count = count;
- try
- {
- i = l1.insert(i, a2, a2+3);
- assert(false);
- }
- catch (...)
- {
- }
- assert(save_count == count);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 3);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- throw_next = 0xFFFF;
- std::list<int, min_allocator<int>> v(100);
- std::list<int, min_allocator<int>> v2(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::list<int, min_allocator<int>>::iterator i = v.insert(next(v2.cbegin(), 10), input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_rvalue.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_rvalue.pass.cpp
deleted file mode 100644
index 27d0411fb04..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_rvalue.pass.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator insert(const_iterator position, value_type&& x);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly> l1;
- l1.insert(l1.cend(), MoveOnly(1));
- assert(l1.size() == 1);
- assert(l1.front() == MoveOnly(1));
- l1.insert(l1.cbegin(), MoveOnly(2));
- assert(l1.size() == 2);
- assert(l1.front() == MoveOnly(2));
- assert(l1.back() == MoveOnly(1));
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.insert(v2.begin(), 4);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly, min_allocator<MoveOnly>> l1;
- l1.insert(l1.cend(), MoveOnly(1));
- assert(l1.size() == 1);
- assert(l1.front() == MoveOnly(1));
- l1.insert(l1.cbegin(), MoveOnly(2));
- assert(l1.size() == 2);
- assert(l1.front() == MoveOnly(2));
- assert(l1.back() == MoveOnly(1));
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.insert(v2.begin(), 4);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
deleted file mode 100644
index a552e1f8360..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator insert(const_iterator position, size_type n, const value_type& x);
-
-// UNSUPPORTED: asan, msan
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cstdlib>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int throw_next = 0xFFFF;
-int count = 0;
-
-void* operator new(std::size_t s) throw(std::bad_alloc)
-{
- if (throw_next == 0)
- throw std::bad_alloc();
- --throw_next;
- ++count;
- return std::malloc(s);
-}
-
-void operator delete(void* p) throw()
-{
- --count;
- std::free(p);
-}
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- int a2[] = {1, 4, 4, 4, 4, 4, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.insert(next(l1.cbegin()), 5, 4);
- assert(i == next(l1.begin()));
- assert(l1 == std::list<int>(a2, a2+8));
- throw_next = 4;
- int save_count = count;
- try
- {
- i = l1.insert(i, 5, 5);
- assert(false);
- }
- catch (...)
- {
- }
- throw_next = 0xFFFF;
- assert(save_count == count);
- assert(l1 == std::list<int>(a2, a2+8));
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> c1(100);
- std::list<int> c2;
- std::list<int>::iterator i = c1.insert(next(c2.cbegin(), 10), 5, 1);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- int a2[] = {1, 4, 4, 4, 4, 4, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.insert(next(l1.cbegin()), 5, 4);
- assert(i == next(l1.begin()));
- assert((l1 == std::list<int, min_allocator<int>>(a2, a2+8)));
- throw_next = 4;
- int save_count = count;
- try
- {
- i = l1.insert(i, 5, 5);
- assert(false);
- }
- catch (...)
- {
- }
- throw_next = 0xFFFF;
- assert(save_count == count);
- assert((l1 == std::list<int, min_allocator<int>>(a2, a2+8)));
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> c1(100);
- std::list<int, min_allocator<int>> c2;
- std::list<int, min_allocator<int>>::iterator i = c1.insert(next(c2.cbegin(), 10), 5, 1);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
deleted file mode 100644
index 093ad423cf8..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// iterator insert(const_iterator position, const value_type& x);
-
-// UNSUPPORTED: asan, msan
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cstdlib>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int throw_next = 0xFFFF;
-int count = 0;
-
-void* operator new(std::size_t s) throw(std::bad_alloc)
-{
- if (throw_next == 0)
- throw std::bad_alloc();
- --throw_next;
- ++count;
- return std::malloc(s);
-}
-
-void operator delete(void* p) throw()
-{
- --count;
- std::free(p);
-}
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- int a2[] = {1, 4, 2, 3};
- std::list<int> l1(a1, a1+3);
- std::list<int>::iterator i = l1.insert(next(l1.cbegin()), 4);
- assert(i == next(l1.begin()));
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l1 == std::list<int>(a2, a2+4));
- throw_next = 0;
- int save_count = count;
- try
- {
- i = l1.insert(i, 5);
- assert(false);
- }
- catch (...)
- {
- }
- throw_next = 0xFFFF;
- assert(save_count == count);
- assert(l1 == std::list<int>(a2, a2+4));
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- int i = 4;
- v1.insert(v2.begin(), i);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- int a2[] = {1, 4, 2, 3};
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>>::iterator i = l1.insert(next(l1.cbegin()), 4);
- assert(i == next(l1.begin()));
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert((l1 == std::list<int, min_allocator<int>>(a2, a2+4)));
- throw_next = 0;
- int save_count = count;
- try
- {
- i = l1.insert(i, 5);
- assert(false);
- }
- catch (...)
- {
- }
- throw_next = 0xFFFF;
- assert(save_count == count);
- assert((l1 == std::list<int, min_allocator<int>>(a2, a2+4)));
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- int i = 4;
- v1.insert(v2.begin(), i);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/pop_back.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/pop_back.pass.cpp
deleted file mode 100644
index 3add8518809..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/pop_back.pass.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void pop_back();
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a[] = {1, 2, 3};
- std::list<int> c(a, a+3);
- c.pop_back();
- assert(c == std::list<int>(a, a+2));
- c.pop_back();
- assert(c == std::list<int>(a, a+1));
- c.pop_back();
- assert(c.empty());
-#if _LIBCPP_DEBUG >= 1
- c.pop_back();
- assert(false);
-#endif
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {1, 2, 3};
- std::list<int, min_allocator<int>> c(a, a+3);
- c.pop_back();
- assert((c == std::list<int, min_allocator<int>>(a, a+2)));
- c.pop_back();
- assert((c == std::list<int, min_allocator<int>>(a, a+1)));
- c.pop_back();
- assert(c.empty());
-#if _LIBCPP_DEBUG >= 1
- c.pop_back();
- assert(false);
-#endif
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/pop_front.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/pop_front.pass.cpp
deleted file mode 100644
index aec17cc08f4..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/pop_front.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void pop_front();
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a[] = {1, 2, 3};
- std::list<int> c(a, a+3);
- c.pop_front();
- assert(c == std::list<int>(a+1, a+3));
- c.pop_front();
- assert(c == std::list<int>(a+2, a+3));
- c.pop_front();
- assert(c.empty());
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {1, 2, 3};
- std::list<int, min_allocator<int>> c(a, a+3);
- c.pop_front();
- assert((c == std::list<int, min_allocator<int>>(a+1, a+3)));
- c.pop_front();
- assert((c == std::list<int, min_allocator<int>>(a+2, a+3)));
- c.pop_front();
- assert(c.empty());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/push_back.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/push_back.pass.cpp
deleted file mode 100644
index 2638c541fa1..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/push_back.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void push_back(const value_type& x);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> c;
- for (int i = 0; i < 5; ++i)
- c.push_back(i);
- int a[] = {0, 1, 2, 3, 4};
- assert(c == std::list<int>(a, a+5));
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> c;
- for (int i = 0; i < 5; ++i)
- c.push_back(i);
- int a[] = {0, 1, 2, 3, 4};
- assert((c == std::list<int, min_allocator<int>>(a, a+5)));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp
deleted file mode 100644
index 9d3c05e26b1..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void push_back(const value_type& x);
-
-#include <list>
-#include <cassert>
-
-// Flag that makes the copy constructor for CMyClass throw an exception
-static bool gCopyConstructorShouldThow = false;
-
-
-class CMyClass {
- public: CMyClass();
- public: CMyClass(const CMyClass& iOther);
- public: ~CMyClass();
-
- private: int fMagicValue;
-
- private: static int kStartedConstructionMagicValue;
- private: static int kFinishedConstructionMagicValue;
-};
-
-// Value for fMagicValue when the constructor has started running, but not yet finished
-int CMyClass::kStartedConstructionMagicValue = 0;
-// Value for fMagicValue when the constructor has finished running
-int CMyClass::kFinishedConstructionMagicValue = 12345;
-
-CMyClass::CMyClass() :
- fMagicValue(kStartedConstructionMagicValue)
-{
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::CMyClass(const CMyClass& /*iOther*/) :
- fMagicValue(kStartedConstructionMagicValue)
-{
- // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
- if (gCopyConstructorShouldThow) {
- throw std::exception();
- }
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::~CMyClass() {
- // Only instances for which the constructor has finished running should be destructed
- assert(fMagicValue == kFinishedConstructionMagicValue);
-}
-
-int main()
-{
- CMyClass instance;
- std::list<CMyClass> vec;
-
- vec.push_back(instance);
-
- gCopyConstructorShouldThow = true;
- try {
- vec.push_back(instance);
- }
- catch (...) {
- }
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/push_back_rvalue.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/push_back_rvalue.pass.cpp
deleted file mode 100644
index 070db9e8d6b..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/push_back_rvalue.pass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void push_back(value_type&& x);
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly> l1;
- l1.push_back(MoveOnly(1));
- assert(l1.size() == 1);
- assert(l1.front() == MoveOnly(1));
- l1.push_back(MoveOnly(2));
- assert(l1.size() == 2);
- assert(l1.front() == MoveOnly(1));
- assert(l1.back() == MoveOnly(2));
- }
-#if __cplusplus >= 201103L
- {
- std::list<MoveOnly, min_allocator<MoveOnly>> l1;
- l1.push_back(MoveOnly(1));
- assert(l1.size() == 1);
- assert(l1.front() == MoveOnly(1));
- l1.push_back(MoveOnly(2));
- assert(l1.size() == 2);
- assert(l1.front() == MoveOnly(1));
- assert(l1.back() == MoveOnly(2));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/push_front.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/push_front.pass.cpp
deleted file mode 100644
index b7f4febcd38..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/push_front.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void push_front(const value_type& x);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::list<int> c;
- for (int i = 0; i < 5; ++i)
- c.push_front(i);
- int a[] = {4, 3, 2, 1, 0};
- assert(c == std::list<int>(a, a+5));
- }
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> c;
- for (int i = 0; i < 5; ++i)
- c.push_front(i);
- int a[] = {4, 3, 2, 1, 0};
- assert((c == std::list<int, min_allocator<int>>(a, a+5)));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp
deleted file mode 100644
index 6609005262e..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void push_front(const value_type& x);
-
-#include <list>
-#include <cassert>
-
-// Flag that makes the copy constructor for CMyClass throw an exception
-static bool gCopyConstructorShouldThow = false;
-
-
-class CMyClass {
- public: CMyClass();
- public: CMyClass(const CMyClass& iOther);
- public: ~CMyClass();
-
- private: int fMagicValue;
-
- private: static int kStartedConstructionMagicValue;
- private: static int kFinishedConstructionMagicValue;
-};
-
-// Value for fMagicValue when the constructor has started running, but not yet finished
-int CMyClass::kStartedConstructionMagicValue = 0;
-// Value for fMagicValue when the constructor has finished running
-int CMyClass::kFinishedConstructionMagicValue = 12345;
-
-CMyClass::CMyClass() :
- fMagicValue(kStartedConstructionMagicValue)
-{
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::CMyClass(const CMyClass& /*iOther*/) :
- fMagicValue(kStartedConstructionMagicValue)
-{
- // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
- if (gCopyConstructorShouldThow) {
- throw std::exception();
- }
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::~CMyClass() {
- // Only instances for which the constructor has finished running should be destructed
- assert(fMagicValue == kFinishedConstructionMagicValue);
-}
-
-int main()
-{
- CMyClass instance;
- std::list<CMyClass> vec;
-
- vec.push_front(instance);
-
- gCopyConstructorShouldThow = true;
- try {
- vec.push_front(instance);
- }
- catch (...) {
- }
-}
diff --git a/libcxx/test/containers/sequences/list/list.modifiers/push_front_rvalue.pass.cpp b/libcxx/test/containers/sequences/list/list.modifiers/push_front_rvalue.pass.cpp
deleted file mode 100644
index 8a3175504eb..00000000000
--- a/libcxx/test/containers/sequences/list/list.modifiers/push_front_rvalue.pass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void push_front(value_type&& x);
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::list<MoveOnly> l1;
- l1.push_front(MoveOnly(1));
- assert(l1.size() == 1);
- assert(l1.front() == MoveOnly(1));
- l1.push_front(MoveOnly(2));
- assert(l1.size() == 2);
- assert(l1.front() == MoveOnly(2));
- assert(l1.back() == MoveOnly(1));
- }
-#if __cplusplus >= 201103L
- {
- std::list<MoveOnly, min_allocator<MoveOnly>> l1;
- l1.push_front(MoveOnly(1));
- assert(l1.size() == 1);
- assert(l1.front() == MoveOnly(1));
- l1.push_front(MoveOnly(2));
- assert(l1.size() == 2);
- assert(l1.front() == MoveOnly(2));
- assert(l1.back() == MoveOnly(1));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/merge.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/merge.pass.cpp
deleted file mode 100644
index d226ed5dc64..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/merge.pass.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void merge(list& x);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- int a3[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- c1.merge(c2);
- assert(c1 == std::list<int>(a3, a3+sizeof(a3)/sizeof(a3[0])));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- int a3[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- c1.merge(c2);
- assert((c1 == std::list<int, min_allocator<int>>(a3, a3+sizeof(a3)/sizeof(a3[0]))));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/merge_comp.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/merge_comp.pass.cpp
deleted file mode 100644
index ce861a5dcb8..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/merge_comp.pass.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class Compare> void merge(list& x, Compare comp);
-
-#include <list>
-#include <functional>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {10, 9, 7, 3, 1};
- int a2[] = {11, 8, 6, 5, 4, 2, 0};
- int a3[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- c1.merge(c2, std::greater<int>());
- assert(c1 == std::list<int>(a3, a3+sizeof(a3)/sizeof(a3[0])));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {10, 9, 7, 3, 1};
- int a2[] = {11, 8, 6, 5, 4, 2, 0};
- int a3[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- c1.merge(c2, std::greater<int>());
- assert((c1 == std::list<int, min_allocator<int>>(a3, a3+sizeof(a3)/sizeof(a3[0]))));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/remove.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/remove.pass.cpp
deleted file mode 100644
index f580c94ef48..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/remove.pass.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void remove(const value_type& value);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-struct S {
- S(int i) : i_(new int(i)) {}
- S(const S &rhs) : i_(new int(*rhs.i_)) {}
- S& operator = (const S &rhs) { *i_ = *rhs.i_; return *this; }
- ~S () { delete i_; i_ = NULL; }
- bool operator == (const S &rhs) const { return *i_ == *rhs.i_; }
- int get () const { return *i_; }
- int *i_;
- };
-
-
-int main()
-{
- {
- int a1[] = {1, 2, 3, 4};
- int a2[] = {1, 2, 4};
- std::list<int> c(a1, a1+4);
- c.remove(3);
- assert(c == std::list<int>(a2, a2+3));
- }
- { // LWG issue #526
- int a1[] = {1, 2, 1, 3, 5, 8, 11};
- int a2[] = { 2, 3, 5, 8, 11};
- std::list<int> c(a1, a1+7);
- c.remove(c.front());
- assert(c == std::list<int>(a2, a2+5));
- }
- {
- int a1[] = {1, 2, 1, 3, 5, 8, 11, 1};
- int a2[] = { 2, 3, 5, 8, 11 };
- std::list<S> c;
- for(int *ip = a1; ip < a1+8; ++ip)
- c.push_back(S(*ip));
- c.remove(c.front());
- std::list<S>::const_iterator it = c.begin();
- for(int *ip = a2; ip < a2+5; ++ip, ++it) {
- assert ( it != c.end());
- assert ( *ip == it->get());
- }
- assert ( it == c.end ());
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3, 4};
- int a2[] = {1, 2, 4};
- std::list<int, min_allocator<int>> c(a1, a1+4);
- c.remove(3);
- assert((c == std::list<int, min_allocator<int>>(a2, a2+3)));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/remove_if.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/remove_if.pass.cpp
deleted file mode 100644
index 162919ed85d..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/remove_if.pass.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class Pred> void remove_if(Pred pred);
-
-#include <list>
-#include <cassert>
-#include <functional>
-
-#include "min_allocator.h"
-#include "counting_predicates.hpp"
-
-bool even(int i)
-{
- return i % 2 == 0;
-}
-
-bool g(int i)
-{
- return i < 3;
-}
-
-typedef unary_counting_predicate<bool(*)(int), int> Predicate;
-
-int main()
-{
- {
- int a1[] = {1, 2, 3, 4};
- int a2[] = {3, 4};
- std::list<int> c(a1, a1+4);
- Predicate cp(g);
- c.remove_if(std::ref(cp));
- assert(c == std::list<int>(a2, a2+2));
- assert(cp.count() == 4);
- }
- {
- int a1[] = {1, 2, 3, 4};
- int a2[] = {1, 3};
- std::list<int> c(a1, a1+4);
- Predicate cp(even);
- c.remove_if(std::ref(cp));
- assert(c == std::list<int>(a2, a2+2));
- assert(cp.count() == 4);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3, 4};
- int a2[] = {3, 4};
- std::list<int, min_allocator<int>> c(a1, a1+4);
- Predicate cp(g);
- c.remove_if(std::ref(cp));
- assert((c == std::list<int, min_allocator<int>>(a2, a2+2)));
- assert(cp.count() == 4);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/reverse.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/reverse.pass.cpp
deleted file mode 100644
index 046453ae538..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/reverse.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void reverse();
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- int a2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c1.reverse();
- assert(c1 == std::list<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- int a2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c1.reverse();
- assert((c1 == std::list<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/sort.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/sort.pass.cpp
deleted file mode 100644
index 1c11227237a..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/sort.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void sort();
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {4, 8, 1, 0, 5, 7, 2, 3, 6, 11, 10, 9};
- int a2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c1.sort();
- assert(c1 == std::list<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {4, 8, 1, 0, 5, 7, 2, 3, 6, 11, 10, 9};
- int a2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c1.sort();
- assert((c1 == std::list<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/sort_comp.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/sort_comp.pass.cpp
deleted file mode 100644
index 28125ab83c0..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/sort_comp.pass.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class Compare> sort(Compare comp);
-
-#include <list>
-#include <functional>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {4, 8, 1, 0, 5, 7, 2, 3, 6, 11, 10, 9};
- int a2[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c1.sort(std::greater<int>());
- assert(c1 == std::list<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {4, 8, 1, 0, 5, 7, 2, 3, 6, 11, 10, 9};
- int a2[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c1.sort(std::greater<int>());
- assert((c1 == std::list<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/splice_pos_list.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/splice_pos_list.pass.cpp
deleted file mode 100644
index 354871c20af..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/splice_pos_list.pass.cpp
+++ /dev/null
@@ -1,803 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void splice(const_iterator position, list& x);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- int a1[] = {1, 2, 3};
- int a2[] = {4, 5, 6};
- {
- std::list<int> l1;
- std::list<int> l2;
- l1.splice(l1.end(), l2);
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+1);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+2);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2;
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2;
- l1.splice(l1.end(), l2);
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+1);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+1);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+2);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+2);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2;
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2;
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2;
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2(a2, a2+1);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2(a2, a2+1);
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2(a2, a2+1);
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2(a2, a2+2);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2(a2, a2+2);
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- std::list<int> l2(a2, a2+2);
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(next(l1.begin(), 3), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.splice(v2.begin(), v2);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2;
- l1.splice(l1.end(), l2);
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2;
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2;
- l1.splice(l1.end(), l2);
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.end(), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2;
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2;
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2;
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 4);
- assert(distance(l1.begin(), l1.end()) == 4);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.begin(), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(next(l1.begin()), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(next(l1.begin(), 2), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(next(l1.begin(), 3), l2);
- assert(l1.size() == 6);
- assert(distance(l1.begin(), l1.end()) == 6);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- ++i;
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.splice(v2.begin(), v2);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp
deleted file mode 100644
index 5082c3f8517..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp
+++ /dev/null
@@ -1,357 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void splice(const_iterator position, list<T,Allocator>& x, iterator i);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- int a1[] = {1, 2, 3};
- int a2[] = {4, 5, 6};
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+1);
- l1.splice(l1.end(), l2, l2.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+2);
- l1.splice(l1.end(), l2, l2.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 1);
- assert(distance(l2.begin(), l2.end()) == 1);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- i = l2.begin();
- assert(*i == 5);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+2);
- l1.splice(l1.end(), l2, next(l2.begin()));
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 1);
- assert(distance(l2.begin(), l2.end()) == 1);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 5);
- i = l2.begin();
- assert(*i == 4);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.end(), l2, l2.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 2);
- assert(distance(l2.begin(), l2.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- i = l2.begin();
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.end(), l2, next(l2.begin()));
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 2);
- assert(distance(l2.begin(), l2.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 5);
- i = l2.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int> l1;
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.end(), l2, next(l2.begin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 2);
- assert(distance(l2.begin(), l2.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 6);
- i = l2.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int> l1(a1, a1+1);
- l1.splice(l1.begin(), l1, l1.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+1);
- l1.splice(l1.begin(), l2, l2.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+1);
- std::list<int> l2(a2, a2+1);
- l1.splice(next(l1.begin()), l2, l2.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- }
- {
- std::list<int> l1(a1, a1+2);
- l1.splice(l1.begin(), l1, l1.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- l1.splice(l1.begin(), l1, next(l1.begin()));
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+2);
- l1.splice(next(l1.begin()), l1, l1.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int> l1(a1, a1+2);
- l1.splice(next(l1.begin()), l1, next(l1.begin()));
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.splice(v1.begin(), v2, v1.begin());
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(l1.end(), l2, l2.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(l1.end(), l2, l2.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 1);
- assert(distance(l2.begin(), l2.end()) == 1);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- i = l2.begin();
- assert(*i == 5);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+2);
- l1.splice(l1.end(), l2, next(l2.begin()));
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 1);
- assert(distance(l2.begin(), l2.end()) == 1);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 5);
- i = l2.begin();
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.end(), l2, l2.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 2);
- assert(distance(l2.begin(), l2.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- i = l2.begin();
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.end(), l2, next(l2.begin()));
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 2);
- assert(distance(l2.begin(), l2.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 5);
- i = l2.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 6);
- }
- {
- std::list<int, min_allocator<int>> l1;
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.end(), l2, next(l2.begin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(l2.size() == 2);
- assert(distance(l2.begin(), l2.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 6);
- i = l2.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 5);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- l1.splice(l1.begin(), l1, l1.begin());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(l1.begin(), l2, l2.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 4);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+1);
- std::list<int, min_allocator<int>> l2(a2, a2+1);
- l1.splice(next(l1.begin()), l2, l2.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(l2.size() == 0);
- assert(distance(l2.begin(), l2.end()) == 0);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- l1.splice(l1.begin(), l1, l1.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- l1.splice(l1.begin(), l1, next(l1.begin()));
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- l1.splice(next(l1.begin()), l1, l1.begin());
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+2);
- l1.splice(next(l1.begin()), l1, next(l1.begin()));
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.splice(v1.begin(), v2, v1.begin());
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp
deleted file mode 100644
index fcc4acceec5..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void splice(const_iterator position, list& x, iterator first, iterator last);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- int a1[] = {1, 2, 3};
- int a2[] = {4, 5, 6};
- {
- std::list<int> l1(a1, a1+3);
- l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin()));
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int> l1(a1, a1+3);
- l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 2));
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int> l1(a1, a1+3);
- l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 3));
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.begin(), l2, next(l2.begin()), l2.end());
- assert(l1.size() == 5);
- assert(distance(l1.begin(), l1.end()) == 5);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- assert(l2.size() == 1);
- i = l2.begin();
- assert(*i == 4);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(next(l1.begin()), l2, next(l2.begin()), l2.end());
- assert(l1.size() == 5);
- assert(distance(l1.begin(), l1.end()) == 5);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- assert(l2.size() == 1);
- i = l2.begin();
- assert(*i == 4);
- }
- {
- std::list<int> l1(a1, a1+3);
- std::list<int> l2(a2, a2+3);
- l1.splice(l1.end(), l2, next(l2.begin()), l2.end());
- assert(l1.size() == 5);
- assert(distance(l1.begin(), l1.end()) == 5);
- std::list<int>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- assert(l2.size() == 1);
- i = l2.begin();
- assert(*i == 4);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.splice(v1.begin(), v2, v2.begin(), v1.end());
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin()));
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 2));
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 3);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 3));
- assert(l1.size() == 3);
- assert(distance(l1.begin(), l1.end()) == 3);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- ++i;
- assert(*i == 1);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.begin(), l2, next(l2.begin()), l2.end());
- assert(l1.size() == 5);
- assert(distance(l1.begin(), l1.end()) == 5);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- assert(l2.size() == 1);
- i = l2.begin();
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(next(l1.begin()), l2, next(l2.begin()), l2.end());
- assert(l1.size() == 5);
- assert(distance(l1.begin(), l1.end()) == 5);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- assert(l2.size() == 1);
- i = l2.begin();
- assert(*i == 4);
- }
- {
- std::list<int, min_allocator<int>> l1(a1, a1+3);
- std::list<int, min_allocator<int>> l2(a2, a2+3);
- l1.splice(l1.end(), l2, next(l2.begin()), l2.end());
- assert(l1.size() == 5);
- assert(distance(l1.begin(), l1.end()) == 5);
- std::list<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(*i == 1);
- ++i;
- assert(*i == 2);
- ++i;
- assert(*i == 3);
- ++i;
- assert(*i == 5);
- ++i;
- assert(*i == 6);
- assert(l2.size() == 1);
- i = l2.begin();
- assert(*i == 4);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.splice(v1.begin(), v2, v2.begin(), v1.end());
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/unique.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/unique.pass.cpp
deleted file mode 100644
index 48cad1ddd15..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/unique.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void unique();
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {2, 1, 1, 4, 4, 4, 4, 3, 3};
- int a2[] = {2, 1, 4, 3};
- std::list<int> c(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c.unique();
- assert(c == std::list<int>(a2, a2+4));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {2, 1, 1, 4, 4, 4, 4, 3, 3};
- int a2[] = {2, 1, 4, 3};
- std::list<int, min_allocator<int>> c(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c.unique();
- assert((c == std::list<int, min_allocator<int>>(a2, a2+4)));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.ops/unique_pred.pass.cpp b/libcxx/test/containers/sequences/list/list.ops/unique_pred.pass.cpp
deleted file mode 100644
index f8935b81f6a..00000000000
--- a/libcxx/test/containers/sequences/list/list.ops/unique_pred.pass.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class BinaryPred> void unique(BinaryPred pred);
-
-#include <list>
-#include <cassert>
-
-#include "min_allocator.h"
-
-bool g(int x, int y)
-{
- return x == y;
-}
-
-int main()
-{
- {
- int a1[] = {2, 1, 1, 4, 4, 4, 4, 3, 3};
- int a2[] = {2, 1, 4, 3};
- std::list<int> c(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c.unique(g);
- assert(c == std::list<int>(a2, a2+4));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {2, 1, 1, 4, 4, 4, 4, 3, 3};
- int a2[] = {2, 1, 4, 3};
- std::list<int, min_allocator<int>> c(a1, a1+sizeof(a1)/sizeof(a1[0]));
- c.unique(g);
- assert((c == std::list<int, min_allocator<int>>(a2, a2+4)));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.special/db_swap_1.pass.cpp b/libcxx/test/containers/sequences/list/list.special/db_swap_1.pass.cpp
deleted file mode 100644
index f7171795cd5..00000000000
--- a/libcxx/test/containers/sequences/list/list.special/db_swap_1.pass.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class T, class Alloc>
-// void swap(list<T,Alloc>& x, list<T,Alloc>& y);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <list>
-#include <cassert>
-
-#include <__debug>
-#include "min_allocator.h"
-
-int main()
-{
-#if _LIBCPP_DEBUG >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- std::list<int>::iterator i1 = c1.begin();
- std::list<int>::iterator i2 = c2.begin();
- swap(c1, c2);
- c1.erase(i2);
- c2.erase(i1);
- std::list<int>::iterator j = i1;
- c1.erase(i1);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- std::list<int, min_allocator<int>>::iterator i1 = c1.begin();
- std::list<int, min_allocator<int>>::iterator i2 = c2.begin();
- swap(c1, c2);
- c1.erase(i2);
- c2.erase(i1);
- std::list<int, min_allocator<int>>::iterator j = i1;
- c1.erase(i1);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.special/swap.pass.cpp b/libcxx/test/containers/sequences/list/list.special/swap.pass.cpp
deleted file mode 100644
index bc5f4857edc..00000000000
--- a/libcxx/test/containers/sequences/list/list.special/swap.pass.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class T, class Alloc>
-// void swap(list<T,Alloc>& x, list<T,Alloc>& y);
-
-#include <list>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- swap(c1, c2);
- assert(c1 == std::list<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- assert(c2 == std::list<int>(a1, a1+sizeof(a1)/sizeof(a1[0])));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int> c1(a1, a1);
- std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- swap(c1, c2);
- assert(c1 == std::list<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int> c2(a2, a2);
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c2 == std::list<int>(a1, a1+sizeof(a1)/sizeof(a1[0])));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int> c1(a1, a1);
- std::list<int> c2(a2, a2);
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- }
-#ifndef _LIBCPP_DEBUG_LEVEL
-// This test known to result in undefined behavior detected by _LIBCPP_DEBUG_LEVEL >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef test_allocator<int> A;
- std::list<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::list<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
- swap(c1, c2);
- assert((c1 == std::list<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A(1));
- assert((c2 == std::list<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(2));
- }
-#endif
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef other_allocator<int> A;
- std::list<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::list<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
- swap(c1, c2);
- assert((c1 == std::list<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A(2));
- assert((c2 == std::list<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(1));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- swap(c1, c2);
- assert((c1 == std::list<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert((c2 == std::list<int, min_allocator<int>>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int, min_allocator<int>> c1(a1, a1);
- std::list<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- swap(c1, c2);
- assert((c1 == std::list<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int, min_allocator<int>> c2(a2, a2);
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert((c2 == std::list<int, min_allocator<int>>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int, min_allocator<int>> c1(a1, a1);
- std::list<int, min_allocator<int>> c2(a2, a2);
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- }
-#ifndef _LIBCPP_DEBUG_LEVEL
-// This test known to result in undefined behavior detected by _LIBCPP_DEBUG_LEVEL >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef min_allocator<int> A;
- std::list<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A());
- std::list<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A());
- swap(c1, c2);
- assert((c1 == std::list<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A());
- assert((c2 == std::list<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A());
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/list.special/swap_noexcept.pass.cpp b/libcxx/test/containers/sequences/list/list.special/swap_noexcept.pass.cpp
deleted file mode 100644
index 7a23398e80a..00000000000
--- a/libcxx/test/containers/sequences/list/list.special/swap_noexcept.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// void swap(list& c)
-// noexcept(!allocator_type::propagate_on_container_swap::value ||
-// __is_nothrow_swappable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <list>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
-
- some_alloc() {}
- some_alloc(const some_alloc&);
- void deallocate(void*, unsigned) {}
-
- typedef std::true_type propagate_on_container_swap;
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::list<MoveOnly> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
- C c1, c2;
- static_assert(!noexcept(swap(c1, c2)), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/types.pass.cpp b/libcxx/test/containers/sequences/list/types.pass.cpp
deleted file mode 100644
index 95d7f5010f0..00000000000
--- a/libcxx/test/containers/sequences/list/types.pass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-// template <class T, class Alloc = allocator<T> >
-// class list
-// {
-// public:
-//
-// // types:
-// typedef T value_type;
-// typedef Alloc allocator_type;
-// typedef typename allocator_type::reference reference;
-// typedef typename allocator_type::const_reference const_reference;
-// typedef typename allocator_type::pointer pointer;
-// typedef typename allocator_type::const_pointer const_pointer;
-
-#include <list>
-#include <type_traits>
-
-#include "min_allocator.h"
-
-int main()
-{
- static_assert((std::is_same<std::list<int>::value_type, int>::value), "");
- static_assert((std::is_same<std::list<int>::allocator_type, std::allocator<int> >::value), "");
- static_assert((std::is_same<std::list<int>::reference, std::allocator<int>::reference>::value), "");
- static_assert((std::is_same<std::list<int>::const_reference, std::allocator<int>::const_reference>::value), "");
- static_assert((std::is_same<std::list<int>::pointer, std::allocator<int>::pointer>::value), "");
- static_assert((std::is_same<std::list<int>::const_pointer, std::allocator<int>::const_pointer>::value), "");
-#if __cplusplus >= 201103L
- static_assert((std::is_same<std::list<int, min_allocator<int>>::value_type, int>::value), "");
- static_assert((std::is_same<std::list<int, min_allocator<int>>::allocator_type, min_allocator<int> >::value), "");
- static_assert((std::is_same<std::list<int, min_allocator<int>>::reference, int&>::value), "");
- static_assert((std::is_same<std::list<int, min_allocator<int>>::const_reference, const int&>::value), "");
- static_assert((std::is_same<std::list<int, min_allocator<int>>::pointer, min_pointer<int>>::value), "");
- static_assert((std::is_same<std::list<int, min_allocator<int>>::const_pointer, min_pointer<const int>>::value), "");
-#endif
-}
diff --git a/libcxx/test/containers/sequences/list/version.pass.cpp b/libcxx/test/containers/sequences/list/version.pass.cpp
deleted file mode 100644
index 097c013f52c..00000000000
--- a/libcxx/test/containers/sequences/list/version.pass.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <list>
-
-#include <list>
-
-#ifndef _LIBCPP_VERSION
-#error _LIBCPP_VERSION not defined
-#endif
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/nothing_to_do.pass.cpp b/libcxx/test/containers/sequences/nothing_to_do.pass.cpp
deleted file mode 100644
index b58f5c55b64..00000000000
--- a/libcxx/test/containers/sequences/nothing_to_do.pass.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/assign_copy.pass.cpp b/libcxx/test/containers/sequences/vector.bool/assign_copy.pass.cpp
deleted file mode 100644
index 9501799ae3d..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/assign_copy.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(const vector& c);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool, test_allocator<bool> > l(3, 2, test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > l2(l, test_allocator<bool>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<bool>(3));
- }
- {
- std::vector<bool, other_allocator<bool> > l(3, 2, other_allocator<bool>(5));
- std::vector<bool, other_allocator<bool> > l2(l, other_allocator<bool>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<bool>(5));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool> > l(3, 2, min_allocator<bool>());
- std::vector<bool, min_allocator<bool> > l2(l, min_allocator<bool>());
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<bool>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/assign_initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector.bool/assign_initializer_list.pass.cpp
deleted file mode 100644
index 2925fbc6674..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/assign_initializer_list.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void assign(initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<bool> d;
- d.assign({true, false, false, true});
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> d;
- d.assign({true, false, false, true});
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/assign_move.pass.cpp b/libcxx/test/containers/sequences/vector.bool/assign_move.pass.cpp
deleted file mode 100644
index df98c817fd5..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/assign_move.pass.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(vector&& c);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<bool, test_allocator<bool> > l(test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > lo(test_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, test_allocator<bool> > l2(test_allocator<bool>(5));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
- {
- std::vector<bool, test_allocator<bool> > l(test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > lo(test_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, test_allocator<bool> > l2(test_allocator<bool>(6));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == test_allocator<bool>(6));
- }
- {
- std::vector<bool, other_allocator<bool> > l(other_allocator<bool>(5));
- std::vector<bool, other_allocator<bool> > lo(other_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, other_allocator<bool> > l2(other_allocator<bool>(6));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool> > l(min_allocator<bool>{});
- std::vector<bool, min_allocator<bool> > lo(min_allocator<bool>{});
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, min_allocator<bool> > l2(min_allocator<bool>{});
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/capacity.pass.cpp b/libcxx/test/containers/sequences/vector.bool/capacity.pass.cpp
deleted file mode 100644
index 63bff25f9f9..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/capacity.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// size_type capacity() const;
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v;
- assert(v.capacity() == 0);
- }
- {
- std::vector<bool> v(100);
- assert(v.capacity() >= 100);
- v.push_back(0);
- assert(v.capacity() >= 101);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v;
- assert(v.capacity() == 0);
- }
- {
- std::vector<bool, min_allocator<bool>> v(100);
- assert(v.capacity() >= 100);
- v.push_back(0);
- assert(v.capacity() >= 101);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp
deleted file mode 100644
index d3d6670bbf2..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// vector(const Alloc& = Alloc());
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-void
-test0()
-{
- C c;
- assert(c.__invariants());
- assert(c.empty());
- assert(c.get_allocator() == typename C::allocator_type());
-#if __cplusplus >= 201103L
- C c1 = {};
- assert(c1.__invariants());
- assert(c1.empty());
- assert(c1.get_allocator() == typename C::allocator_type());
-#endif
-}
-
-template <class C>
-void
-test1(const typename C::allocator_type& a)
-{
- C c(a);
- assert(c.__invariants());
- assert(c.empty());
- assert(c.get_allocator() == a);
-}
-
-int main()
-{
- {
- test0<std::vector<bool> >();
- test1<std::vector<bool, test_allocator<bool> > >(test_allocator<bool>(3));
- }
-#if __cplusplus >= 201103L
- {
- test0<std::vector<bool, min_allocator<bool>> >();
- test1<std::vector<bool, min_allocator<bool> > >(min_allocator<bool>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp
deleted file mode 100644
index 94e6801825d..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// template <class InputIter> vector(InputIter first, InputIter last);
-
-#include <vector>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C, class Iterator>
-void
-test(Iterator first, Iterator last)
-{
- C c(first, last);
- assert(c.__invariants());
- assert(c.size() == std::distance(first, last));
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i, ++first)
- assert(*i == *first);
-}
-
-int main()
-{
- bool a[] = {0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0};
- bool* an = a + sizeof(a)/sizeof(a[0]);
- test<std::vector<bool> >(input_iterator<const bool*>(a), input_iterator<const bool*>(an));
- test<std::vector<bool> >(forward_iterator<const bool*>(a), forward_iterator<const bool*>(an));
- test<std::vector<bool> >(bidirectional_iterator<const bool*>(a), bidirectional_iterator<const bool*>(an));
- test<std::vector<bool> >(random_access_iterator<const bool*>(a), random_access_iterator<const bool*>(an));
- test<std::vector<bool> >(a, an);
-#if __cplusplus >= 201103L
- test<std::vector<bool, min_allocator<bool>> >(input_iterator<const bool*>(a), input_iterator<const bool*>(an));
- test<std::vector<bool, min_allocator<bool>> >(forward_iterator<const bool*>(a), forward_iterator<const bool*>(an));
- test<std::vector<bool, min_allocator<bool>> >(bidirectional_iterator<const bool*>(a), bidirectional_iterator<const bool*>(an));
- test<std::vector<bool, min_allocator<bool>> >(random_access_iterator<const bool*>(a), random_access_iterator<const bool*>(an));
- test<std::vector<bool, min_allocator<bool>> >(a, an);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp
deleted file mode 100644
index ea9d41d342f..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// template <class InputIter> vector(InputIter first, InputIter last,
-// const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-template <class C, class Iterator>
-void
-test(Iterator first, Iterator last, const typename C::allocator_type& a)
-{
- C c(first, last, a);
- assert(c.__invariants());
- assert(c.size() == std::distance(first, last));
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i, ++first)
- assert(*i == *first);
-}
-
-int main()
-{
- bool a[] = {0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0};
- bool* an = a + sizeof(a)/sizeof(a[0]);
- {
- std::allocator<bool> alloc;
- test<std::vector<bool> >(input_iterator<const bool*>(a), input_iterator<const bool*>(an), alloc);
- test<std::vector<bool> >(forward_iterator<const bool*>(a), forward_iterator<const bool*>(an), alloc);
- test<std::vector<bool> >(bidirectional_iterator<const bool*>(a), bidirectional_iterator<const bool*>(an), alloc);
- test<std::vector<bool> >(random_access_iterator<const bool*>(a), random_access_iterator<const bool*>(an), alloc);
- test<std::vector<bool> >(a, an, alloc);
- }
-#if __cplusplus >= 201103L
- {
- min_allocator<bool> alloc;
- test<std::vector<bool, min_allocator<bool>> >(input_iterator<const bool*>(a), input_iterator<const bool*>(an), alloc);
- test<std::vector<bool, min_allocator<bool>> >(forward_iterator<const bool*>(a), forward_iterator<const bool*>(an), alloc);
- test<std::vector<bool, min_allocator<bool>> >(bidirectional_iterator<const bool*>(a), bidirectional_iterator<const bool*>(an), alloc);
- test<std::vector<bool, min_allocator<bool>> >(random_access_iterator<const bool*>(a), random_access_iterator<const bool*>(an), alloc);
- test<std::vector<bool, min_allocator<bool>> >(a, an, alloc);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_size.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_size.pass.cpp
deleted file mode 100644
index 93ecbe87c38..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/construct_size.pass.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// explicit vector(size_type n);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "test_allocator.h"
-
-template <class C>
-void
-test2(typename C::size_type n, typename C::allocator_type const& a = typename C::allocator_type ())
-{
-#if _LIBCPP_STD_VER > 11
- C c(n, a);
- assert(c.__invariants());
- assert(c.size() == n);
- assert(c.get_allocator() == a);
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == typename C::value_type());
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#endif
-}
-
-template <class C>
-void
-test1(typename C::size_type n)
-{
- C c(n);
- assert(c.__invariants());
- assert(c.size() == n);
- assert(c.get_allocator() == typename C::allocator_type());
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == typename C::value_type());
-}
-
-template <class C>
-void
-test(typename C::size_type n)
-{
- test1<C> ( n );
- test2<C> ( n );
-}
-
-int main()
-{
- test<std::vector<bool> >(50);
-#if __cplusplus >= 201103L
- test<std::vector<bool, min_allocator<bool>> >(50);
- test2<std::vector<bool, test_allocator<bool>> >( 100, test_allocator<bool>(23));
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_size_value.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_size_value.pass.cpp
deleted file mode 100644
index fc772f10dfc..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/construct_size_value.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// vector(size_type n, const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void
-test(typename C::size_type n, const typename C::value_type& x)
-{
- C c(n, x);
- assert(c.__invariants());
- assert(c.size() == n);
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == x);
-}
-
-int main()
-{
- test<std::vector<bool> >(50, 3);
-#if __cplusplus >= 201103L
- test<std::vector<bool, min_allocator<bool>> >(50, 3);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp
deleted file mode 100644
index 6cca948ed83..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// vector(size_type n, const value_type& x, const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-template <class C>
-void
-test(typename C::size_type n, const typename C::value_type& x,
- const typename C::allocator_type& a)
-{
- C c(n, x, a);
- assert(c.__invariants());
- assert(a == c.get_allocator());
- assert(c.size() == n);
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == x);
-}
-
-int main()
-{
- test<std::vector<bool> >(50, 3, std::allocator<bool>());
-#if __cplusplus >= 201103L
- test<std::vector<bool, min_allocator<bool>> >(50, 3, min_allocator<bool>());
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/copy.pass.cpp b/libcxx/test/containers/sequences/vector.bool/copy.pass.cpp
deleted file mode 100644
index 58822782ff8..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/copy.pass.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// vector(const vector& v);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-void
-test(const C& x)
-{
- unsigned s = x.size();
- C c(x);
- assert(c.__invariants());
- assert(c.size() == s);
- assert(c == x);
-}
-
-int main()
-{
- {
- bool a[] = {0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0};
- bool* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<bool>(a, an));
- }
- {
- std::vector<bool, test_allocator<bool> > v(3, 2, test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > v2 = v;
- assert(v2 == v);
- assert(v2.get_allocator() == v.get_allocator());
- }
-#ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
- {
- std::vector<bool, other_allocator<bool> > v(3, 2, other_allocator<bool>(5));
- std::vector<bool, other_allocator<bool> > v2 = v;
- assert(v2 == v);
- assert(v2.get_allocator() == other_allocator<bool>(-2));
- }
-#endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE
-#if __cplusplus >= 201103L
- {
- bool a[] = {0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0};
- bool* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<bool, min_allocator<bool>>(a, an));
- }
- {
- std::vector<bool, min_allocator<bool> > v(3, 2, min_allocator<bool>());
- std::vector<bool, min_allocator<bool> > v2 = v;
- assert(v2 == v);
- assert(v2.get_allocator() == v.get_allocator());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/copy_alloc.pass.cpp b/libcxx/test/containers/sequences/vector.bool/copy_alloc.pass.cpp
deleted file mode 100644
index 2f0192b995a..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/copy_alloc.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(const vector& v, const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-template <class C>
-void
-test(const C& x, const typename C::allocator_type& a)
-{
- unsigned s = x.size();
- C c(x, a);
- assert(c.__invariants());
- assert(c.size() == s);
- assert(c == x);
-}
-
-int main()
-{
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<bool>(a, an), std::allocator<bool>());
- }
- {
- std::vector<bool, test_allocator<bool> > l(3, 2, test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > l2(l, test_allocator<bool>(3));
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<bool>(3));
- }
- {
- std::vector<bool, other_allocator<bool> > l(3, 2, other_allocator<bool>(5));
- std::vector<bool, other_allocator<bool> > l2(l, other_allocator<bool>(3));
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<bool>(3));
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<bool, min_allocator<bool>>(a, an), min_allocator<bool>());
- }
- {
- std::vector<bool, min_allocator<bool> > l(3, 2, min_allocator<bool>());
- std::vector<bool, min_allocator<bool> > l2(l, min_allocator<bool>());
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<bool>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/default_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector.bool/default_noexcept.pass.cpp
deleted file mode 100644
index b94588ead93..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/default_noexcept.pass.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector<bool>()
-// noexcept(is_nothrow_default_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<bool> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::vector<bool, test_allocator<bool>> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::vector<bool, other_allocator<bool>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::vector<bool, some_alloc<bool>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/dtor_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
deleted file mode 100644
index 682e74ef03c..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// ~vector<bool>() // implied noexcept;
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-
-#if __has_feature(cxx_noexcept)
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
- ~some_alloc() noexcept(false);
-};
-
-#endif
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<bool> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::vector<bool, test_allocator<bool>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::vector<bool, other_allocator<bool>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::vector<bool, some_alloc<bool>> C;
- static_assert(!std::is_nothrow_destructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/emplace.pass.cpp b/libcxx/test/containers/sequences/vector.bool/emplace.pass.cpp
deleted file mode 100644
index f3fd1e9926f..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/emplace.pass.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// template <class... Args> iterator emplace(const_iterator pos, Args&&... args);
-
-#include <vector>
-#include <cassert>
-#include "min_allocator.h"
-
-int main()
-{
-#if _LIBCPP_STD_VER > 11
- {
- typedef std::vector<bool> C;
- C c;
-
- C::iterator i = c.emplace(c.cbegin());
- assert(i == c.begin());
- assert(c.size() == 1);
- assert(c.front() == false);
-
- i = c.emplace(c.cend(), true);
- assert(i == c.end()-1);
- assert(c.size() == 2);
- assert(c.front() == false);
- assert(c.back() == true);
-
- i = c.emplace(c.cbegin()+1, 1 == 1);
- assert(i == c.begin()+1);
- assert(c.size() == 3);
- assert(c.front() == false);
- assert(c[1] == true);
- assert(c.back() == true);
- }
- {
- typedef std::vector<bool, min_allocator<bool>> C;
- C c;
-
- C::iterator i = c.emplace(c.cbegin());
- assert(i == c.begin());
- assert(c.size() == 1);
- assert(c.front() == false);
-
- i = c.emplace(c.cend(), true);
- assert(i == c.end()-1);
- assert(c.size() == 2);
- assert(c.front() == false);
- assert(c.back() == true);
-
- i = c.emplace(c.cbegin()+1, 1 == 1);
- assert(i == c.begin()+1);
- assert(c.size() == 3);
- assert(c.size() == 3);
- assert(c.front() == false);
- assert(c[1] == true);
- assert(c.back() == true);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/emplace_back.pass.cpp b/libcxx/test/containers/sequences/vector.bool/emplace_back.pass.cpp
deleted file mode 100644
index 57aa47822f8..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/emplace_back.pass.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector.bool
-
-// template <class... Args> void emplace_back(Args&&... args);
-
-#include <vector>
-#include <cassert>
-#include "min_allocator.h"
-
-
-int main()
-{
-#if _LIBCPP_STD_VER > 11
- {
- typedef std::vector<bool> C;
- C c;
- c.emplace_back();
- assert(c.size() == 1);
- assert(c.front() == false);
- c.emplace_back(true);
- assert(c.size() == 2);
- assert(c.front() == false);
- assert(c.back() == true);
- c.emplace_back(1 == 1);
- assert(c.size() == 3);
- assert(c.front() == false);
- assert(c[1] == true);
- assert(c.back() == true);
- }
- {
- typedef std::vector<bool, min_allocator<bool>> C;
- C c;
-
- c.emplace_back();
- assert(c.size() == 1);
- assert(c.front() == false);
- c.emplace_back(true);
- assert(c.size() == 2);
- assert(c.front() == false);
- assert(c.back() == true);
- c.emplace_back(1 == 1);
- assert(c.size() == 3);
- assert(c.front() == false);
- assert(c[1] == true);
- assert(c.back() == true);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/erase_iter.pass.cpp b/libcxx/test/containers/sequences/vector.bool/erase_iter.pass.cpp
deleted file mode 100644
index cbf26dd570a..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/erase_iter.pass.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// iterator erase(const_iterator position);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- bool a1[] = {1, 0, 1};
- {
- std::vector<bool> l1(a1, a1+3);
- std::vector<bool>::const_iterator i = l1.begin();
- ++i;
- std::vector<bool>::iterator j = l1.erase(i);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(*j == true);
- assert(*l1.begin() == 1);
- assert(*next(l1.begin()) == true);
- j = l1.erase(j);
- assert(j == l1.end());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(*l1.begin() == true);
- j = l1.erase(l1.begin());
- assert(j == l1.end());
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> l1(a1, a1+3);
- std::vector<bool, min_allocator<bool>>::const_iterator i = l1.begin();
- ++i;
- std::vector<bool, min_allocator<bool>>::iterator j = l1.erase(i);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(*j == true);
- assert(*l1.begin() == 1);
- assert(*next(l1.begin()) == true);
- j = l1.erase(j);
- assert(j == l1.end());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(*l1.begin() == true);
- j = l1.erase(l1.begin());
- assert(j == l1.end());
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/erase_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector.bool/erase_iter_iter.pass.cpp
deleted file mode 100644
index 2c2c4cc4861..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/erase_iter_iter.pass.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// iterator erase(const_iterator first, const_iterator last);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- bool a1[] = {1, 0, 1};
- {
- std::vector<bool> l1(a1, a1+3);
- std::vector<bool>::iterator i = l1.erase(l1.cbegin(), l1.cbegin());
- assert(l1.size() == 3);
- assert(distance(l1.cbegin(), l1.cend()) == 3);
- assert(i == l1.begin());
- }
- {
- std::vector<bool> l1(a1, a1+3);
- std::vector<bool>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin()));
- assert(l1.size() == 2);
- assert(distance(l1.cbegin(), l1.cend()) == 2);
- assert(i == l1.begin());
- assert(l1 == std::vector<bool>(a1+1, a1+3));
- }
- {
- std::vector<bool> l1(a1, a1+3);
- std::vector<bool>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.cbegin(), l1.cend()) == 1);
- assert(i == l1.begin());
- assert(l1 == std::vector<bool>(a1+2, a1+3));
- }
- {
- std::vector<bool> l1(a1, a1+3);
- std::vector<bool>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3));
- assert(l1.size() == 0);
- assert(distance(l1.cbegin(), l1.cend()) == 0);
- assert(i == l1.begin());
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> l1(a1, a1+3);
- std::vector<bool, min_allocator<bool>>::iterator i = l1.erase(l1.cbegin(), l1.cbegin());
- assert(l1.size() == 3);
- assert(distance(l1.cbegin(), l1.cend()) == 3);
- assert(i == l1.begin());
- }
- {
- std::vector<bool, min_allocator<bool>> l1(a1, a1+3);
- std::vector<bool, min_allocator<bool>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin()));
- assert(l1.size() == 2);
- assert(distance(l1.cbegin(), l1.cend()) == 2);
- assert(i == l1.begin());
- assert((l1 == std::vector<bool, min_allocator<bool>>(a1+1, a1+3)));
- }
- {
- std::vector<bool, min_allocator<bool>> l1(a1, a1+3);
- std::vector<bool, min_allocator<bool>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.cbegin(), l1.cend()) == 1);
- assert(i == l1.begin());
- assert((l1 == std::vector<bool, min_allocator<bool>>(a1+2, a1+3)));
- }
- {
- std::vector<bool, min_allocator<bool>> l1(a1, a1+3);
- std::vector<bool, min_allocator<bool>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3));
- assert(l1.size() == 0);
- assert(distance(l1.cbegin(), l1.cend()) == 0);
- assert(i == l1.begin());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/find.pass.cpp b/libcxx/test/containers/sequences/vector.bool/find.pass.cpp
deleted file mode 100644
index 75567a9b7bb..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/find.pass.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// std::find with vector<bool>::iterator
-
-// http://llvm.org/bugs/show_bug.cgi?id=16816
-
-#include <vector>
-#include <cassert>
-
-int main()
-{
- {
- for (unsigned i = 1; i < 256; ++i)
- {
- std::vector<bool> b(i,true);
- std::vector<bool>::iterator j = std::find(b.begin()+1, b.end(), false);
- assert(j-b.begin() == i);
- assert(b.end() == j);
- }
- }
- {
- for (unsigned i = 1; i < 256; ++i)
- {
- std::vector<bool> b(i,false);
- std::vector<bool>::iterator j = std::find(b.begin()+1, b.end(), true);
- assert(j-b.begin() == i);
- assert(b.end() == j);
- }
- }
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector.bool/initializer_list.pass.cpp
deleted file mode 100644
index b9b46865449..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/initializer_list.pass.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<bool> d = {true, false, false, true};
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> d = {true, false, false, true};
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/initializer_list_alloc.pass.cpp b/libcxx/test/containers/sequences/vector.bool/initializer_list_alloc.pass.cpp
deleted file mode 100644
index aea3ad763cd..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/initializer_list_alloc.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(initializer_list<value_type> il, const Allocator& a = allocator_type());
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<bool, test_allocator<bool>> d({true, false, false, true}, test_allocator<bool>(3));
- assert(d.get_allocator() == test_allocator<bool>(3));
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> d({true, false, false, true}, min_allocator<bool>());
- assert(d.get_allocator() == min_allocator<bool>());
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/insert_iter_initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector.bool/insert_iter_initializer_list.pass.cpp
deleted file mode 100644
index c081cc81c59..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/insert_iter_initializer_list.pass.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator insert(const_iterator p, initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<bool> d(10, true);
- std::vector<bool>::iterator i = d.insert(d.cbegin() + 2, {false, true, true, false});
- assert(d.size() == 14);
- assert(i == d.begin() + 2);
- assert(d[0] == true);
- assert(d[1] == true);
- assert(d[2] == false);
- assert(d[3] == true);
- assert(d[4] == true);
- assert(d[5] == false);
- assert(d[6] == true);
- assert(d[7] == true);
- assert(d[8] == true);
- assert(d[9] == true);
- assert(d[10] == true);
- assert(d[11] == true);
- assert(d[12] == true);
- assert(d[13] == true);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> d(10, true);
- std::vector<bool, min_allocator<bool>>::iterator i = d.insert(d.cbegin() + 2, {false, true, true, false});
- assert(d.size() == 14);
- assert(i == d.begin() + 2);
- assert(d[0] == true);
- assert(d[1] == true);
- assert(d[2] == false);
- assert(d[3] == true);
- assert(d[4] == true);
- assert(d[5] == false);
- assert(d[6] == true);
- assert(d[7] == true);
- assert(d[8] == true);
- assert(d[9] == true);
- assert(d[10] == true);
- assert(d[11] == true);
- assert(d[12] == true);
- assert(d[13] == true);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp
deleted file mode 100644
index e51f8b589c7..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// template <class Iter>
-// iterator insert(const_iterator position, Iter first, Iter last);
-
-#include <vector>
-#include <cassert>
-#include "test_iterators.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v(100);
- bool a[] = {1, 0, 0, 1, 1};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const bool*>(a),
- input_iterator<const bool*>(a+N));
- assert(v.size() == 100 + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- bool a[] = {1, 0, 0, 1, 1};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const bool*>(a),
- forward_iterator<const bool*>(a+N));
- assert(v.size() == 100 + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- while(v.size() < v.capacity()) v.push_back(false);
- size_t sz = v.size();
- bool a[] = {1, 0, 0, 1, 1};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const bool*>(a),
- forward_iterator<const bool*>(a+N));
- assert(v.size() == sz + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- while(v.size() < v.capacity()) v.push_back(false);
- v.pop_back(); v.pop_back(); v.pop_back();
- size_t sz = v.size();
- bool a[] = {1, 0, 0, 1, 1};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const bool*>(a),
- forward_iterator<const bool*>(a+N));
- assert(v.size() == sz + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v(100);
- bool a[] = {1, 0, 0, 1, 1};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool, min_allocator<bool>>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const bool*>(a),
- input_iterator<const bool*>(a+N));
- assert(v.size() == 100 + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool, min_allocator<bool>> v(100);
- bool a[] = {1, 0, 0, 1, 1};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool, min_allocator<bool>>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const bool*>(a),
- forward_iterator<const bool*>(a+N));
- assert(v.size() == 100 + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/insert_iter_size_value.pass.cpp b/libcxx/test/containers/sequences/vector.bool/insert_iter_size_value.pass.cpp
deleted file mode 100644
index 710ad4885f0..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/insert_iter_size_value.pass.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// iterator insert(const_iterator position, size_type n, const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v(100);
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == 105);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- while(v.size() < v.capacity()) v.push_back(false);
- size_t sz = v.size();
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == sz + 5);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- while(v.size() < v.capacity()) v.push_back(false);
- v.pop_back(); v.pop_back();
- size_t sz = v.size();
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == sz + 5);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v(100);
- std::vector<bool, min_allocator<bool>>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == 105);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/insert_iter_value.pass.cpp b/libcxx/test/containers/sequences/vector.bool/insert_iter_value.pass.cpp
deleted file mode 100644
index 51c4626de0d..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/insert_iter_value.pass.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// iterator insert(const_iterator position, const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v(100);
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == 101);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- while(v.size() < v.capacity()) v.push_back(false);
- size_t sz = v.size();
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == sz + 1);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<bool> v(100);
- while(v.size() < v.capacity()) v.push_back(false);
- v.pop_back(); v.pop_back();
- size_t sz = v.size();
- std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == sz + 1);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v(100);
- std::vector<bool, min_allocator<bool>>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == 101);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp b/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp
deleted file mode 100644
index c54fa4a80a9..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/iterators.pass.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator begin();
-// iterator end();
-// const_iterator begin() const;
-// const_iterator end() const;
-// const_iterator cbegin() const;
-// const_iterator cend() const;
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef bool T;
- typedef std::vector<T> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef bool T;
- typedef std::vector<T> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef bool T;
- typedef std::vector<T> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef bool T;
- typedef std::vector<T> C;
- C::iterator i;
- C::const_iterator j;
- }
-#if __cplusplus >= 201103L
- {
- typedef bool T;
- typedef std::vector<T, min_allocator<T>> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef bool T;
- typedef std::vector<T, min_allocator<T>> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef bool T;
- typedef std::vector<T, min_allocator<T>> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef bool T;
- typedef std::vector<T, min_allocator<T>> C;
- C::iterator i;
- C::const_iterator j;
- }
-#endif
-#if _LIBCPP_STD_VER > 11
- { // N3644 testing
- std::vector<bool>::iterator ii1{}, ii2{};
- std::vector<bool>::iterator ii4 = ii1;
- std::vector<bool>::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
-
- assert (!(ii1 != ii2 ));
-
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
- assert (!(ii1 < cii ));
- assert (!(cii < ii1 ));
- assert ( (ii1 <= cii ));
- assert ( (cii <= ii1 ));
- assert (!(ii1 > cii ));
- assert (!(cii > ii1 ));
- assert ( (ii1 >= cii ));
- assert ( (cii >= ii1 ));
- assert (cii - ii1 == 0);
- assert (ii1 - cii == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/move.pass.cpp b/libcxx/test/containers/sequences/vector.bool/move.pass.cpp
deleted file mode 100644
index e877292ced7..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/move.pass.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(vector&& c);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<bool, test_allocator<bool> > l(test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > lo(test_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, test_allocator<bool> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
- {
- std::vector<bool, other_allocator<bool> > l(other_allocator<bool>(5));
- std::vector<bool, other_allocator<bool> > lo(other_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, other_allocator<bool> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool> > l(min_allocator<bool>{});
- std::vector<bool, min_allocator<bool> > lo(min_allocator<bool>{});
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, min_allocator<bool> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/move_alloc.pass.cpp b/libcxx/test/containers/sequences/vector.bool/move_alloc.pass.cpp
deleted file mode 100644
index deee9326197..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/move_alloc.pass.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(vector&& c, const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<bool, test_allocator<bool> > l(test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > lo(test_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, test_allocator<bool> > l2(std::move(l), test_allocator<bool>(6));
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == test_allocator<bool>(6));
- }
- {
- std::vector<bool, test_allocator<bool> > l(test_allocator<bool>(5));
- std::vector<bool, test_allocator<bool> > lo(test_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, test_allocator<bool> > l2(std::move(l), test_allocator<bool>(5));
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == test_allocator<bool>(5));
- }
- {
- std::vector<bool, other_allocator<bool> > l(other_allocator<bool>(5));
- std::vector<bool, other_allocator<bool> > lo(other_allocator<bool>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, other_allocator<bool> > l2(std::move(l), other_allocator<bool>(4));
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == other_allocator<bool>(4));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool> > l(min_allocator<bool>{});
- std::vector<bool, min_allocator<bool> > lo(min_allocator<bool>{});
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- std::vector<bool, min_allocator<bool> > l2(std::move(l), min_allocator<bool>());
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == min_allocator<bool>());
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
deleted file mode 100644
index b580eb4ae3b..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(vector&& c)
-// noexcept(
-// allocator_type::propagate_on_container_move_assignment::value &&
-// is_nothrow_move_assignable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<bool> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::vector<bool, test_allocator<bool>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::vector<bool, other_allocator<bool>> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::vector<bool, some_alloc<bool>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/move_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector.bool/move_noexcept.pass.cpp
deleted file mode 100644
index ab32bd0677b..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/move_noexcept.pass.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(vector&&)
-// noexcept(is_nothrow_move_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<bool> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::vector<bool, test_allocator<bool>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::vector<bool, other_allocator<bool>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::vector<bool, some_alloc<bool>> C;
- static_assert(!std::is_nothrow_move_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/op_equal_initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector.bool/op_equal_initializer_list.pass.cpp
deleted file mode 100644
index ef3dc5d1079..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/op_equal_initializer_list.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<bool> d;
- d = {true, false, false, true};
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> d;
- d = {true, false, false, true};
- assert(d.size() == 4);
- assert(d[0] == true);
- assert(d[1] == false);
- assert(d[2] == false);
- assert(d[3] == true);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/push_back.pass.cpp b/libcxx/test/containers/sequences/vector.bool/push_back.pass.cpp
deleted file mode 100644
index c6b0fbf4185..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/push_back.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// void push_back(const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- bool a[] = {0, 1, 1, 0, 1, 0, 0};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool> c;
- for (unsigned i = 0; i < N; ++i)
- {
- c.push_back(a[i]);
- assert(c.size() == i+1);
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == a[j]);
- }
- }
-#if __cplusplus >= 201103L
- {
- bool a[] = {0, 1, 1, 0, 1, 0, 0};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<bool, min_allocator<bool>> c;
- for (unsigned i = 0; i < N; ++i)
- {
- c.push_back(a[i]);
- assert(c.size() == i+1);
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == a[j]);
- }
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/reserve.pass.cpp b/libcxx/test/containers/sequences/vector.bool/reserve.pass.cpp
deleted file mode 100644
index be717a3be8a..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/reserve.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// void reserve(size_type n);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v;
- v.reserve(10);
- assert(v.capacity() >= 10);
- }
- {
- std::vector<bool> v(100);
- assert(v.capacity() >= 100);
- v.reserve(50);
- assert(v.size() == 100);
- assert(v.capacity() >= 100);
- v.reserve(150);
- assert(v.size() == 100);
- assert(v.capacity() >= 150);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v;
- v.reserve(10);
- assert(v.capacity() >= 10);
- }
- {
- std::vector<bool, min_allocator<bool>> v(100);
- assert(v.capacity() >= 100);
- v.reserve(50);
- assert(v.size() == 100);
- assert(v.capacity() >= 100);
- v.reserve(150);
- assert(v.size() == 100);
- assert(v.capacity() >= 150);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/resize_size.pass.cpp b/libcxx/test/containers/sequences/vector.bool/resize_size.pass.cpp
deleted file mode 100644
index f75720c94ea..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/resize_size.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// void resize(size_type sz);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() >= 100);
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- v.reserve(400);
- v.resize(300); // check the case when resizing and we already have room
- assert(v.size() == 300);
- assert(v.capacity() >= 400);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() >= 100);
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- v.reserve(400);
- v.resize(300); // check the case when resizing and we already have room
- assert(v.size() == 300);
- assert(v.capacity() >= 400);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/resize_size_value.pass.cpp b/libcxx/test/containers/sequences/vector.bool/resize_size_value.pass.cpp
deleted file mode 100644
index 8cecf44d2fb..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/resize_size_value.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// void resize(size_type sz, const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v(100);
- v.resize(50, 1);
- assert(v.size() == 50);
- assert(v.capacity() >= 100);
- assert(v == std::vector<bool>(50));
- v.resize(200, 1);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- for (unsigned i = 0; i < 50; ++i)
- assert(v[i] == 0);
- for (unsigned i = 50; i < 200; ++i)
- assert(v[i] == 1);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v(100);
- v.resize(50, 1);
- assert(v.size() == 50);
- assert(v.capacity() >= 100);
- assert((v == std::vector<bool, min_allocator<bool>>(50)));
- v.resize(200, 1);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- for (unsigned i = 0; i < 50; ++i)
- assert(v[i] == 0);
- for (unsigned i = 50; i < 200; ++i)
- assert(v[i] == 1);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/shrink_to_fit.pass.cpp b/libcxx/test/containers/sequences/vector.bool/shrink_to_fit.pass.cpp
deleted file mode 100644
index 1f9fcac3d9b..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/shrink_to_fit.pass.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// void shrink_to_fit();
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v(100);
- v.push_back(1);
- v.shrink_to_fit();
- assert(v.capacity() >= 101);
- assert(v.size() >= 101);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v(100);
- v.push_back(1);
- v.shrink_to_fit();
- assert(v.capacity() >= 101);
- assert(v.size() >= 101);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/swap.pass.cpp b/libcxx/test/containers/sequences/vector.bool/swap.pass.cpp
deleted file mode 100644
index a92c6a6c165..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/swap.pass.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// vector<bool>
-
-// void swap(vector& x);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<bool> v1(100);
- std::vector<bool> v2(200);
- v1.swap(v2);
- assert(v1.size() == 200);
- assert(v1.capacity() >= 200);
- assert(v2.size() == 100);
- assert(v2.capacity() >= 100);
- }
- {
- typedef test_allocator<bool> A;
- std::vector<bool, A> v1(100, true, A(1));
- std::vector<bool, A> v2(200, false, A(2));
- swap(v1, v2);
- assert(v1.size() == 200);
- assert(v1.capacity() >= 200);
- assert(v2.size() == 100);
- assert(v2.capacity() >= 100);
- assert(v1.get_allocator() == A(1));
- assert(v2.get_allocator() == A(2));
- }
- {
- typedef other_allocator<bool> A;
- std::vector<bool, A> v1(100, true, A(1));
- std::vector<bool, A> v2(200, false, A(2));
- swap(v1, v2);
- assert(v1.size() == 200);
- assert(v1.capacity() >= 200);
- assert(v2.size() == 100);
- assert(v2.capacity() >= 100);
- assert(v1.get_allocator() == A(2));
- assert(v2.get_allocator() == A(1));
- }
- {
- std::vector<bool> v(2);
- std::vector<bool>::reference r1 = v[0];
- std::vector<bool>::reference r2 = v[1];
- r1 = true;
- using std::swap;
- swap(r1, r2);
- assert(v[0] == false);
- assert(v[1] == true);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<bool, min_allocator<bool>> v1(100);
- std::vector<bool, min_allocator<bool>> v2(200);
- v1.swap(v2);
- assert(v1.size() == 200);
- assert(v1.capacity() >= 200);
- assert(v2.size() == 100);
- assert(v2.capacity() >= 100);
- }
- {
- typedef min_allocator<bool> A;
- std::vector<bool, A> v1(100, true, A());
- std::vector<bool, A> v2(200, false, A());
- swap(v1, v2);
- assert(v1.size() == 200);
- assert(v1.capacity() >= 200);
- assert(v2.size() == 100);
- assert(v2.capacity() >= 100);
- assert(v1.get_allocator() == A());
- assert(v2.get_allocator() == A());
- }
- {
- std::vector<bool, min_allocator<bool>> v(2);
- std::vector<bool, min_allocator<bool>>::reference r1 = v[0];
- std::vector<bool, min_allocator<bool>>::reference r2 = v[1];
- r1 = true;
- using std::swap;
- swap(r1, r2);
- assert(v[0] == false);
- assert(v[1] == true);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/swap_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector.bool/swap_noexcept.pass.cpp
deleted file mode 100644
index bcaf161119f..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/swap_noexcept.pass.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void swap(vector& c)
-// noexcept(!allocator_type::propagate_on_container_swap::value ||
-// __is_nothrow_swappable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
-
- some_alloc() {}
- some_alloc(const some_alloc&);
- void deallocate(void*, unsigned) {}
-
- typedef std::true_type propagate_on_container_swap;
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<bool> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::vector<bool, test_allocator<bool>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::vector<bool, other_allocator<bool>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::vector<bool, some_alloc<bool>> C;
- C c1, c2;
- static_assert(!noexcept(swap(c1, c2)), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/types.pass.cpp b/libcxx/test/containers/sequences/vector.bool/types.pass.cpp
deleted file mode 100644
index b266b3bbb92..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/types.pass.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Test nested types and default template args:
-
-// template <class Allocator>
-// class vector<bool, Allocator
-// {
-// public:
-// typedef T value_type;
-// typedef Allocator allocator_type;
-// typedef implementation-defined iterator;
-// typedef implementation-defined const_iterator;
-// typedef typename allocator_type::size_type size_type;
-// typedef typename allocator_type::difference_type difference_type;
-// typedef typename allocator_type::pointer pointer;
-// typedef typename allocator_type::const_pointer const_pointer;
-// typedef std::reverse_iterator<iterator> reverse_iterator;
-// typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-// };
-
-#include <vector>
-#include <iterator>
-#include <type_traits>
-
-#include "test_allocator.h"
-#include "../../Copyable.h"
-#include "min_allocator.h"
-
-template <class Allocator>
-void
-test()
-{
- typedef std::vector<bool, Allocator> C;
-
- static_assert((std::is_same<typename C::value_type, bool>::value), "");
- static_assert((std::is_same<typename C::value_type, typename Allocator::value_type>::value), "");
- static_assert((std::is_same<typename C::allocator_type, Allocator>::value), "");
- static_assert((std::is_same<typename C::size_type, typename std::allocator_traits<Allocator>::size_type>::value), "");
- static_assert((std::is_same<typename C::difference_type, typename std::allocator_traits<Allocator>::difference_type>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename C::iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename C::const_iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename C::reverse_iterator,
- std::reverse_iterator<typename C::iterator> >::value), "");
- static_assert((std::is_same<
- typename C::const_reverse_iterator,
- std::reverse_iterator<typename C::const_iterator> >::value), "");
-}
-
-int main()
-{
- test<test_allocator<bool> >();
- test<std::allocator<bool> >();
- static_assert((std::is_same<std::vector<bool>::allocator_type,
- std::allocator<bool> >::value), "");
-#if __cplusplus >= 201103L
- test<min_allocator<bool> >();
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector.bool/vector_bool.pass.cpp b/libcxx/test/containers/sequences/vector.bool/vector_bool.pass.cpp
deleted file mode 100644
index ea2262cd9c1..00000000000
--- a/libcxx/test/containers/sequences/vector.bool/vector_bool.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <functional>
-
-// template <class T>
-// struct hash
-// : public unary_function<T, size_t>
-// {
-// size_t operator()(T val) const;
-// };
-
-// Not very portable
-
-#include <vector>
-#include <cassert>
-#include <type_traits>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef std::vector<bool> T;
- typedef std::hash<T> H;
- static_assert((std::is_base_of<std::unary_function<T, std::size_t>,
- H>::value), "");
- bool ba[] = {true, false, true, true, false};
- T vb(std::begin(ba), std::end(ba));
- H h;
- assert(h(vb) != 0);
- }
-#if __cplusplus >= 201103L
- {
- typedef std::vector<bool, min_allocator<bool>> T;
- typedef std::hash<T> H;
- static_assert((std::is_base_of<std::unary_function<T, std::size_t>,
- H>::value), "");
- bool ba[] = {true, false, true, true, false};
- T vb(std::begin(ba), std::end(ba));
- H h;
- assert(h(vb) != 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/asan.pass.cpp b/libcxx/test/containers/sequences/vector/asan.pass.cpp
deleted file mode 100644
index 86c02b29562..00000000000
--- a/libcxx/test/containers/sequences/vector/asan.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// reference operator[](size_type n);
-
-#include <vector>
-#include <cassert>
-#include <cstdlib>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-#ifndef _LIBCPP_HAS_NO_ASAN
-extern "C" void __asan_set_error_exit_code(int);
-
-int main()
-{
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- c.reserve(2*c.size());
- T foo = c[c.size()]; // bad, but not caught by ASAN
- }
-#endif
-
- __asan_set_error_exit_code(0);
- {
- typedef int T;
- typedef std::vector<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- c.reserve(2*c.size());
- assert(is_contiguous_container_asan_correct(c));
- assert(!__sanitizer_verify_contiguous_container ( c.data(), c.data() + 1, c.data() + c.capacity()));
- T foo = c[c.size()]; // should trigger ASAN
- assert(false); // if we got here, ASAN didn't trigger
- }
-}
-#else
-int main () { return 0; }
-#endif
diff --git a/libcxx/test/containers/sequences/vector/asan_throw.pass.cc b/libcxx/test/containers/sequences/vector/asan_throw.pass.cc
deleted file mode 100644
index a1dce4a3b44..00000000000
--- a/libcxx/test/containers/sequences/vector/asan_throw.pass.cc
+++ /dev/null
@@ -1,198 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// Test asan vector annotations with a class that throws in a CTOR.
-
-#include <vector>
-#include <cassert>
-
-#include "asan_testing.h"
-
-class X {
-public:
- X(const X &x) { Init(x.a); }
- X(char arg) { Init(arg); }
- X() { Init(42); }
- X &operator=(const X &x) {
- Init(x.a);
- return *this;
- }
- void Init(char arg) {
- if (arg == 42)
- throw 0;
- if (arg == 66)
- arg = 42;
- a = arg;
- }
- char get() const { return a; }
- void set(char arg) { a = arg; }
-
-private:
- char a;
-};
-
-void test_push_back() {
- std::vector<X> v;
- v.reserve(2);
- v.push_back(X(2));
- assert(v.size() == 1);
- try {
- v.push_back(X(66));
- assert(0);
- } catch (int e) {
- assert(v.size() == 1);
- }
- assert(v.size() == 1);
- assert(is_contiguous_container_asan_correct(v));
-}
-
-void test_emplace_back() {
-#ifndef _LIBCPP_HAS_NO_VARIADICS
- std::vector<X> v;
- v.reserve(2);
- v.push_back(X(2));
- assert(v.size() == 1);
- try {
- v.emplace_back(42);
- assert(0);
- } catch (int e) {
- assert(v.size() == 1);
- }
- assert(v.size() == 1);
- assert(is_contiguous_container_asan_correct(v));
-#endif // _LIBCPP_HAS_NO_VARIADICS
-}
-
-void test_insert_range() {
- std::vector<X> v;
- v.reserve(4);
- v.push_back(X(1));
- v.push_back(X(2));
- assert(v.size() == 2);
- assert(v.capacity() >= 4);
- try {
- char a[2] = {21, 42};
- v.insert(v.end(), a, a + 2);
- assert(0);
- } catch (int e) {
- assert(v.size() == 3);
- }
- assert(v.size() == 3);
- assert(is_contiguous_container_asan_correct(v));
-}
-
-void test_insert() {
- std::vector<X> v;
- v.reserve(3);
- v.insert(v.end(), X(1));
- v.insert(v.begin(), X(2));
- assert(v.size() == 2);
- try {
- v.insert(v.end(), X(66));
- assert(0);
- } catch (int e) {
- assert(v.size() == 2);
- }
- assert(v.size() == 2);
- assert(is_contiguous_container_asan_correct(v));
-}
-
-void test_emplace() {
-#ifndef _LIBCPP_HAS_NO_VARIADICS
- std::vector<X> v;
- v.reserve(3);
- v.insert(v.end(), X(1));
- v.insert(v.begin(), X(2));
- assert(v.size() == 2);
- try {
- v.emplace(v.end(), 42);
- assert(0);
- } catch (int e) {
- assert(v.size() == 2);
- }
- assert(v.size() == 2);
- assert(is_contiguous_container_asan_correct(v));
-#endif // _LIBCPP_HAS_NO_VARIADICS
-}
-
-void test_insert_range2() {
- std::vector<X> v;
- v.reserve(4);
- v.insert(v.end(), X(1));
- v.insert(v.begin(), X(2));
- assert(v.size() == 2);
- assert(v.capacity() >= 4);
- try {
- char a[2] = {10, 42};
- v.insert(v.begin(), a, a + 2);
- assert(0);
- } catch (int e) {
- assert(v.size() <= 4);
- assert(is_contiguous_container_asan_correct(v));
- return;
- }
- assert(0);
-}
-
-void test_insert_n() {
- std::vector<X> v;
- v.reserve(10);
- v.insert(v.end(), X(1));
- v.insert(v.begin(), X(2));
- assert(v.size() == 2);
- try {
- v.insert(v.begin(), 1, X(66));
- assert(0);
- } catch (int e) {
- assert(v.size() <= 3);
- assert(is_contiguous_container_asan_correct(v));
- return;
- }
- assert(0);
-}
-
-void test_resize() {
- std::vector<X> v;
- v.reserve(3);
- v.push_back(X(0));
- try {
- v.resize(3);
- assert(0);
- } catch (int e) {
- assert(v.size() == 1);
- }
- assert(v.size() == 1);
- assert(is_contiguous_container_asan_correct(v));
-}
-
-void test_resize_param() {
- std::vector<X> v;
- v.reserve(3);
- v.push_back(X(0));
- try {
- v.resize(3, X(66));
- assert(0);
- } catch (int e) {
- assert(v.size() == 1);
- }
- assert(v.size() == 1);
- assert(is_contiguous_container_asan_correct(v));
-}
-
-int main() {
- test_push_back();
- test_emplace_back();
- test_insert_range();
- test_insert();
- test_emplace();
- test_insert_range2();
- test_insert_n();
- test_resize();
- test_resize_param();
-}
diff --git a/libcxx/test/containers/sequences/vector/const_value_type.pass.cpp b/libcxx/test/containers/sequences/vector/const_value_type.pass.cpp
deleted file mode 100644
index e16e439dec4..00000000000
--- a/libcxx/test/containers/sequences/vector/const_value_type.pass.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector<const int> v; // an extension
-
-#include <vector>
-#include <type_traits>
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- std::vector<const int> v = {1, 2, 3};
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/db_back.pass.cpp b/libcxx/test/containers/sequences/vector/db_back.pass.cpp
deleted file mode 100644
index 05f3d07712e..00000000000
--- a/libcxx/test/containers/sequences/vector/db_back.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call back() on empty container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- assert(c.back() == 0);
- c.clear();
- assert(c.back() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- assert(c.back() == 0);
- c.clear();
- assert(c.back() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_cback.pass.cpp b/libcxx/test/containers/sequences/vector/db_cback.pass.cpp
deleted file mode 100644
index 5eb1a353e8b..00000000000
--- a/libcxx/test/containers/sequences/vector/db_cback.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call back() on empty const container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- const C c;
- assert(c.back() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- const C c;
- assert(c.back() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_cfront.pass.cpp b/libcxx/test/containers/sequences/vector/db_cfront.pass.cpp
deleted file mode 100644
index 5e54da1d444..00000000000
--- a/libcxx/test/containers/sequences/vector/db_cfront.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call front() on empty const container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- const C c;
- assert(c.front() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- const C c;
- assert(c.front() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_cindex.pass.cpp b/libcxx/test/containers/sequences/vector/db_cindex.pass.cpp
deleted file mode 100644
index 133aa565282..00000000000
--- a/libcxx/test/containers/sequences/vector/db_cindex.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Index const vector out of bounds.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- const C c(1);
- assert(c[0] == 0);
- assert(c[1] == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- const C c(1);
- assert(c[0] == 0);
- assert(c[1] == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_front.pass.cpp b/libcxx/test/containers/sequences/vector/db_front.pass.cpp
deleted file mode 100644
index 388058fb315..00000000000
--- a/libcxx/test/containers/sequences/vector/db_front.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call front() on empty container.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- assert(c.front() == 0);
- c.clear();
- assert(c.front() == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- assert(c.front() == 0);
- c.clear();
- assert(c.front() == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_index.pass.cpp b/libcxx/test/containers/sequences/vector/db_index.pass.cpp
deleted file mode 100644
index 1daf076da67..00000000000
--- a/libcxx/test/containers/sequences/vector/db_index.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Index vector out of bounds.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- assert(c[0] == 0);
- c.clear();
- assert(c[0] == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- assert(c[0] == 0);
- c.clear();
- assert(c[0] == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_2.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_2.pass.cpp
deleted file mode 100644
index 2d43843067b..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_2.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Compare iterators from different containers with <.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c1;
- C c2;
- bool b = c1.begin() < c2.begin();
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c1;
- C c2;
- bool b = c1.begin() < c2.begin();
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_3.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_3.pass.cpp
deleted file mode 100644
index 051d66c3339..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_3.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Subtract iterators from different containers.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c1;
- C c2;
- int i = c1.begin() - c2.begin();
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c1;
- C c2;
- int i = c1.begin() - c2.begin();
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_4.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_4.pass.cpp
deleted file mode 100644
index 4c2aa628de1..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_4.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Index iterator out of bounds.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- C::iterator i = c.begin();
- assert(i[0] == 0);
- assert(i[1] == 0);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.begin();
- assert(i[0] == 0);
- assert(i[1] == 0);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_5.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_5.pass.cpp
deleted file mode 100644
index 1b1090499c2..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_5.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Add to iterator out of bounds.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- C::iterator i = c.begin();
- i += 1;
- assert(i == c.end());
- i = c.begin();
- i += 2;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.begin();
- i += 1;
- assert(i == c.end());
- i = c.begin();
- i += 2;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_6.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_6.pass.cpp
deleted file mode 100644
index 424bc939b13..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_6.pass.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Decrement iterator prior to begin.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- C::iterator i = c.end();
- --i;
- assert(i == c.begin());
- --i;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.end();
- --i;
- assert(i == c.begin());
- --i;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_7.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_7.pass.cpp
deleted file mode 100644
index 72cdb10cbc8..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_7.pass.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Increment iterator past end.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- C::iterator i = c.begin();
- ++i;
- assert(i == c.end());
- ++i;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.begin();
- ++i;
- assert(i == c.end());
- ++i;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/db_iterators_8.pass.cpp b/libcxx/test/containers/sequences/vector/db_iterators_8.pass.cpp
deleted file mode 100644
index 7b898533197..00000000000
--- a/libcxx/test/containers/sequences/vector/db_iterators_8.pass.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Dereference non-dereferenceable iterator.
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c(1);
- C::iterator i = c.end();
- T j = *i;
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c(1);
- C::iterator i = c.end();
- T j = *i;
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/iterators.pass.cpp b/libcxx/test/containers/sequences/vector/iterators.pass.cpp
deleted file mode 100644
index 75a08287a86..00000000000
--- a/libcxx/test/containers/sequences/vector/iterators.pass.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator begin();
-// iterator end();
-// const_iterator begin() const;
-// const_iterator end() const;
-// const_iterator cbegin() const;
-// const_iterator cend() const;
-
-#include <vector>
-#include <cassert>
-#include <iterator>
-
-#include "min_allocator.h"
-
-struct A
-{
- int first;
- int second;
-};
-
-int main()
-{
- {
- typedef int T;
- typedef std::vector<T> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::vector<T> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::vector<T> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef int T;
- typedef std::vector<T> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 1);
- *i = 10;
- assert(*i == 10);
- assert(std::distance(c.begin(), c.end()) == 10);
- }
- {
- typedef int T;
- typedef std::vector<T> C;
- C::iterator i;
- C::const_iterator j;
- }
-#if __cplusplus >= 201103L
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c;
- C::iterator i = c.begin();
- C::iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- const C c;
- C::const_iterator i = c.begin();
- C::const_iterator j = c.end();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- }
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C c;
- C::const_iterator i = c.cbegin();
- C::const_iterator j = c.cend();
- assert(std::distance(i, j) == 0);
- assert(i == j);
- assert(i == c.end());
- }
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- C c(std::begin(t), std::end(t));
- C::iterator i = c.begin();
- assert(*i == 0);
- ++i;
- assert(*i == 1);
- *i = 10;
- assert(*i == 10);
- assert(std::distance(c.begin(), c.end()) == 10);
- }
- {
- typedef int T;
- typedef std::vector<T, min_allocator<T>> C;
- C::iterator i;
- C::const_iterator j;
- }
- {
- typedef A T;
- typedef std::vector<T, min_allocator<T>> C;
- C c = {A{1, 2}};
- C::iterator i = c.begin();
- i->first = 3;
- C::const_iterator j = i;
- assert(j->first == 3);
- }
-#endif
-#if _LIBCPP_STD_VER > 11
- { // N3644 testing
- typedef std::vector<int> C;
- C::iterator ii1{}, ii2{};
- C::iterator ii4 = ii1;
- C::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
-
- assert (!(ii1 != ii2 ));
-
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
- assert (!(ii1 < cii ));
- assert (!(cii < ii1 ));
- assert ( (ii1 <= cii ));
- assert ( (cii <= ii1 ));
- assert (!(ii1 > cii ));
- assert (!(cii > ii1 ));
- assert ( (ii1 >= cii ));
- assert ( (cii >= ii1 ));
- assert (cii - ii1 == 0);
- assert (ii1 - cii == 0);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/types.pass.cpp b/libcxx/test/containers/sequences/vector/types.pass.cpp
deleted file mode 100644
index 3504de6f75d..00000000000
--- a/libcxx/test/containers/sequences/vector/types.pass.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Test nested types and default template args:
-
-// template <class T, class Allocator = allocator<T> >
-// class vector
-// {
-// public:
-// typedef T value_type;
-// typedef Allocator allocator_type;
-// typedef typename allocator_type::reference reference;
-// typedef typename allocator_type::const_reference const_reference;
-// typedef implementation-defined iterator;
-// typedef implementation-defined const_iterator;
-// typedef typename allocator_type::size_type size_type;
-// typedef typename allocator_type::difference_type difference_type;
-// typedef typename allocator_type::pointer pointer;
-// typedef typename allocator_type::const_pointer const_pointer;
-// typedef std::reverse_iterator<iterator> reverse_iterator;
-// typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-// };
-
-#include <vector>
-#include <iterator>
-#include <type_traits>
-
-#include "test_allocator.h"
-#include "../../Copyable.h"
-#include "min_allocator.h"
-
-template <class T, class Allocator>
-void
-test()
-{
- typedef std::vector<T, Allocator> C;
-
- static_assert((std::is_same<typename C::value_type, T>::value), "");
- static_assert((std::is_same<typename C::value_type, typename Allocator::value_type>::value), "");
- static_assert((std::is_same<typename C::allocator_type, Allocator>::value), "");
- static_assert((std::is_same<typename C::size_type, typename Allocator::size_type>::value), "");
- static_assert((std::is_same<typename C::difference_type, typename Allocator::difference_type>::value), "");
- static_assert((std::is_same<typename C::reference, typename Allocator::reference>::value), "");
- static_assert((std::is_same<typename C::const_reference, typename Allocator::const_reference>::value), "");
- static_assert((std::is_same<typename C::pointer, typename Allocator::pointer>::value), "");
- static_assert((std::is_same<typename C::const_pointer, typename Allocator::const_pointer>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename C::iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename C::const_iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename C::reverse_iterator,
- std::reverse_iterator<typename C::iterator> >::value), "");
- static_assert((std::is_same<
- typename C::const_reverse_iterator,
- std::reverse_iterator<typename C::const_iterator> >::value), "");
-}
-
-int main()
-{
- test<int, test_allocator<int> >();
- test<int*, std::allocator<int*> >();
- test<Copyable, test_allocator<Copyable> >();
- static_assert((std::is_same<std::vector<char>::allocator_type,
- std::allocator<char> >::value), "");
-#if __cplusplus >= 201103L
- static_assert((std::is_same<std::vector<int, min_allocator<int>>::value_type, int>::value), "");
- static_assert((std::is_same<std::vector<int, min_allocator<int>>::allocator_type, min_allocator<int> >::value), "");
- static_assert((std::is_same<std::vector<int, min_allocator<int>>::reference, int&>::value), "");
- static_assert((std::is_same<std::vector<int, min_allocator<int>>::const_reference, const int&>::value), "");
- static_assert((std::is_same<std::vector<int, min_allocator<int>>::pointer, min_pointer<int>>::value), "");
- static_assert((std::is_same<std::vector<int, min_allocator<int>>::const_pointer, min_pointer<const int>>::value), "");
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.capacity/capacity.pass.cpp b/libcxx/test/containers/sequences/vector/vector.capacity/capacity.pass.cpp
deleted file mode 100644
index 21082c839f5..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.capacity/capacity.pass.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// size_type capacity() const;
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v;
- assert(v.capacity() == 0);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int> v(100);
- assert(v.capacity() == 100);
- v.push_back(0);
- assert(v.capacity() > 101);
- assert(is_contiguous_container_asan_correct(v));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v;
- assert(v.capacity() == 0);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, min_allocator<int>> v(100);
- assert(v.capacity() == 100);
- v.push_back(0);
- assert(v.capacity() > 101);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.capacity/reserve.pass.cpp b/libcxx/test/containers/sequences/vector/vector.capacity/reserve.pass.cpp
deleted file mode 100644
index 4df5702f2ad..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.capacity/reserve.pass.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void reserve(size_type n);
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v;
- v.reserve(10);
- assert(v.capacity() >= 10);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int> v(100);
- assert(v.capacity() == 100);
- v.reserve(50);
- assert(v.size() == 100);
- assert(v.capacity() == 100);
- v.reserve(150);
- assert(v.size() == 100);
- assert(v.capacity() == 150);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, stack_allocator<int, 250> > v(100);
- assert(v.capacity() == 100);
- v.reserve(50);
- assert(v.size() == 100);
- assert(v.capacity() == 100);
- v.reserve(150);
- assert(v.size() == 100);
- assert(v.capacity() == 150);
- assert(is_contiguous_container_asan_correct(v));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v;
- v.reserve(10);
- assert(v.capacity() >= 10);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, min_allocator<int>> v(100);
- assert(v.capacity() == 100);
- v.reserve(50);
- assert(v.size() == 100);
- assert(v.capacity() == 100);
- v.reserve(150);
- assert(v.size() == 100);
- assert(v.capacity() == 150);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.capacity/resize_size.pass.cpp b/libcxx/test/containers/sequences/vector/vector.capacity/resize_size.pass.cpp
deleted file mode 100644
index a47c5131d8a..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.capacity/resize_size.pass.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void resize(size_type sz);
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<MoveOnly> v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<MoveOnly, stack_allocator<MoveOnly, 300> > v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
-#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<int> v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, stack_allocator<int, 300> > v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#if __cplusplus >= 201103L
- {
- std::vector<MoveOnly, min_allocator<MoveOnly>> v(100);
- v.resize(50);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- v.resize(200);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.capacity/resize_size_value.pass.cpp b/libcxx/test/containers/sequences/vector/vector.capacity/resize_size_value.pass.cpp
deleted file mode 100644
index de5126b03d1..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.capacity/resize_size_value.pass.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void resize(size_type sz, const value_type& x);
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v(100);
- v.resize(50, 1);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(v == std::vector<int>(50));
- v.resize(200, 1);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- for (unsigned i = 0; i < 50; ++i)
- assert(v[i] == 0);
- for (unsigned i = 50; i < 200; ++i)
- assert(v[i] == 1);
- }
- {
- std::vector<int, stack_allocator<int, 300> > v(100);
- v.resize(50, 1);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- v.resize(200, 1);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v(100);
- v.resize(50, 1);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- assert((v == std::vector<int, min_allocator<int>>(50)));
- v.resize(200, 1);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- for (unsigned i = 0; i < 50; ++i)
- assert(v[i] == 0);
- for (unsigned i = 50; i < 200; ++i)
- assert(v[i] == 1);
- }
- {
- std::vector<int, min_allocator<int>> v(100);
- v.resize(50, 1);
- assert(v.size() == 50);
- assert(v.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v));
- v.resize(200, 1);
- assert(v.size() == 200);
- assert(v.capacity() >= 200);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp b/libcxx/test/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp
deleted file mode 100644
index 49ab9cc71de..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void shrink_to_fit();
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v(100);
- v.push_back(1);
- assert(is_contiguous_container_asan_correct(v));
- v.shrink_to_fit();
- assert(v.capacity() == 101);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, stack_allocator<int, 401> > v(100);
- v.push_back(1);
- assert(is_contiguous_container_asan_correct(v));
- v.shrink_to_fit();
- assert(v.capacity() == 101);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- }
-#ifndef _LIBCPP_NO_EXCEPTIONS
- {
- std::vector<int, stack_allocator<int, 400> > v(100);
- v.push_back(1);
- assert(is_contiguous_container_asan_correct(v));
- v.shrink_to_fit();
- assert(v.capacity() == 200);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v(100);
- v.push_back(1);
- assert(is_contiguous_container_asan_correct(v));
- v.shrink_to_fit();
- assert(v.capacity() == 101);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.capacity/swap.pass.cpp b/libcxx/test/containers/sequences/vector/vector.capacity/swap.pass.cpp
deleted file mode 100644
index f3d9289c36e..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.capacity/swap.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void swap(vector& x);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v1(100);
- std::vector<int> v2(200);
- assert(is_contiguous_container_asan_correct(v1));
- assert(is_contiguous_container_asan_correct(v2));
- v1.swap(v2);
- assert(v1.size() == 200);
- assert(v1.capacity() == 200);
- assert(is_contiguous_container_asan_correct(v1));
- assert(v2.size() == 100);
- assert(v2.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v2));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v1(100);
- std::vector<int, min_allocator<int>> v2(200);
- assert(is_contiguous_container_asan_correct(v1));
- assert(is_contiguous_container_asan_correct(v2));
- v1.swap(v2);
- assert(v1.size() == 200);
- assert(v1.capacity() == 200);
- assert(is_contiguous_container_asan_correct(v1));
- assert(v2.size() == 100);
- assert(v2.capacity() == 100);
- assert(is_contiguous_container_asan_correct(v2));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/assign_copy.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/assign_copy.pass.cpp
deleted file mode 100644
index 6f02c3b7bc2..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/assign_copy.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(const vector& c);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
- {
- std::vector<int, test_allocator<int> > l(3, 2, test_allocator<int>(5));
- std::vector<int, test_allocator<int> > l2(l, test_allocator<int>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<int>(3));
- }
- {
- std::vector<int, other_allocator<int> > l(3, 2, other_allocator<int>(5));
- std::vector<int, other_allocator<int> > l2(l, other_allocator<int>(3));
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<int>(5));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int> > l(3, 2, min_allocator<int>());
- std::vector<int, min_allocator<int> > l2(l, min_allocator<int>());
- l2 = l;
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<int>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/assign_initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/assign_initializer_list.pass.cpp
deleted file mode 100644
index f5c06b1a1bd..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/assign_initializer_list.pass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void assign(initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<int> d;
- d.assign({3, 4, 5, 6});
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> d;
- d.assign({3, 4, 5, 6});
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/assign_move.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/assign_move.pass.cpp
deleted file mode 100644
index d87ac8636b0..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/assign_move.pass.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(vector&& c);
-
-#include <vector>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::vector<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, test_allocator<MoveOnly> > l2(test_allocator<MoveOnly>(5));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- std::vector<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::vector<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, test_allocator<MoveOnly> > l2(test_allocator<MoveOnly>(6));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == test_allocator<MoveOnly>(6));
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- std::vector<MoveOnly, other_allocator<MoveOnly> > l(other_allocator<MoveOnly>(5));
- std::vector<MoveOnly, other_allocator<MoveOnly> > lo(other_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, other_allocator<MoveOnly> > l2(other_allocator<MoveOnly>(6));
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- assert(is_contiguous_container_asan_correct(l2));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
- std::vector<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, min_allocator<MoveOnly> > l2(min_allocator<MoveOnly>{});
- l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- assert(is_contiguous_container_asan_correct(l2));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp
deleted file mode 100644
index 75772bef78a..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(const Alloc& = Alloc());
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "../../../NotConstructible.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C>
-void
-test0()
-{
- C c;
- assert(c.__invariants());
- assert(c.empty());
- assert(c.get_allocator() == typename C::allocator_type());
- assert(is_contiguous_container_asan_correct(c));
-#if __cplusplus >= 201103L
- C c1 = {};
- assert(c1.__invariants());
- assert(c1.empty());
- assert(c1.get_allocator() == typename C::allocator_type());
- assert(is_contiguous_container_asan_correct(c1));
-#endif
-}
-
-template <class C>
-void
-test1(const typename C::allocator_type& a)
-{
- C c(a);
- assert(c.__invariants());
- assert(c.empty());
- assert(c.get_allocator() == a);
- assert(is_contiguous_container_asan_correct(c));
-}
-
-int main()
-{
- {
- test0<std::vector<int> >();
- test0<std::vector<NotConstructible> >();
- test1<std::vector<int, test_allocator<int> > >(test_allocator<int>(3));
- test1<std::vector<NotConstructible, test_allocator<NotConstructible> > >
- (test_allocator<NotConstructible>(5));
- }
- {
- std::vector<int, stack_allocator<int, 10> > v;
- assert(v.empty());
- }
-#if __cplusplus >= 201103L
- {
- test0<std::vector<int, min_allocator<int>> >();
- test0<std::vector<NotConstructible, min_allocator<NotConstructible>> >();
- test1<std::vector<int, min_allocator<int> > >(min_allocator<int>{});
- test1<std::vector<NotConstructible, min_allocator<NotConstructible> > >
- (min_allocator<NotConstructible>{});
- }
- {
- std::vector<int, min_allocator<int> > v;
- assert(v.empty());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
deleted file mode 100644
index 36e231acce1..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class InputIter> vector(InputIter first, InputIter last);
-
-#include <vector>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C, class Iterator>
-void
-test(Iterator first, Iterator last)
-{
- C c(first, last);
- assert(c.__invariants());
- assert(c.size() == std::distance(first, last));
- assert(is_contiguous_container_asan_correct(c));
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i, ++first)
- assert(*i == *first);
-}
-
-int main()
-{
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test<std::vector<int> >(input_iterator<const int*>(a), input_iterator<const int*>(an));
- test<std::vector<int> >(forward_iterator<const int*>(a), forward_iterator<const int*>(an));
- test<std::vector<int> >(bidirectional_iterator<const int*>(a), bidirectional_iterator<const int*>(an));
- test<std::vector<int> >(random_access_iterator<const int*>(a), random_access_iterator<const int*>(an));
- test<std::vector<int> >(a, an);
-
- test<std::vector<int, stack_allocator<int, 63> > >(input_iterator<const int*>(a), input_iterator<const int*>(an));
- test<std::vector<int, stack_allocator<int, 18> > >(forward_iterator<const int*>(a), forward_iterator<const int*>(an));
- test<std::vector<int, stack_allocator<int, 18> > >(bidirectional_iterator<const int*>(a), bidirectional_iterator<const int*>(an));
- test<std::vector<int, stack_allocator<int, 18> > >(random_access_iterator<const int*>(a), random_access_iterator<const int*>(an));
- test<std::vector<int, stack_allocator<int, 18> > >(a, an);
-#if __cplusplus >= 201103L
- test<std::vector<int, min_allocator<int>> >(input_iterator<const int*>(a), input_iterator<const int*>(an));
- test<std::vector<int, min_allocator<int>> >(forward_iterator<const int*>(a), forward_iterator<const int*>(an));
- test<std::vector<int, min_allocator<int>> >(bidirectional_iterator<const int*>(a), bidirectional_iterator<const int*>(an));
- test<std::vector<int, min_allocator<int>> >(random_access_iterator<const int*>(a), random_access_iterator<const int*>(an));
- test<std::vector<int> >(a, an);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
deleted file mode 100644
index 7fa748a90d7..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class InputIter> vector(InputIter first, InputIter last,
-// const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-
-#include "test_iterators.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C, class Iterator, class A>
-void
-test(Iterator first, Iterator last, const A& a)
-{
- C c(first, last, a);
- assert(c.__invariants());
- assert(c.size() == std::distance(first, last));
- assert(is_contiguous_container_asan_correct(c));
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i, ++first)
- assert(*i == *first);
-}
-
-#if __cplusplus >= 201103L
-
-template <class T>
-struct implicit_conv_allocator : min_allocator<T>
-{
- implicit_conv_allocator(void* p) {}
- implicit_conv_allocator(const implicit_conv_allocator&) = default;
-};
-
-#endif
-
-int main()
-{
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- std::allocator<int> alloc;
- test<std::vector<int> >(input_iterator<const int*>(a), input_iterator<const int*>(an), alloc);
- test<std::vector<int> >(forward_iterator<const int*>(a), forward_iterator<const int*>(an), alloc);
- test<std::vector<int> >(bidirectional_iterator<const int*>(a), bidirectional_iterator<const int*>(an), alloc);
- test<std::vector<int> >(random_access_iterator<const int*>(a), random_access_iterator<const int*>(an), alloc);
- test<std::vector<int> >(a, an, alloc);
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- min_allocator<int> alloc;
- test<std::vector<int, min_allocator<int>> >(input_iterator<const int*>(a), input_iterator<const int*>(an), alloc);
- test<std::vector<int, min_allocator<int>> >(forward_iterator<const int*>(a), forward_iterator<const int*>(an), alloc);
- test<std::vector<int, min_allocator<int>> >(bidirectional_iterator<const int*>(a), bidirectional_iterator<const int*>(an), alloc);
- test<std::vector<int, min_allocator<int>> >(random_access_iterator<const int*>(a), random_access_iterator<const int*>(an), alloc);
- test<std::vector<int, min_allocator<int>> >(a, an, alloc);
- test<std::vector<int, implicit_conv_allocator<int>> >(a, an, nullptr);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_size.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_size.pass.cpp
deleted file mode 100644
index e03389593f1..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_size.pass.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// explicit vector(size_type n);
-
-#include <vector>
-#include <cassert>
-
-#include "DefaultOnly.h"
-#include "min_allocator.h"
-#include "test_allocator.h"
-#include "asan_testing.h"
-
-template <class C>
-void
-test2(typename C::size_type n, typename C::allocator_type const& a = typename C::allocator_type ())
-{
-#if _LIBCPP_STD_VER > 11
- C c(n, a);
- assert(c.__invariants());
- assert(c.size() == n);
- assert(c.get_allocator() == a);
- assert(is_contiguous_container_asan_correct(c));
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == typename C::value_type());
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#endif
-}
-
-template <class C>
-void
-test1(typename C::size_type n)
-{
- C c(n);
- assert(c.__invariants());
- assert(c.size() == n);
- assert(c.get_allocator() == typename C::allocator_type());
- assert(is_contiguous_container_asan_correct(c));
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == typename C::value_type());
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
-
-template <class C>
-void
-test(typename C::size_type n)
-{
- test1<C> ( n );
- test2<C> ( n );
-}
-
-int main()
-{
- test<std::vector<int> >(50);
- test<std::vector<DefaultOnly> >(500);
- assert(DefaultOnly::count == 0);
-#if __cplusplus >= 201103L
- test<std::vector<int, min_allocator<int>> >(50);
- test<std::vector<DefaultOnly, min_allocator<DefaultOnly>> >(500);
- test2<std::vector<DefaultOnly, test_allocator<DefaultOnly>> >( 100, test_allocator<DefaultOnly>(23));
- assert(DefaultOnly::count == 0);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp
deleted file mode 100644
index 5b6c4985704..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(size_type n, const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C>
-void
-test(typename C::size_type n, const typename C::value_type& x)
-{
- C c(n, x);
- assert(c.__invariants());
- assert(c.size() == n);
- assert(is_contiguous_container_asan_correct(c));
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == x);
-}
-
-int main()
-{
- test<std::vector<int> >(50, 3);
- test<std::vector<int, stack_allocator<int, 50> > >(50, 5);
-#if __cplusplus >= 201103L
- test<std::vector<int, min_allocator<int>> >(50, 3);
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp
deleted file mode 100644
index c62b84104ab..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(size_type n, const value_type& x, const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C>
-void
-test(typename C::size_type n, const typename C::value_type& x,
- const typename C::allocator_type& a)
-{
- C c(n, x, a);
- assert(c.__invariants());
- assert(a == c.get_allocator());
- assert(c.size() == n);
- assert(is_contiguous_container_asan_correct(c));
- for (typename C::const_iterator i = c.cbegin(), e = c.cend(); i != e; ++i)
- assert(*i == x);
-}
-
-int main()
-{
- test<std::vector<int> >(50, 3, std::allocator<int>());
-#if __cplusplus >= 201103L
- test<std::vector<int, min_allocator<int>> >(50, 3, min_allocator<int>());
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/copy.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/copy.pass.cpp
deleted file mode 100644
index 677963deeb8..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/copy.pass.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(const vector& v);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C>
-void
-test(const C& x)
-{
- unsigned s = x.size();
- C c(x);
- assert(c.__invariants());
- assert(c.size() == s);
- assert(c == x);
- assert(is_contiguous_container_asan_correct(c));
-}
-
-int main()
-{
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<int>(a, an));
- }
- {
- std::vector<int, test_allocator<int> > v(3, 2, test_allocator<int>(5));
- std::vector<int, test_allocator<int> > v2 = v;
- assert(is_contiguous_container_asan_correct(v));
- assert(is_contiguous_container_asan_correct(v2));
- assert(v2 == v);
- assert(v2.get_allocator() == v.get_allocator());
- assert(is_contiguous_container_asan_correct(v));
- assert(is_contiguous_container_asan_correct(v2));
- }
-#ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
- {
- std::vector<int, other_allocator<int> > v(3, 2, other_allocator<int>(5));
- std::vector<int, other_allocator<int> > v2 = v;
- assert(is_contiguous_container_asan_correct(v));
- assert(is_contiguous_container_asan_correct(v2));
- assert(v2 == v);
- assert(v2.get_allocator() == other_allocator<int>(-2));
- assert(is_contiguous_container_asan_correct(v));
- assert(is_contiguous_container_asan_correct(v2));
- }
-#endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE
-#if __cplusplus >= 201103L
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<int, min_allocator<int>>(a, an));
- }
- {
- std::vector<int, min_allocator<int> > v(3, 2, min_allocator<int>());
- std::vector<int, min_allocator<int> > v2 = v;
- assert(is_contiguous_container_asan_correct(v));
- assert(is_contiguous_container_asan_correct(v2));
- assert(v2 == v);
- assert(v2.get_allocator() == v.get_allocator());
- assert(is_contiguous_container_asan_correct(v));
- assert(is_contiguous_container_asan_correct(v2));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp
deleted file mode 100644
index 128328c2a7d..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(const vector& v, const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-template <class C>
-void
-test(const C& x, const typename C::allocator_type& a)
-{
- unsigned s = x.size();
- C c(x, a);
- assert(c.__invariants());
- assert(c.size() == s);
- assert(c == x);
- assert(is_contiguous_container_asan_correct(c));
-}
-
-int main()
-{
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<int>(a, an), std::allocator<int>());
- }
- {
- std::vector<int, test_allocator<int> > l(3, 2, test_allocator<int>(5));
- std::vector<int, test_allocator<int> > l2(l, test_allocator<int>(3));
- assert(l2 == l);
- assert(l2.get_allocator() == test_allocator<int>(3));
- }
- {
- std::vector<int, other_allocator<int> > l(3, 2, other_allocator<int>(5));
- std::vector<int, other_allocator<int> > l2(l, other_allocator<int>(3));
- assert(l2 == l);
- assert(l2.get_allocator() == other_allocator<int>(3));
- }
-#if __cplusplus >= 201103L
- {
- int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 1, 0};
- int* an = a + sizeof(a)/sizeof(a[0]);
- test(std::vector<int, min_allocator<int>>(a, an), min_allocator<int>());
- }
- {
- std::vector<int, min_allocator<int> > l(3, 2, min_allocator<int>());
- std::vector<int, min_allocator<int> > l2(l, min_allocator<int>());
- assert(l2 == l);
- assert(l2.get_allocator() == min_allocator<int>());
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp
deleted file mode 100644
index 1a4a1898cc6..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-// class vector
-// vector();
-
-#include <vector>
-
-struct X
-{
- std::vector<X> q;
-};
-
-int main()
-{
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/default_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/default_noexcept.pass.cpp
deleted file mode 100644
index 3fc33b68d39..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/default_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector()
-// noexcept(is_nothrow_default_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<MoveOnly> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_default_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
deleted file mode 100644
index 0d73e9ef4d4..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// ~vector() // implied noexcept;
-
-#include <vector>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-#if __has_feature(cxx_noexcept)
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
- ~some_alloc() noexcept(false);
-};
-
-#endif
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<MoveOnly> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_destructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_destructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/initializer_list.pass.cpp
deleted file mode 100644
index 7eb834ff387..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/initializer_list.pass.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<int> d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/initializer_list_alloc.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/initializer_list_alloc.pass.cpp
deleted file mode 100644
index 5d7ae884e38..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/initializer_list_alloc.pass.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(initializer_list<value_type> il, const Allocator& a = allocator_type());
-
-#include <vector>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<int, test_allocator<int>> d({3, 4, 5, 6}, test_allocator<int>(3));
- assert(d.get_allocator() == test_allocator<int>(3));
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> d({3, 4, 5, 6}, min_allocator<int>());
- assert(d.get_allocator() == min_allocator<int>());
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/move.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/move.pass.cpp
deleted file mode 100644
index bb61d54948b..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/move.pass.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(vector&& c);
-
-#include <vector>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::vector<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, test_allocator<MoveOnly> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- std::vector<MoveOnly, other_allocator<MoveOnly> > l(other_allocator<MoveOnly>(5));
- std::vector<MoveOnly, other_allocator<MoveOnly> > lo(other_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, other_allocator<MoveOnly> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- std::vector<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- assert(is_contiguous_container_asan_correct(c1));
- std::vector<int>::const_iterator i = c1.begin();
- std::vector<int> c2 = std::move(c1);
- assert(is_contiguous_container_asan_correct(c2));
- std::vector<int>::iterator j = c2.erase(i);
- assert(*j == 3);
- assert(is_contiguous_container_asan_correct(c2));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
- std::vector<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, min_allocator<MoveOnly> > l2 = std::move(l);
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == lo.get_allocator());
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- std::vector<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- assert(is_contiguous_container_asan_correct(c1));
- std::vector<int, min_allocator<int>>::const_iterator i = c1.begin();
- std::vector<int, min_allocator<int>> c2 = std::move(c1);
- assert(is_contiguous_container_asan_correct(c2));
- std::vector<int, min_allocator<int>>::iterator j = c2.erase(i);
- assert(*j == 3);
- assert(is_contiguous_container_asan_correct(c2));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/move_alloc.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/move_alloc.pass.cpp
deleted file mode 100644
index 1923e68f75e..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/move_alloc.pass.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(vector&& c, const allocator_type& a);
-
-#include <vector>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::vector<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, test_allocator<MoveOnly> > l2(std::move(l), test_allocator<MoveOnly>(6));
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == test_allocator<MoveOnly>(6));
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- std::vector<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
- std::vector<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, test_allocator<MoveOnly> > l2(std::move(l), test_allocator<MoveOnly>(5));
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == test_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l2));
- }
- {
- std::vector<MoveOnly, other_allocator<MoveOnly> > l(other_allocator<MoveOnly>(5));
- std::vector<MoveOnly, other_allocator<MoveOnly> > lo(other_allocator<MoveOnly>(5));
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, other_allocator<MoveOnly> > l2(std::move(l), other_allocator<MoveOnly>(4));
- assert(l2 == lo);
- assert(!l.empty());
- assert(l2.get_allocator() == other_allocator<MoveOnly>(4));
- assert(is_contiguous_container_asan_correct(l2));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
- std::vector<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- for (int i = 1; i <= 3; ++i)
- {
- l.push_back(i);
- lo.push_back(i);
- }
- assert(is_contiguous_container_asan_correct(l));
- assert(is_contiguous_container_asan_correct(lo));
- std::vector<MoveOnly, min_allocator<MoveOnly> > l2(std::move(l), min_allocator<MoveOnly>());
- assert(l2 == lo);
- assert(l.empty());
- assert(l2.get_allocator() == min_allocator<MoveOnly>());
- assert(is_contiguous_container_asan_correct(l2));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp
deleted file mode 100644
index 158370f4e1a..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(vector&& c)
-// noexcept(
-// allocator_type::propagate_on_container_move_assignment::value &&
-// is_nothrow_move_assignable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<MoveOnly> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_assignable<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/move_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/move_noexcept.pass.cpp
deleted file mode 100644
index a2e36ccdf08..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/move_noexcept.pass.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector(vector&&)
-// noexcept(is_nothrow_move_constructible<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<MoveOnly> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, other_allocator<MoveOnly>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C;
- static_assert(!std::is_nothrow_move_constructible<C>::value, "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/op_equal_initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/op_equal_initializer_list.pass.cpp
deleted file mode 100644
index 592b7146276..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.cons/op_equal_initializer_list.pass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// vector& operator=(initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<int> d;
- d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> d;
- d = {3, 4, 5, 6};
- assert(d.size() == 4);
- assert(is_contiguous_container_asan_correct(d));
- assert(d[0] == 3);
- assert(d[1] == 4);
- assert(d[2] == 5);
- assert(d[3] == 6);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.data/data.pass.cpp b/libcxx/test/containers/sequences/vector/vector.data/data.pass.cpp
deleted file mode 100644
index aed56bc0931..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.data/data.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// pointer data();
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v;
- assert(v.data() == 0);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int> v(100);
- assert(v.data() == &v.front());
- assert(is_contiguous_container_asan_correct(v));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v;
- assert(v.data() == 0);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, min_allocator<int>> v(100);
- assert(v.data() == &v.front());
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.data/data_const.pass.cpp b/libcxx/test/containers/sequences/vector/vector.data/data_const.pass.cpp
deleted file mode 100644
index cb6062694e4..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.data/data_const.pass.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// const_pointer data() const;
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- const std::vector<int> v;
- assert(v.data() == 0);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- const std::vector<int> v(100);
- assert(v.data() == &v.front());
- assert(is_contiguous_container_asan_correct(v));
- }
-#if __cplusplus >= 201103L
- {
- const std::vector<int, min_allocator<int>> v;
- assert(v.data() == 0);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- const std::vector<int, min_allocator<int>> v(100);
- assert(v.data() == &v.front());
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/emplace.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/emplace.pass.cpp
deleted file mode 100644
index 8af6bdacd0a..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/emplace.pass.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class... Args> iterator emplace(const_iterator pos, Args&&... args);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-class A
-{
- int i_;
- double d_;
-
- A(const A&);
- A& operator=(const A&);
-public:
- A(int i, double d)
- : i_(i), d_(d) {}
-
- A(A&& a)
- : i_(a.i_),
- d_(a.d_)
- {
- a.i_ = 0;
- a.d_ = 0;
- }
-
- A& operator=(A&& a)
- {
- i_ = a.i_;
- d_ = a.d_;
- a.i_ = 0;
- a.d_ = 0;
- return *this;
- }
-
- int geti() const {return i_;}
- double getd() const {return d_;}
-};
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<A> c;
- std::vector<A>::iterator i = c.emplace(c.cbegin(), 2, 3.5);
- assert(i == c.begin());
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(is_contiguous_container_asan_correct(c));
- i = c.emplace(c.cend(), 3, 4.5);
- assert(i == c.end()-1);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- i = c.emplace(c.cbegin()+1, 4, 6.5);
- assert(i == c.begin()+1);
- assert(c.size() == 3);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c[1].geti() == 4);
- assert(c[1].getd() == 6.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- }
- {
- std::vector<A, stack_allocator<A, 7> > c;
- std::vector<A, stack_allocator<A, 7> >::iterator i = c.emplace(c.cbegin(), 2, 3.5);
- assert(i == c.begin());
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(is_contiguous_container_asan_correct(c));
- i = c.emplace(c.cend(), 3, 4.5);
- assert(i == c.end()-1);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- i = c.emplace(c.cbegin()+1, 4, 6.5);
- assert(i == c.begin()+1);
- assert(c.size() == 3);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c[1].geti() == 4);
- assert(c[1].getd() == 6.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<A> c1;
- std::vector<A> c2;
- std::vector<A>::iterator i = c1.emplace(c2.cbegin(), 2, 3.5);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::vector<A, min_allocator<A>> c;
- std::vector<A, min_allocator<A>>::iterator i = c.emplace(c.cbegin(), 2, 3.5);
- assert(i == c.begin());
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- i = c.emplace(c.cend(), 3, 4.5);
- assert(i == c.end()-1);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- i = c.emplace(c.cbegin()+1, 4, 6.5);
- assert(i == c.begin()+1);
- assert(c.size() == 3);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c[1].geti() == 4);
- assert(c[1].getd() == 6.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<A, min_allocator<A>> c1;
- std::vector<A, min_allocator<A>> c2;
- std::vector<A, min_allocator<A>>::iterator i = c1.emplace(c2.cbegin(), 2, 3.5);
- assert(false);
- }
-#endif
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp
deleted file mode 100644
index bbf91a4255d..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class... Args> void emplace_back(Args&&... args);
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-class A
-{
- int i_;
- double d_;
-
- A(const A&);
- A& operator=(const A&);
-public:
- A(int i, double d)
- : i_(i), d_(d) {}
-
- A(A&& a)
- : i_(a.i_),
- d_(a.d_)
- {
- a.i_ = 0;
- a.d_ = 0;
- }
-
- A& operator=(A&& a)
- {
- i_ = a.i_;
- d_ = a.d_;
- a.i_ = 0;
- a.d_ = 0;
- return *this;
- }
-
- int geti() const {return i_;}
- double getd() const {return d_;}
-};
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<A> c;
- c.emplace_back(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(is_contiguous_container_asan_correct(c));
- c.emplace_back(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- }
- {
- std::vector<A, stack_allocator<A, 4> > c;
- c.emplace_back(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(is_contiguous_container_asan_correct(c));
- c.emplace_back(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<A, min_allocator<A>> c;
- c.emplace_back(2, 3.5);
- assert(c.size() == 1);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(is_contiguous_container_asan_correct(c));
- c.emplace_back(3, 4.5);
- assert(c.size() == 2);
- assert(c.front().geti() == 2);
- assert(c.front().getd() == 3.5);
- assert(c.back().geti() == 3);
- assert(c.back().getd() == 4.5);
- assert(is_contiguous_container_asan_correct(c));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/emplace_extra.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/emplace_extra.pass.cpp
deleted file mode 100644
index 85a47073bcb..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/emplace_extra.pass.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class... Args> iterator emplace(const_iterator pos, Args&&... args);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<int> v;
- v.reserve(3);
- assert(is_contiguous_container_asan_correct(v));
- v = { 1, 2, 3 };
- v.emplace(v.begin(), v.back());
- assert(v[0] == 3);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int> v;
- v.reserve(4);
- assert(is_contiguous_container_asan_correct(v));
- v = { 1, 2, 3 };
- v.emplace(v.begin(), v.back());
- assert(v[0] == 3);
- assert(is_contiguous_container_asan_correct(v));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v;
- v.reserve(3);
- assert(is_contiguous_container_asan_correct(v));
- v = { 1, 2, 3 };
- v.emplace(v.begin(), v.back());
- assert(v[0] == 3);
- assert(is_contiguous_container_asan_correct(v));
- }
- {
- std::vector<int, min_allocator<int>> v;
- v.reserve(4);
- assert(is_contiguous_container_asan_correct(v));
- v = { 1, 2, 3 };
- v.emplace(v.begin(), v.back());
- assert(v[0] == 3);
- assert(is_contiguous_container_asan_correct(v));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter.pass.cpp
deleted file mode 100644
index 7a850edda27..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter.pass.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator erase(const_iterator position);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int>::const_iterator i = l1.begin();
- assert(is_contiguous_container_asan_correct(l1));
- ++i;
- std::vector<int>::iterator j = l1.erase(i);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(*j == 3);
- assert(*l1.begin() == 1);
- assert(*next(l1.begin()) == 3);
- assert(is_contiguous_container_asan_correct(l1));
- j = l1.erase(j);
- assert(j == l1.end());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(*l1.begin() == 1);
- assert(is_contiguous_container_asan_correct(l1));
- j = l1.erase(l1.begin());
- assert(j == l1.end());
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- assert(is_contiguous_container_asan_correct(l1));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>>::const_iterator i = l1.begin();
- assert(is_contiguous_container_asan_correct(l1));
- ++i;
- std::vector<int, min_allocator<int>>::iterator j = l1.erase(i);
- assert(l1.size() == 2);
- assert(distance(l1.begin(), l1.end()) == 2);
- assert(*j == 3);
- assert(*l1.begin() == 1);
- assert(*next(l1.begin()) == 3);
- assert(is_contiguous_container_asan_correct(l1));
- j = l1.erase(j);
- assert(j == l1.end());
- assert(l1.size() == 1);
- assert(distance(l1.begin(), l1.end()) == 1);
- assert(*l1.begin() == 1);
- assert(is_contiguous_container_asan_correct(l1));
- j = l1.erase(l1.begin());
- assert(j == l1.end());
- assert(l1.size() == 0);
- assert(distance(l1.begin(), l1.end()) == 0);
- assert(is_contiguous_container_asan_correct(l1));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db1.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db1.pass.cpp
deleted file mode 100644
index 0478d24c79f..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db1.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call erase(const_iterator position) with end()
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <cstdlib>
-#include <exception>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int>::const_iterator i = l1.end();
- l1.erase(i);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>>::const_iterator i = l1.end();
- l1.erase(i);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db2.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db2.pass.cpp
deleted file mode 100644
index c394f197402..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_db2.pass.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call erase(const_iterator position) with iterator from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <cstdlib>
-#include <exception>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int> l2(a1, a1+3);
- std::vector<int>::const_iterator i = l2.begin();
- l1.erase(i);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>> l2(a1, a1+3);
- std::vector<int, min_allocator<int>>::const_iterator i = l2.begin();
- l1.erase(i);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter.pass.cpp
deleted file mode 100644
index bfc18bc4864..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter.pass.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator erase(const_iterator first, const_iterator last);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- int a1[] = {1, 2, 3};
- {
- std::vector<int> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int>::iterator i = l1.erase(l1.cbegin(), l1.cbegin());
- assert(l1.size() == 3);
- assert(distance(l1.cbegin(), l1.cend()) == 3);
- assert(i == l1.begin());
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<int> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin()));
- assert(l1.size() == 2);
- assert(distance(l1.cbegin(), l1.cend()) == 2);
- assert(i == l1.begin());
- assert(l1 == std::vector<int>(a1+1, a1+3));
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<int> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.cbegin(), l1.cend()) == 1);
- assert(i == l1.begin());
- assert(l1 == std::vector<int>(a1+2, a1+3));
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<int> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3));
- assert(l1.size() == 0);
- assert(distance(l1.cbegin(), l1.cend()) == 0);
- assert(i == l1.begin());
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<std::vector<int> > outer(2, std::vector<int>(1));
- assert(is_contiguous_container_asan_correct(outer));
- assert(is_contiguous_container_asan_correct(outer[0]));
- assert(is_contiguous_container_asan_correct(outer[1]));
- outer.erase(outer.begin(), outer.begin());
- assert(outer.size() == 2);
- assert(outer[0].size() == 1);
- assert(outer[1].size() == 1);
- assert(is_contiguous_container_asan_correct(outer));
- assert(is_contiguous_container_asan_correct(outer[0]));
- assert(is_contiguous_container_asan_correct(outer[1]));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), l1.cbegin());
- assert(l1.size() == 3);
- assert(distance(l1.cbegin(), l1.cend()) == 3);
- assert(i == l1.begin());
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin()));
- assert(l1.size() == 2);
- assert(distance(l1.cbegin(), l1.cend()) == 2);
- assert(i == l1.begin());
- assert((l1 == std::vector<int, min_allocator<int>>(a1+1, a1+3)));
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2));
- assert(l1.size() == 1);
- assert(distance(l1.cbegin(), l1.cend()) == 1);
- assert(i == l1.begin());
- assert((l1 == std::vector<int, min_allocator<int>>(a1+2, a1+3)));
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- assert(is_contiguous_container_asan_correct(l1));
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3));
- assert(l1.size() == 0);
- assert(distance(l1.cbegin(), l1.cend()) == 0);
- assert(i == l1.begin());
- assert(is_contiguous_container_asan_correct(l1));
- }
- {
- std::vector<std::vector<int, min_allocator<int>>, min_allocator<std::vector<int, min_allocator<int>>>> outer(2, std::vector<int, min_allocator<int>>(1));
- assert(is_contiguous_container_asan_correct(outer));
- assert(is_contiguous_container_asan_correct(outer[0]));
- assert(is_contiguous_container_asan_correct(outer[1]));
- outer.erase(outer.begin(), outer.begin());
- assert(outer.size() == 2);
- assert(outer[0].size() == 1);
- assert(outer[1].size() == 1);
- assert(is_contiguous_container_asan_correct(outer));
- assert(is_contiguous_container_asan_correct(outer[0]));
- assert(is_contiguous_container_asan_correct(outer[1]));
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db1.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db1.pass.cpp
deleted file mode 100644
index af6d0f75789..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db1.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call erase(const_iterator first, const_iterator last); with first iterator from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int> l2(a1, a1+3);
- std::vector<int>::iterator i = l1.erase(l2.cbegin(), l1.cbegin()+1);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>> l2(a1, a1+3);
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l2.cbegin(), l1.cbegin()+1);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db2.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db2.pass.cpp
deleted file mode 100644
index eee2c66c5c8..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db2.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call erase(const_iterator first, const_iterator last); with second iterator from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int> l2(a1, a1+3);
- std::vector<int>::iterator i = l1.erase(l1.cbegin(), l2.cbegin()+1);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>> l2(a1, a1+3);
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin(), l2.cbegin()+1);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db3.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db3.pass.cpp
deleted file mode 100644
index 505067d05a1..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db3.pass.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call erase(const_iterator first, const_iterator last); with both iterators from another container
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int> l2(a1, a1+3);
- std::vector<int>::iterator i = l1.erase(l2.cbegin(), l2.cbegin()+1);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>> l2(a1, a1+3);
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l2.cbegin(), l2.cbegin()+1);
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db4.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db4.pass.cpp
deleted file mode 100644
index c7e4131cb49..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/erase_iter_iter_db4.pass.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// Call erase(const_iterator first, const_iterator last); with a bad range
-
-#if _LIBCPP_DEBUG >= 1
-
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-
-#include <vector>
-#include <cassert>
-#include <exception>
-#include <cstdlib>
-
-#include "min_allocator.h"
-
-int main()
-{
- {
- int a1[] = {1, 2, 3};
- std::vector<int> l1(a1, a1+3);
- std::vector<int>::iterator i = l1.erase(l1.cbegin()+1, l1.cbegin());
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 2, 3};
- std::vector<int, min_allocator<int>> l1(a1, a1+3);
- std::vector<int, min_allocator<int>>::iterator i = l1.erase(l1.cbegin()+1, l1.cbegin());
- assert(false);
- }
-#endif
-}
-
-#else
-
-int main()
-{
-}
-
-#endif
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp
deleted file mode 100644
index 30b80178801..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator insert(const_iterator p, initializer_list<value_type> il);
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- {
- std::vector<int> d(10, 1);
- std::vector<int>::iterator i = d.insert(d.cbegin() + 2, {3, 4, 5, 6});
- assert(d.size() == 14);
- assert(is_contiguous_container_asan_correct(d));
- assert(i == d.begin() + 2);
- assert(d[0] == 1);
- assert(d[1] == 1);
- assert(d[2] == 3);
- assert(d[3] == 4);
- assert(d[4] == 5);
- assert(d[5] == 6);
- assert(d[6] == 1);
- assert(d[7] == 1);
- assert(d[8] == 1);
- assert(d[9] == 1);
- assert(d[10] == 1);
- assert(d[11] == 1);
- assert(d[12] == 1);
- assert(d[13] == 1);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> d(10, 1);
- std::vector<int, min_allocator<int>>::iterator i = d.insert(d.cbegin() + 2, {3, 4, 5, 6});
- assert(d.size() == 14);
- assert(is_contiguous_container_asan_correct(d));
- assert(i == d.begin() + 2);
- assert(d[0] == 1);
- assert(d[1] == 1);
- assert(d[2] == 3);
- assert(d[3] == 4);
- assert(d[4] == 5);
- assert(d[5] == 6);
- assert(d[6] == 1);
- assert(d[7] == 1);
- assert(d[8] == 1);
- assert(d[9] == 1);
- assert(d[10] == 1);
- assert(d[11] == 1);
- assert(d[12] == 1);
- assert(d[13] == 1);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
deleted file mode 100644
index 782437be87f..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class Iter>
-// iterator insert(const_iterator position, Iter first, Iter last);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "test_iterators.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(v.size() == 100 + N);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
- forward_iterator<const int*>(a+N));
- assert(v.size() == 100 + N);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- while(v.size() < v.capacity()) v.push_back(0); // force reallocation
- size_t sz = v.size();
- int a[] = {1, 2, 3, 4, 5};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
- forward_iterator<const int*>(a+N));
- assert(v.size() == sz + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- v.reserve(128); // force no reallocation
- size_t sz = v.size();
- int a[] = {1, 2, 3, 4, 5};
- const unsigned N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
- forward_iterator<const int*>(a+N));
- assert(v.size() == sz + N);
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int, stack_allocator<int, 308> > v(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(v.size() == 100 + N);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int, stack_allocator<int, 300> > v(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
- forward_iterator<const int*>(a+N));
- assert(v.size() == 100 + N);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int> v(100);
- std::vector<int> v2(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int>::iterator i = v.insert(v2.cbegin() + 10, input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(v.size() == 100 + N);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int, min_allocator<int>> v(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const int*>(a),
- forward_iterator<const int*>(a+N));
- assert(v.size() == 100 + N);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (int k = 0; k < N; ++j, ++k)
- assert(v[j] == a[k]);
- for (; j < 105; ++j)
- assert(v[j] == 0);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int, min_allocator<int>> v(100);
- std::vector<int, min_allocator<int>> v2(100);
- int a[] = {1, 2, 3, 4, 5};
- const int N = sizeof(a)/sizeof(a[0]);
- std::vector<int, min_allocator<int>>::iterator i = v.insert(v2.cbegin() + 10, input_iterator<const int*>(a),
- input_iterator<const int*>(a+N));
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.pass.cpp
deleted file mode 100644
index cf3715ccb6f..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.pass.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator insert(const_iterator position, value_type&& x);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "../../../MoveOnly.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<MoveOnly> v(100);
- std::vector<MoveOnly>::iterator i = v.insert(v.cbegin() + 10, MoveOnly(3));
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == MoveOnly());
- assert(v[j] == MoveOnly(3));
- for (++j; j < 101; ++j)
- assert(v[j] == MoveOnly());
- }
- {
- std::vector<MoveOnly, stack_allocator<MoveOnly, 300> > v(100);
- std::vector<MoveOnly, stack_allocator<MoveOnly, 300> >::iterator i = v.insert(v.cbegin() + 10, MoveOnly(3));
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == MoveOnly());
- assert(v[j] == MoveOnly(3));
- for (++j; j < 101; ++j)
- assert(v[j] == MoveOnly());
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int> v1(3);
- std::vector<int> v2(3);
- v1.insert(v2.begin(), 4);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::vector<MoveOnly, min_allocator<MoveOnly>> v(100);
- std::vector<MoveOnly, min_allocator<MoveOnly>>::iterator i = v.insert(v.cbegin() + 10, MoveOnly(3));
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == MoveOnly());
- assert(v[j] == MoveOnly(3));
- for (++j; j < 101; ++j)
- assert(v[j] == MoveOnly());
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int, min_allocator<int>> v1(3);
- std::vector<int, min_allocator<int>> v2(3);
- v1.insert(v2.begin(), 4);
- assert(false);
- }
-#endif
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_size_value.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_size_value.pass.cpp
deleted file mode 100644
index 6997284f258..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_size_value.pass.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator insert(const_iterator position, size_type n, const value_type& x);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v(100);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == 105);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- while(v.size() < v.capacity()) v.push_back(0); // force reallocation
- size_t sz = v.size();
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == sz + 5);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- v.reserve(128); // force no reallocation
- size_t sz = v.size();
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == sz + 5);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int, stack_allocator<int, 300> > v(100);
- std::vector<int, stack_allocator<int, 300> >::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == 105);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < 105; ++j)
- assert(v[j] == 0);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int> c1(100);
- std::vector<int> c2;
- std::vector<int>::iterator i = c1.insert(c2.cbegin() + 10, 5, 1);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v(100);
- std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == 105);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < 105; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int, min_allocator<int>> v(100);
- std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, 5, 1);
- assert(v.size() == 105);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- for (; j < 15; ++j)
- assert(v[j] == 1);
- for (++j; j < 105; ++j)
- assert(v[j] == 0);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int, min_allocator<int>> c1(100);
- std::vector<int, min_allocator<int>> c2;
- std::vector<int, min_allocator<int>>::iterator i = c1.insert(c2.cbegin() + 10, 5, 1);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_value.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_value.pass.cpp
deleted file mode 100644
index 782e752157a..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_value.pass.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// iterator insert(const_iterator position, const value_type& x);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> v(100);
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < 101; ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- while(v.size() < v.capacity()) v.push_back(0); // force reallocation
- size_t sz = v.size();
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == sz + 1);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int> v(100);
- while(v.size() < v.capacity()) v.push_back(0);
- v.pop_back(); v.pop_back(); // force no reallocation
- size_t sz = v.size();
- std::vector<int>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == sz + 1);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < v.size(); ++j)
- assert(v[j] == 0);
- }
- {
- std::vector<int, stack_allocator<int, 300> > v(100);
- std::vector<int, stack_allocator<int, 300> >::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < 101; ++j)
- assert(v[j] == 0);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int> v1(3);
- std::vector<int> v2(3);
- int i = 4;
- v1.insert(v2.begin(), i);
- assert(false);
- }
-#endif
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> v(100);
- std::vector<int, min_allocator<int>>::iterator i = v.insert(v.cbegin() + 10, 1);
- assert(v.size() == 101);
- assert(is_contiguous_container_asan_correct(v));
- assert(i == v.begin() + 10);
- int j;
- for (j = 0; j < 10; ++j)
- assert(v[j] == 0);
- assert(v[j] == 1);
- for (++j; j < 101; ++j)
- assert(v[j] == 0);
- }
-#if _LIBCPP_DEBUG >= 1
- {
- std::vector<int, min_allocator<int>> v1(3);
- std::vector<int, min_allocator<int>> v2(3);
- int i = 4;
- v1.insert(v2.begin(), i);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/pop_back.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/pop_back.pass.cpp
deleted file mode 100644
index 62fa60103ba..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/pop_back.pass.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void pop_back();
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-
-#if _LIBCPP_DEBUG >= 1
-#include <cstdlib>
-#include <exception>
-
-#endif
-
-int main()
-{
- {
- std::vector<int> c;
- c.push_back(1);
- assert(c.size() == 1);
- c.pop_back();
- assert(c.size() == 0);
-#if _LIBCPP_DEBUG >= 1
- c.pop_back();
- assert(false);
-#endif
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> c;
- c.push_back(1);
- assert(c.size() == 1);
- c.pop_back();
- assert(c.size() == 0);
-#if _LIBCPP_DEBUG >= 1
- c.pop_back();
- assert(false);
-#endif
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/push_back.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/push_back.pass.cpp
deleted file mode 100644
index eeeba6242d9..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/push_back.pass.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void push_back(const value_type& x);
-
-#include <vector>
-#include <cassert>
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- std::vector<int> c;
- c.push_back(0);
- assert(c.size() == 1);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(1);
- assert(c.size() == 2);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(2);
- assert(c.size() == 3);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(3);
- assert(c.size() == 4);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(4);
- assert(c.size() == 5);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- }
- {
- std::vector<int, stack_allocator<int, 15> > c;
- c.push_back(0);
- assert(c.size() == 1);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(1);
- assert(c.size() == 2);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(2);
- assert(c.size() == 3);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(3);
- assert(c.size() == 4);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(4);
- assert(c.size() == 5);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- }
-#if __cplusplus >= 201103L
- {
- std::vector<int, min_allocator<int>> c;
- c.push_back(0);
- assert(c.size() == 1);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(1);
- assert(c.size() == 2);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(2);
- assert(c.size() == 3);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(3);
- assert(c.size() == 4);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- c.push_back(4);
- assert(c.size() == 5);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == j);
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp
deleted file mode 100644
index 6615a25a620..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void push_back(const value_type& x);
-
-#include <vector>
-#include <cassert>
-
-#include "asan_testing.h"
-
-// Flag that makes the copy constructor for CMyClass throw an exception
-static bool gCopyConstructorShouldThow = false;
-
-
-class CMyClass {
- public: CMyClass(int tag);
- public: CMyClass(const CMyClass& iOther);
- public: ~CMyClass();
-
- bool equal(const CMyClass &rhs) const
- { return fTag == rhs.fTag && fMagicValue == rhs.fMagicValue; }
- private:
- int fMagicValue;
- int fTag;
-
- private: static int kStartedConstructionMagicValue;
- private: static int kFinishedConstructionMagicValue;
-};
-
-// Value for fMagicValue when the constructor has started running, but not yet finished
-int CMyClass::kStartedConstructionMagicValue = 0;
-// Value for fMagicValue when the constructor has finished running
-int CMyClass::kFinishedConstructionMagicValue = 12345;
-
-CMyClass::CMyClass(int tag) :
- fMagicValue(kStartedConstructionMagicValue), fTag(tag)
-{
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::CMyClass(const CMyClass& iOther) :
- fMagicValue(kStartedConstructionMagicValue), fTag(iOther.fTag)
-{
- // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
- if (gCopyConstructorShouldThow) {
- throw std::exception();
- }
- // Signal that the constructor has finished running
- fMagicValue = kFinishedConstructionMagicValue;
-}
-
-CMyClass::~CMyClass() {
- // Only instances for which the constructor has finished running should be destructed
- assert(fMagicValue == kFinishedConstructionMagicValue);
-}
-
-bool operator==(const CMyClass &lhs, const CMyClass &rhs) { return lhs.equal(rhs); }
-
-int main()
-{
- CMyClass instance(42);
- std::vector<CMyClass> vec;
-
- vec.push_back(instance);
- std::vector<CMyClass> vec2(vec);
- assert(is_contiguous_container_asan_correct(vec));
- assert(is_contiguous_container_asan_correct(vec2));
-
- gCopyConstructorShouldThow = true;
- try {
- vec.push_back(instance);
- }
- catch (...) {
- assert(vec==vec2);
- assert(is_contiguous_container_asan_correct(vec));
- }
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/push_back_rvalue.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/push_back_rvalue.pass.cpp
deleted file mode 100644
index be488931263..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/push_back_rvalue.pass.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void push_back(value_type&& x);
-
-#include <vector>
-#include <cassert>
-#include "../../../MoveOnly.h"
-#include "../../../stack_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- {
- std::vector<MoveOnly> c;
- c.push_back(MoveOnly(0));
- assert(c.size() == 1);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(1));
- assert(c.size() == 2);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(2));
- assert(c.size() == 3);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(3));
- assert(c.size() == 4);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(4));
- assert(c.size() == 5);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- }
- {
- std::vector<MoveOnly, stack_allocator<MoveOnly, 15> > c;
- c.push_back(MoveOnly(0));
- assert(c.size() == 1);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(1));
- assert(c.size() == 2);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(2));
- assert(c.size() == 3);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(3));
- assert(c.size() == 4);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(4));
- assert(c.size() == 5);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- }
-#if __cplusplus >= 201103L
- {
- std::vector<MoveOnly, min_allocator<MoveOnly>> c;
- c.push_back(MoveOnly(0));
- assert(c.size() == 1);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(1));
- assert(c.size() == 2);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(2));
- assert(c.size() == 3);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(3));
- assert(c.size() == 4);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- c.push_back(MoveOnly(4));
- assert(c.size() == 5);
- assert(is_contiguous_container_asan_correct(c));
- for (int j = 0; j < c.size(); ++j)
- assert(c[j] == MoveOnly(j));
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.special/db_swap_1.pass.cpp b/libcxx/test/containers/sequences/vector/vector.special/db_swap_1.pass.cpp
deleted file mode 100644
index e7f6a0011e1..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.special/db_swap_1.pass.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class T, class Alloc>
-// void swap(vector<T,Alloc>& x, vector<T,Alloc>& y);
-
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
-#include <vector>
-#include <cassert>
-
-#include "min_allocator.h"
-
-int main()
-{
-#if _LIBCPP_DEBUG >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::vector<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- std::vector<int>::iterator i1 = c1.begin();
- std::vector<int>::iterator i2 = c2.begin();
- swap(c1, c2);
- c1.erase(i2);
- c2.erase(i1);
- c1.erase(i1);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::vector<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- std::vector<int, min_allocator<int>>::iterator i1 = c1.begin();
- std::vector<int, min_allocator<int>>::iterator i2 = c2.begin();
- swap(c1, c2);
- c1.erase(i2);
- c2.erase(i1);
- c1.erase(i1);
- assert(false);
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.special/swap.pass.cpp b/libcxx/test/containers/sequences/vector/vector.special/swap.pass.cpp
deleted file mode 100644
index 27001aef744..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.special/swap.pass.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// template <class T, class Alloc>
-// void swap(vector<T,Alloc>& x, vector<T,Alloc>& y);
-
-#include <vector>
-#include <cassert>
-#include "test_allocator.h"
-#include "min_allocator.h"
-#include "asan_testing.h"
-
-int main()
-{
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::vector<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert(c1 == std::vector<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- assert(c2 == std::vector<int>(a1, a1+sizeof(a1)/sizeof(a1[0])));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int> c1(a1, a1);
- std::vector<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert(c1 == std::vector<int>(a2, a2+sizeof(a2)/sizeof(a2[0])));
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::vector<int> c2(a2, a2);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c2 == std::vector<int>(a1, a1+sizeof(a1)/sizeof(a1[0])));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int> c1(a1, a1);
- std::vector<int> c2(a2, a2);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
-#ifndef _LIBCPP_DEBUG_LEVEL
-// This test known to result in undefined behavior detected by _LIBCPP_DEBUG_LEVEL >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef test_allocator<int> A;
- std::vector<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::vector<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
- swap(c1, c2);
- assert((c1 == std::vector<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A(1));
- assert((c2 == std::vector<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(2));
- }
-#endif
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef other_allocator<int> A;
- std::vector<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::vector<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert((c1 == std::vector<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A(2));
- assert((c2 == std::vector<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(1));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::vector<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert((c1 == std::vector<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert((c2 == std::vector<int, min_allocator<int>>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int, min_allocator<int>> c1(a1, a1);
- std::vector<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert((c1 == std::vector<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::vector<int, min_allocator<int>> c2(a2, a2);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert((c2 == std::vector<int, min_allocator<int>>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::vector<int, min_allocator<int>> c1(a1, a1);
- std::vector<int, min_allocator<int>> c2(a2, a2);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert(c1.empty());
- assert(distance(c1.begin(), c1.end()) == 0);
- assert(c2.empty());
- assert(distance(c2.begin(), c2.end()) == 0);
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
-#ifndef _LIBCPP_DEBUG_LEVEL
-// This test known to result in undefined behavior detected by _LIBCPP_DEBUG_LEVEL >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- typedef min_allocator<int> A;
- std::vector<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A());
- std::vector<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A());
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- swap(c1, c2);
- assert((c1 == std::vector<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
- assert(c1.get_allocator() == A());
- assert((c2 == std::vector<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A());
- assert(is_contiguous_container_asan_correct(c1));
- assert(is_contiguous_container_asan_correct(c2));
- }
-#endif
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp b/libcxx/test/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp
deleted file mode 100644
index 996712a33aa..00000000000
--- a/libcxx/test/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-// void swap(vector& c)
-// noexcept(!allocator_type::propagate_on_container_swap::value ||
-// __is_nothrow_swappable<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <vector>
-#include <cassert>
-
-#include "../../../MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
- typedef T value_type;
-
- some_alloc() {}
- some_alloc(const some_alloc&);
- void deallocate(void*, unsigned) {}
-
- typedef std::true_type propagate_on_container_swap;
-};
-
-int main()
-{
-#if __has_feature(cxx_noexcept)
- {
- typedef std::vector<MoveOnly> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::vector<MoveOnly, other_allocator<MoveOnly>> C;
- C c1, c2;
- static_assert(noexcept(swap(c1, c2)), "");
- }
- {
- typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C;
- C c1, c2;
- static_assert(!noexcept(swap(c1, c2)), "");
- }
-#endif
-}
diff --git a/libcxx/test/containers/sequences/vector/version.pass.cpp b/libcxx/test/containers/sequences/vector/version.pass.cpp
deleted file mode 100644
index 2c4fa1263de..00000000000
--- a/libcxx/test/containers/sequences/vector/version.pass.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <vector>
-
-#include <vector>
-
-#ifndef _LIBCPP_VERSION
-#error _LIBCPP_VERSION not defined
-#endif
-
-int main()
-{
-}
OpenPOWER on IntegriCloud