[libcxx-commits] [libcxx] r369481 - libcxx: Rename .hpp files in libcxx/test/support to .h

Nico Weber via libcxx-commits libcxx-commits at lists.llvm.org
Tue Aug 20 17:14:14 PDT 2019


Author: nico
Date: Tue Aug 20 17:14:12 2019
New Revision: 369481

URL: http://llvm.org/viewvc/llvm-project?rev=369481&view=rev
Log:
libcxx: Rename .hpp files in libcxx/test/support to .h

LLVM uses .h as its extension for header files.

Files renamed using:

    for f in libcxx/test/support/*.hpp; do git mv $f ${f%.hpp}.h; done

References to the files updated using:

    for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
        a=$(basename $f);
        echo $a;
        rg -l $a libcxx | xargs sed -i '' "s/$a/${a%.hpp}.h/";
    done

HPP include guards updated manually using:

    for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
      echo ${f%.hpp}.h ;
    done | xargs mvim

Differential Revision: https://reviews.llvm.org/D66104

Added:
    libcxx/trunk/test/support/archetypes.h
    libcxx/trunk/test/support/constexpr_char_traits.h
    libcxx/trunk/test/support/container_debug_tests.h
    libcxx/trunk/test/support/controlled_allocators.h
    libcxx/trunk/test/support/count_new.h
    libcxx/trunk/test/support/counting_predicates.h
    libcxx/trunk/test/support/filesystem_include.h
    libcxx/trunk/test/support/filesystem_test_helper.h
    libcxx/trunk/test/support/format_string.h
    libcxx/trunk/test/support/msvc_stdlib_force_include.h
    libcxx/trunk/test/support/nasty_containers.h
    libcxx/trunk/test/support/nasty_macros.h
    libcxx/trunk/test/support/poisoned_hash_helper.h
    libcxx/trunk/test/support/private_constructor.h
    libcxx/trunk/test/support/rapid-cxx-test.h
    libcxx/trunk/test/support/test_convertible.h
    libcxx/trunk/test/support/test_memory_resource.h
    libcxx/trunk/test/support/user_defined_integral.h
    libcxx/trunk/test/support/uses_alloc_types.h
    libcxx/trunk/test/support/variant_test_helpers.h
Removed:
    libcxx/trunk/test/support/archetypes.hpp
    libcxx/trunk/test/support/constexpr_char_traits.hpp
    libcxx/trunk/test/support/container_debug_tests.hpp
    libcxx/trunk/test/support/controlled_allocators.hpp
    libcxx/trunk/test/support/count_new.hpp
    libcxx/trunk/test/support/counting_predicates.hpp
    libcxx/trunk/test/support/filesystem_include.hpp
    libcxx/trunk/test/support/filesystem_test_helper.hpp
    libcxx/trunk/test/support/format_string.hpp
    libcxx/trunk/test/support/msvc_stdlib_force_include.hpp
    libcxx/trunk/test/support/nasty_containers.hpp
    libcxx/trunk/test/support/nasty_macros.hpp
    libcxx/trunk/test/support/poisoned_hash_helper.hpp
    libcxx/trunk/test/support/private_constructor.hpp
    libcxx/trunk/test/support/rapid-cxx-test.hpp
    libcxx/trunk/test/support/test_convertible.hpp
    libcxx/trunk/test/support/test_memory_resource.hpp
    libcxx/trunk/test/support/user_defined_integral.hpp
    libcxx/trunk/test/support/uses_alloc_types.hpp
    libcxx/trunk/test/support/variant_test_helpers.hpp
Modified:
    libcxx/trunk/benchmarks/filesystem.bench.cpp
    libcxx/trunk/test/libcxx/algorithms/half_positive.pass.cpp
    libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp
    libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp
    libcxx/trunk/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp
    libcxx/trunk/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp
    libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp
    libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp
    libcxx/trunk/test/libcxx/debug/containers/db_string.pass.cpp
    libcxx/trunk/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp
    libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp
    libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/db_deallocate.pass.cpp
    libcxx/trunk/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp
    libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp
    libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp
    libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp
    libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp
    libcxx/trunk/test/libcxx/type_traits/convert_to_integral.pass.cpp
    libcxx/trunk/test/libcxx/utilities/optional/optional.object/triviality.abi.pass.cpp
    libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/disable_reduced_arity_initialization_extension.pass.cpp
    libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/enable_reduced_arity_initialization_extension.pass.cpp
    libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/assign_tuple_like.pass.cpp
    libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
    libcxx/trunk/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.access/index_key.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/count.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/count_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/find.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/lower_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/map/map.ops/upper_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/count.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/count_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/equal_range.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/equal_range_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/find.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/lower_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/multiset/upper_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/count.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/count_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/equal_range.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/equal_range_transparent.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/find.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/lower_bound.pass.cpp
    libcxx/trunk/test/std/containers/associative/set/upper_bound.pass.cpp
    libcxx/trunk/test/std/containers/map_allocator_requirement_test_templates.h
    libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
    libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
    libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
    libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
    libcxx/trunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp
    libcxx/trunk/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp
    libcxx/trunk/test/std/containers/set_allocator_requirement_test_templates.h
    libcxx/trunk/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp
    libcxx/trunk/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp
    libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.fail.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops.fail.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.unicode_bug.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.path/synop.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
    libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/container.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/post.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/pre.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op_astrk/test.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.inserter/test.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/container.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/post.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/pre.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/lv_value.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op_astrk/test.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.inserter/test.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/test.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/post.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/pre.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/lv_value.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op_astrk/test.pass.cpp
    libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/inserter/test.pass.cpp
    libcxx/trunk/test/std/language.support/support.dynamic/destroying_delete_t_declaration.pass.cpp
    libcxx/trunk/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp
    libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp
    libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/assign.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/copy.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/default.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.cons/string.pass.cpp
    libcxx/trunk/test/std/localization/locales/locale/locale.members/combine.pass.cpp
    libcxx/trunk/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
    libcxx/trunk/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
    libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp
    libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp
    libcxx/trunk/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp
    libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp
    libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp
    libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp
    libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp
    libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp
    libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.assign/value.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.cons/copy.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.cons/default.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
    libcxx/trunk/test/std/utilities/any/any.nonmembers/make_any.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp
    libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp
    libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/construct.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp
    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/const_optional_U.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/optional_U.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/empty_in_place_t_does_not_clobber.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/special_members.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.object/triviality.pass.cpp
    libcxx/trunk/test/std/utilities/optional/optional.specalg/swap.pass.cpp
    libcxx/trunk/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp
    libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp
    libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp
    libcxx/trunk/test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp
    libcxx/trunk/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/U_V.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_const_pair_U_V.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_first_const_second.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/special_member_generation_test.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.get/get_if_index.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.get/get_if_type.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.get/get_index.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.get/get_type.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.hash/hash.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.helpers/variant_alternative.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant_array.fail.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant_empty.fail.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant_reference.fail.cpp
    libcxx/trunk/test/std/utilities/variant/variant.variant/variant_void.fail.cpp
    libcxx/trunk/test/std/utilities/variant/variant.visit/visit.pass.cpp
    libcxx/trunk/test/support/test.support/test_convertible_header.pass.cpp
    libcxx/trunk/test/support/test.support/test_poisoned_hash_helper.pass.cpp
    libcxx/trunk/utils/libcxx/test/config.py

Modified: libcxx/trunk/benchmarks/filesystem.bench.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/benchmarks/filesystem.bench.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/benchmarks/filesystem.bench.cpp (original)
+++ libcxx/trunk/benchmarks/filesystem.bench.cpp Tue Aug 20 17:14:12 2019
@@ -1,7 +1,7 @@
 #include "benchmark/benchmark.h"
 #include "GenerateInput.hpp"
 #include "test_iterators.h"
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 static const size_t TestNumInputs = 1024;
 

Modified: libcxx/trunk/test/libcxx/algorithms/half_positive.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/algorithms/half_positive.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/algorithms/half_positive.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/algorithms/half_positive.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <type_traits>
 
 #include "test_macros.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 namespace {
 

Modified: libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 void test_default_does_not_allocate() {
   DisableAllocationGuard g;

Modified: libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 void test_default_does_not_allocate() {
   DisableAllocationGuard g;

Modified: libcxx/trunk/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <queue>
 
 #include "min_allocator.h"
-#include "rapid-cxx-test.hpp"
+#include "rapid-cxx-test.h"
 
 template <class Adaptor>
 struct ContainerAdaptor : public Adaptor {

Modified: libcxx/trunk/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <set>
 #include <utility>
 #include <cassert>
-#include "container_debug_tests.hpp"
+#include "container_debug_tests.h"
 #include "test_macros.h"
 #include "debug_mode_helper.h"
 

Modified: libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <list>
 #include <thread>
 #include <vector>
-#include "container_debug_tests.hpp"
+#include "container_debug_tests.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <list>
 #include <vector>
 #include <deque>
-#include "container_debug_tests.hpp"
+#include "container_debug_tests.h"
 #include "test_macros.h"
 #include "debug_mode_helper.h"
 

Modified: libcxx/trunk/test/libcxx/debug/containers/db_string.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/debug/containers/db_string.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/debug/containers/db_string.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/debug/containers/db_string.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <vector>
 
 #include "test_macros.h"
-#include "container_debug_tests.hpp"
+#include "container_debug_tests.h"
 #include "debug_mode_helper.h"
 
 using namespace IteratorDebugChecks;

Modified: libcxx/trunk/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <unordered_set>
 #include <utility>
 #include <cassert>
-#include "container_debug_tests.hpp"
+#include "container_debug_tests.h"
 #include "test_macros.h"
 #include "debug_mode_helper.h"
 

Modified: libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp Tue Aug 20 17:14:12 2019
@@ -45,7 +45,7 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/db_deallocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/db_deallocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/db_deallocate.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/db_deallocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@ int AssertCount = 0;
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@ int AssertCount = 0;
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp (original)
+++ libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp Tue Aug 20 17:14:12 2019
@@ -15,13 +15,13 @@
 // RUN: %build -I%libcxx_src_root/src/filesystem
 // RUN: %run
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 #include "filesystem_common.h"
 

Modified: libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,13 +16,13 @@
 // class path
 
 #define _LIBCPP_DEBUG 0
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <iterator>
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 #include "debug_mode_helper.h"
 
 int main(int, char**) {

Modified: libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp (original)
+++ libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // class path
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <iterator>
 
 

Modified: libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,14 +20,14 @@
 // * A character array, which points to a NTCTS after array-to-pointer decay.
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
 #include "min_allocator.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 using fs::__is_pathable;
 

Modified: libcxx/trunk/test/libcxx/type_traits/convert_to_integral.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/type_traits/convert_to_integral.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/type_traits/convert_to_integral.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/type_traits/convert_to_integral.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <cstdint>
 #include <cassert>
 
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/utilities/optional/optional.object/triviality.abi.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/utilities/optional/optional.object/triviality.abi.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/utilities/optional/optional.object/triviality.abi.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/utilities/optional/optional.object/triviality.abi.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/disable_reduced_arity_initialization_extension.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/disable_reduced_arity_initialization_extension.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/disable_reduced_arity_initialization_extension.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/disable_reduced_arity_initialization_extension.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <system_error>
 
 #include "test_macros.h"
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "MoveOnly.h"
 
 #if defined(_LIBCPP_ENABLE_TUPLE_IMPLICIT_REDUCED_ARITY_EXTENSION)

Modified: libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/enable_reduced_arity_initialization_extension.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/enable_reduced_arity_initialization_extension.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/enable_reduced_arity_initialization_extension.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/enable_reduced_arity_initialization_extension.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <system_error>
 
 #include "test_macros.h"
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "MoveOnly.h"
 
 

Modified: libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/assign_tuple_like.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/assign_tuple_like.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/assign_tuple_like.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/assign_tuple_like.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <memory>
 #include <cassert>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <type_traits>
 #include <utility>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 // #if TEST_STD_VER > 17
 // TEST_CONSTEXPR bool test_constexpr() {

Modified: libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 // #if TEST_STD_VER > 17
 // TEST_CONSTEXPR bool test_constexpr() {

Modified: libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 #if TEST_STD_VER > 17
 TEST_CONSTEXPR bool test_constexpr() {

Modified: libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <cassert>
 
 #include "test_iterators.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 struct gen_test
 {

Modified: libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 struct is_odd {
   TEST_CONSTEXPR bool operator()(const int &i) const { return i & 1; }

Modified: libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 TEST_CONSTEXPR bool equal2 ( int i ) { return i == 2; }
 

Modified: libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 #if TEST_STD_VER > 17
 TEST_CONSTEXPR bool test_constexpr() {

Modified: libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "user_defined_integral.hpp"
+#include "user_defined_integral.h"
 
 #if TEST_STD_VER > 17
 TEST_CONSTEXPR bool eq(int a, int b) { return a == b; }

Modified: libcxx/trunk/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 #if TEST_STD_VER > 17
 TEST_CONSTEXPR bool eq(int a, int b) { return a == b; }

Modified: libcxx/trunk/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 #include "test_iterators.h"
 
 struct indirect_less

Modified: libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp Tue Aug 20 17:14:12 2019
@@ -56,7 +56,7 @@ struct S {
 #endif  // TEST_STD_VER >= 11
 
 #include "test_iterators.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 std::mt19937 randomness;
 

Modified: libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 // #if TEST_STD_VER > 17
 // TEST_CONSTEXPR bool test_constexpr() {

Modified: libcxx/trunk/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp (original)
+++ libcxx/trunk/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 bool all_equal(int, int) { return false; } // everything is equal
 

Modified: libcxx/trunk/test/std/containers/associative/map/map.access/index_key.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.access/index_key.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.access/index_key.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.access/index_key.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,9 +16,9 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #if TEST_STD_VER >= 11
 #include "container_test_types.h"
 #endif

Modified: libcxx/trunk/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "MoveOnly.h"
 #include "min_allocator.h"
 #include "container_test_types.h"

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/count.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/count.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/count.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/count.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/count_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/count_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/count_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/count_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/equal_range_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/find.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/find.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/find.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/find.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/lower_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/lower_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/lower_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/lower_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/map/map.ops/upper_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/map/map.ops/upper_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/map/map.ops/upper_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/map/map.ops/upper_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "is_transparent.h"
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/containers/associative/multiset/count.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/count.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/count.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/count.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/multiset/count_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/count_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/count_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/count_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/multiset/equal_range.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/equal_range.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/equal_range.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/equal_range.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/multiset/equal_range_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/equal_range_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/equal_range_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/equal_range_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/multiset/find.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/find.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/find.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/find.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/multiset/lower_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/lower_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/lower_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/lower_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/multiset/upper_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/multiset/upper_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/multiset/upper_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/multiset/upper_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/set/count.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/count.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/count.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/count.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/set/count_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/count_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/count_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/count_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/set/equal_range.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/equal_range.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/equal_range.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/equal_range.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/set/equal_range_transparent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/equal_range_transparent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/equal_range_transparent.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/equal_range_transparent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <utility>
 
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 #include "test_macros.h"
 
 struct Comp {

Modified: libcxx/trunk/test/std/containers/associative/set/find.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/find.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/find.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/find.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/set/lower_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/lower_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/lower_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/lower_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/associative/set/upper_bound.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/associative/set/upper_bound.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/associative/set/upper_bound.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/associative/set/upper_bound.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "private_constructor.hpp"
+#include "private_constructor.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/containers/map_allocator_requirement_test_templates.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/map_allocator_requirement_test_templates.h?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/map_allocator_requirement_test_templates.h (original)
+++ libcxx/trunk/test/std/containers/map_allocator_requirement_test_templates.h Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "container_test_types.h"
 #include "assert_checkpoint.h"
 

Modified: libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 
 template <class L, class Predicate>

Modified: libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include "test_macros.h"
 #include "test_iterators.h"
 #include "min_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 template <class List>
 void test() {

Modified: libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "min_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 template <class List>

Modified: libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 template <class List>
 void test()

Modified: libcxx/trunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 bool even(int i)
 {

Modified: libcxx/trunk/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <vector>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 #include "test_macros.h"
 #include "min_allocator.h"
 

Modified: libcxx/trunk/test/std/containers/set_allocator_requirement_test_templates.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/set_allocator_requirement_test_templates.h?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/set_allocator_requirement_test_templates.h (original)
+++ libcxx/trunk/test/std/containers/set_allocator_requirement_test_templates.h Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "container_test_types.h"
 #include "assert_checkpoint.h"
 

Modified: libcxx/trunk/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include "test_macros.h"
 #include "MoveOnly.h"
 #include "min_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 #if TEST_STD_VER >= 11
 #include "container_test_types.h"

Modified: libcxx/trunk/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <system_error>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 namespace ex = std::experimental::pmr;
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
+#include "uses_alloc_types.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,9 +23,9 @@
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "test_memory_resource.h"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 #include "test_allocator.h"
 
 namespace ex = std::experimental::pmr;

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,9 +23,9 @@
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "test_memory_resource.h"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 #include "test_allocator.h"
 
 namespace ex = std::experimental::pmr;

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,9 +23,9 @@
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "test_memory_resource.h"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 #include "test_allocator.h"
 
 namespace ex = std::experimental::pmr;

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,9 +24,9 @@
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "test_memory_resource.h"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 #include "test_allocator.h"
 
 namespace ex = std::experimental::pmr;

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,9 +21,9 @@
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "test_memory_resource.h"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 #include "test_allocator.h"
 
 namespace ex = std::experimental::pmr;

Modified: libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <experimental/memory_resource>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <experimental/memory_resource>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -27,7 +27,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 namespace ex = std::experimental::pmr;
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <type_traits>
 #include <memory>
 #include <cassert>
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp Tue Aug 20 17:14:12 2019
@@ -28,7 +28,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp Tue Aug 20 17:14:12 2019
@@ -31,7 +31,7 @@
 #include <experimental/memory_resource>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 namespace ex = std::experimental::pmr;
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 namespace ex = std::experimental::pmr;
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -27,7 +27,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 using std::experimental::pmr::memory_resource;
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 #include <cstddef>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp (original)
+++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <experimental/memory_resource>
 #include <type_traits>
 #include <cassert>
-#include "test_memory_resource.hpp"
+#include "test_memory_resource.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // directory_entry(const directory_entry&) = default;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
-#include "test_convertible.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
+#include "test_convertible.h"
 
 TEST_SUITE(directory_entry_path_ctor_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,13 +17,13 @@
 // void assign(path const&);
 // void replace_filename(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 TEST_SUITE(directory_entry_ctor_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 //          directory_entry() noexcept = default;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 //          directory_entry() noexcept = default;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // directory_entry(directory_entry&&) noexcept = default;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
-#include "test_convertible.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
+#include "test_convertible.h"
 
 TEST_SUITE(directory_entry_path_ctor_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,13 +17,13 @@
 // void assign(path const&);
 // void replace_filename(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 TEST_SUITE(directory_entry_ctor_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,14 +15,14 @@
 // explicit directory_entry(const path);
 // directory_entry(const path&, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
-#include "test_convertible.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
+#include "test_convertible.h"
 
 TEST_SUITE(directory_entry_path_ctor_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,13 +17,13 @@
 // void assign(path const&);
 // void replace_filename(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 TEST_SUITE(directory_entry_mods_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,13 +17,13 @@
 // void assign(path const&);
 // void replace_filename(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 TEST_SUITE(directory_entry_mods_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,13 +17,13 @@
 // void assign(path const&);
 // void replace_filename(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 TEST_SUITE(directory_entry_mods_suite)
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 // bool operator>=(directory_entry const&) const noexcept;
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 // uintmax_t file_size() const;
 // uintmax_t file_size(error_code const&) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "filesystem_test_helper.hpp"
-#include "rapid-cxx-test.hpp"
+#include "filesystem_test_helper.h"
+#include "rapid-cxx-test.h"
 
 #include <iostream>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 // file_status status() const;
 // file_status status(error_code const&) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "filesystem_test_helper.hpp"
-#include "rapid-cxx-test.hpp"
+#include "filesystem_test_helper.h"
+#include "rapid-cxx-test.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 // uintmax_t hard_link_count() const;
 // uintmax_t hard_link_count(error_code const&) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "filesystem_test_helper.hpp"
-#include "rapid-cxx-test.hpp"
+#include "filesystem_test_helper.h"
+#include "rapid-cxx-test.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 // file_time_type last_write_time() const;
 // file_time_type last_write_time(error_code const&) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "filesystem_test_helper.hpp"
-#include "rapid-cxx-test.hpp"
+#include "filesystem_test_helper.h"
+#include "rapid-cxx-test.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 // const path& path() const noexcept;
 // operator const path&() const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 // file_status status() const;
 // file_status status(error_code const&) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "filesystem_test_helper.hpp"
-#include "rapid-cxx-test.hpp"
+#include "filesystem_test_helper.h"
+#include "rapid-cxx-test.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 // file_status symlink_status() const;
 // file_status symlink_status(error_code&) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "filesystem_test_helper.hpp"
-#include "rapid-cxx-test.hpp"
+#include "filesystem_test_helper.h"
+#include "rapid-cxx-test.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // directory_iterator(directory_iterator const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // directory_iterator& operator=(directory_iterator const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,14 +17,14 @@
 // directory_iterator(const path& p, error_code& ec);
 // directory_iterator(const path& p, directory_options options, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 // directory_iterator::directory_iterator() noexcept
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,14 +15,14 @@
 // directory_iterator& operator++();
 // directory_iterator& increment(error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 #include <iostream>
 
 using namespace fs;

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // directory_iterator(directory_iterator&&) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // directory_iterator& operator=(directory_iterator const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 // The filesystem specification explicitly allows for self-move on
 // the directory iterators. Turn off this warning so we can test it.

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,14 +15,14 @@
 // directory_iterator begin(directory_iterator iter) noexcept;
 // directory_iterator end(directory_iterator iter) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 #include <iostream>
 
 using namespace fs;

Modified: libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 // typedef ... reference;
 // typedef ... iterator_category
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,11 +15,11 @@
 // explicit file_status() noexcept;
 // explicit file_status(file_type, perms prms = perms::unknown) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 // void type(file_type) noexcept;
 // void permissions(perms) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 // file_type type() const noexcept;
 // perms permissions(p) const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 // const path& path1() const noexcept;
 // const path& path2() const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,13 +18,13 @@
 //      path(InputIterator first, InputIterator last);
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <iterator>
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,15 +21,15 @@
 //      path& append(InputIterator first, InputIterator last);
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <string_view>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 #include "verbose_assert.h"
 
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,12 +14,12 @@
 
 // path& operator=(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 // path& operator=(path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,12 +14,12 @@
 
 // path& operator=(path&&) noexcept
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,15 +21,15 @@
 //      path& assign(InputIterator first, InputIterator last);
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <string_view>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 #include <iostream>
 
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,15 +26,15 @@
 // size_t hash_value(path const&) noexcept;
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <vector>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 #include "verbose_assert.h"
 
 struct PathCompareTest {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp Tue Aug 20 17:14:12 2019
@@ -27,7 +27,7 @@
 //   path& concat(InputIterator first, InputIterator last);
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <string>
 #include <string_view>
@@ -35,8 +35,8 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 struct ConcatOperatorTestcase {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 // path(path const&)
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 // path() noexcept
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,12 +14,12 @@
 
 // path(path&&) noexcept
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,14 +18,14 @@
 //      path(InputIterator first, InputIterator last);
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
 #include "min_allocator.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 template <class CharT, class ...Args>

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
 // UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp Tue Aug 20 17:14:12 2019
@@ -43,15 +43,15 @@
 // iterator end() const;
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <vector>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 #include "assert_checkpoint.h"
 #include "verbose_assert.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 // path lexically_normal() const;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <vector>
 #include <iostream>
@@ -22,8 +22,8 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 // path lexically_relative(const path& p) const;
 // path lexically_proximate(const path& p) const;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <vector>
 #include <iostream>
@@ -23,8 +23,8 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,15 +17,15 @@
 // basic_string<ECharT, Traits, Allocator>
 // generic_string(const Allocator& a = Allocator()) const;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "min_allocator.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 MultiStringType longString = MKSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/123456789/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,15 +19,15 @@
 // std::u32string generic_u32string() const;
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "min_allocator.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 MultiStringType longString = MKSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/123456789/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // void clear() noexcept
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // path& make_preferred()
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 struct MakePreferredTestcase {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // path& remove_filename()
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 #include "verbose_assert.h"
 
 struct RemoveFilenameTestcase {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // path& replace_extension(path const& p = path())
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 struct ReplaceExtensionTestcase {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // path& replace_filename()
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 #include "assert_checkpoint.h"
 #include "verbose_assert.h"
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // void swap(path& rhs) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 struct SwapTestcase {

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 
 // const value_type* c_str() const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,15 +19,15 @@
 // std::u32string u32string() const;
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "min_allocator.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 MultiStringType longString = MKSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/123456789/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,12 +14,12 @@
 
 // const string_type& native() const noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,12 +15,12 @@
 
 // operator string_type() const;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,15 +17,15 @@
 // basic_string<ECharT, Traits, Allocator>
 // string(const Allocator& a = Allocator()) const;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "min_allocator.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 
 // the SSO is always triggered for strings of size 2.

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.fail.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.fail.cpp Tue Aug 20 17:14:12 2019
@@ -10,7 +10,7 @@
 
 // <filesystem>
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 using namespace fs;
 
@@ -25,4 +25,4 @@ int main(int, char**) {
   (void)(LHS / RHS); // expected-error {{invalid operands to binary expression}}
 
   return 0;
-}
\ No newline at end of file
+}

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,12 +12,12 @@
 
 // path operator/(path const&, path const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "filesystem_test_helper.hpp"
+#include "filesystem_test_helper.h"
 
 // This is mainly tested via the member append functions.
 int main(int, char**)

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops.fail.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops.fail.cpp Tue Aug 20 17:14:12 2019
@@ -11,7 +11,7 @@
 // <filesystem>
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 using namespace fs;
 
@@ -31,4 +31,4 @@ int main(int, char**) {
   (void)(LHS >= RHS); // expected-error {{invalid operands to binary expression}}
 
   return 0;
-}
\ No newline at end of file
+}

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,14 +15,14 @@
 // template <class InputIter>
 //   path u8path(InputIter, InputIter);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 // operator>>(basic_istream<charT, traits>& is, path& p)
 //
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <sstream>
 #include <cassert>
@@ -29,8 +29,8 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 MultiStringType InStr =  MKSTR("abcdefg/\"hijklmnop\"/qrstuvwxyz/123456789");
 MultiStringType OutStr = MKSTR("\"abcdefg/\\\"hijklmnop\\\"/qrstuvwxyz/123456789\"");

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.unicode_bug.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.unicode_bug.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.unicode_bug.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.unicode_bug.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,15 +26,15 @@
 // passes.
 // XFAIL: *
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <sstream>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 MultiStringType InStr =  MKSTR("abcdefg/\"hijklmnop\"/qrstuvwxyz/123456789");
 MultiStringType OutStr = MKSTR("\"abcdefg/\\\"hijklmnop\\\"/qrstuvwxyz/123456789\"");

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,13 +12,13 @@
 
 // void swap(path& lhs, path& rhs) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 // NOTE: this is tested in path.members/path.modifiers via the member swap.

Modified: libcxx/trunk/test/std/input.output/filesystems/class.path/synop.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.path/synop.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.path/synop.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.path/synop.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 // typedef basic_string<value_type> string_type;
 // static constexpr value_type preferred_separator = ...;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // recursive_recursive_directory_iterator(recursive_recursive_directory_iterator const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // recursive_directory_iterator& operator=(recursive_directory_iterator const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,14 +19,14 @@
 // recursive_directory_iterator(const path& p, directory_options options, error_code& ec);
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // int depth() const
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // void disable_recursion_pending();
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,14 +15,14 @@
 // recursive_directory_iterator& operator++();
 // recursive_directory_iterator& increment(error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // recursive_directory_iterator(recursive_directory_iterator&&) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // recursive_directory_iterator& operator=(recursive_directory_iterator const&);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 // The filesystem specification explicitly allows for self-move on
 // the directory iterators. Turn off this warning so we can test it.

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,13 +15,13 @@
 // void pop();
 // void pop(error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,14 +14,14 @@
 
 // bool recursion_pending() const;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,14 +15,14 @@
 // recursive_directory_iterator begin(recursive_directory_iterator iter) noexcept;
 // recursive_directory_iterator end(recursive_directory_iterator iter) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <set>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 #include <iostream>
 
 using namespace fs;

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // enum class copy_options;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // enum class directory_options;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 #include <sys/stat.h>

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // enum class file_type;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,7 +13,7 @@
 // class path;
 // enum class format;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // enum class perm_options;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 #include <sys/stat.h>

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // enum class perms;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 #include <sys/stat.h>

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,7 +12,7 @@
 
 // typedef TrivialClock file_time_type;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <chrono>
 #include <type_traits>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,13 +12,13 @@
 
 // path absolute(const path& p, const path& base=current_path());
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // path canonical(const path& p);
 // path canonical(const path& p, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,14 +16,14 @@
 // void copy(const path& from, const path& to, copy_options options,
 //           error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cstddef>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,14 +16,14 @@
 // bool copy_file(const path& from, const path& to, copy_options options,
 //           error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <chrono>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 #include <iostream>
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,14 +17,14 @@
 // bool copy_file(const path& from, const path& to, copy_options options,
 //           error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <chrono>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // void copy_symlink(const path& existing_symlink, const path& new_symlink,
 //                   error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // bool create_directories(const path& p);
 // bool create_directories(const path& p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,13 +15,13 @@
 // bool create_directory(const path& p, const path& attr);
 // bool create_directory(const path& p, const path& attr, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // bool create_directory(const path& p, const path& attr);
 // bool create_directory(const path& p, const path& attr, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,12 +14,12 @@
 // void create_directory_symlink(const path& existing_symlink, const path& new_symlink,
 //                   error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,11 +14,11 @@
 // void create_hard_link(const path& existing_symlink, const path& new_symlink,
 //                   error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,12 +14,12 @@
 // void create_symlink(const path& existing_symlink, const path& new_symlink,
 //                   error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,13 +15,13 @@
 // void current_path(path const&);
 // void current_path(path const&, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // bool equivalent(path const& lhs, path const& rhs);
 // bool equivalent(path const& lhs, path const& rhs, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool exists(path const& p);
 // bool exists(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // uintmax_t file_size(const path& p);
 // uintmax_t file_size(const path& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // uintmax_t hard_link_count(const path& p);
 // uintmax_t hard_link_count(const path& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_block_file(path const& p);
 // bool is_block_file(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_character_file(path const& p);
 // bool is_character_file(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_directory(path const& p);
 // bool is_directory(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,13 +13,13 @@
 // bool is_empty(path const& p);
 // bool is_empty(path const& p, std::error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_fifo(path const& p);
 // bool is_fifo(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_other(path const& p);
 // bool is_other(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_regular_file(path const& p);
 // bool is_regular_file(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_socket(path const& p);
 // bool is_socket(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,13 +14,13 @@
 // bool is_symlink(path const& p);
 // bool is_symlink(path const& p, std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,15 +16,15 @@
 // void last_write_time(const path& p, file_time_type new_type,
 //                      std::error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <chrono>
 #include <fstream>
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 #include <sys/stat.h>
 #include <iostream>

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,11 +17,11 @@
 
 
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 // path proximate(const path& p, const path& base = current_path())
 // path proximate(const path& p, const path& base, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <vector>
 #include <iostream>
@@ -22,9 +22,9 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 
 static int count_path_elems(const fs::path& p) {

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // path read_symlink(const path& p);
 // path read_symlink(const path& p, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,16 +14,16 @@
 // path proximate(const path& p, const path& base = current_path())
 // path proximate(const path& p, const path& base, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <string>
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 
 TEST_SUITE(filesystem_proximate_path_test_suite)

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // bool remove(const path& p);
 // bool remove(const path& p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // uintmax_t remove_all(const path& p);
 // uintmax_t remove_all(const path& p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // void rename(const path& old_p, const path& new_p);
 // void rename(const path& old_p,  const path& new_p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // void resize_file(const path& p, uintmax_t new_size);
 // void resize_file(const path& p, uintmax_t new_size, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,12 +13,12 @@
 // space_info space(const path& p);
 // space_info space(const path& p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <sys/statvfs.h>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // file_status status(const path& p);
 // file_status status(const path& p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp Tue Aug 20 17:14:12 2019
@@ -12,13 +12,13 @@
 
 // bool status_known(file_status s) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,11 +13,11 @@
 // file_status symlink_status(const path& p);
 // file_status symlink_status(const path& p, error_code& ec) noexcept;
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,15 +13,15 @@
 // path temp_directory_path();
 // path temp_directory_path(error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <memory>
 #include <cstdlib>
 #include <cstring>
 #include <cassert>
 
 #include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
+#include "rapid-cxx-test.h"
+#include "filesystem_test_helper.h"
 
 using namespace fs;
 

Modified: libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp (original)
+++ libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,7 +13,7 @@
 // path weakly_canonical(const path& p);
 // path weakly_canonical(const path& p, error_code& ec);
 
-#include "filesystem_include.hpp"
+#include "filesystem_include.h"
 #include <type_traits>
 #include <vector>
 #include <iostream>
@@ -21,8 +21,8 @@
 
 #include "test_macros.h"
 #include "test_iterators.h"
-#include "count_new.hpp"
-#include "filesystem_test_helper.hpp"
+#include "count_new.h"
+#include "filesystem_test_helper.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/container.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/container.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/container.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/container.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 #include <iterator>
 #include <vector>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/post.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op%2B%2B/post.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/post.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/post.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/pre.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op%2B%2B/pre.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/pre.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/pre.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op_astrk/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op_astrk/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op_astrk/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op_astrk/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.inserter/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.inserter/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.inserter/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.inserter/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/container.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/container.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/container.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/container.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 #include <iterator>
 #include <list>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/post.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op%2B%2B/post.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/post.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/post.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <list>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/pre.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op%2B%2B/pre.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/pre.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/pre.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <list>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/lv_value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op%3D/lv_value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/lv_value.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/lv_value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <iterator>
 #include <list>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op_astrk/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op_astrk/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op_astrk/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op_astrk/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <list>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.inserter/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.inserter/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.inserter/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.inserter/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <list>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 
 #include <iterator>
 #include <vector>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/post.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op%2B%2B/post.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/post.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/post.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/pre.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op%2B%2B/pre.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/pre.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/pre.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/lv_value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op%3D/lv_value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/lv_value.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/lv_value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op_astrk/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op_astrk/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op_astrk/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op_astrk/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/inserter/test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/inserter/test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/inserter/test.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/inserter/test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/language.support/support.dynamic/destroying_delete_t_declaration.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/destroying_delete_t_declaration.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/language.support/support.dynamic/destroying_delete_t_declaration.pass.cpp (original)
+++ libcxx/trunk/test/std/language.support/support.dynamic/destroying_delete_t_declaration.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 
 #include <cassert>
 #include "test_macros.h"
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 
 #ifdef __cpp_impl_destroying_delete
 # ifndef __cpp_lib_destroying_delete

Modified: libcxx/trunk/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <locale>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <cstdlib>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <cstdlib>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/assign.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 #include <new>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <new>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "platform_support.h" // locale name macros
 
 #include "test_macros.h"

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 #include <new>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
 

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/default.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
-#include "count_new.hpp"
+#include "count_new.h"
 
 void check(const std::locale& loc)
 {

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <new>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
 

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <new>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
 

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <new>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
 

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <new>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
 

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.cons/string.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.cons/string.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.cons/string.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.cons/string.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <new>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "platform_support.h" // locale name macros
 

Modified: libcxx/trunk/test/std/localization/locales/locale/locale.members/combine.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locales/locale/locale.members/combine.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locales/locale/locale.members/combine.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locales/locale/locale.members/combine.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <stdexcept>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <string>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include "test_macros.h"
 #include "test_allocator.h"
 #include "test_iterators.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class T, class Alloc = std::allocator<T>>
 using BStr = std::basic_string<T, std::char_traits<T>, Alloc>;

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template<typename CharT>
 size_t StrLen ( const CharT *s ) {

Modified: libcxx/trunk/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 // Overloads
 // ---------------

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,7 +13,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,7 +13,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -13,7 +13,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 template <class S>
 void

Modified: libcxx/trunk/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <string_view>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <stdexcept>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <stdexcept>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <stdexcept>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <stdexcept>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp Tue Aug 20 17:14:12 2019
@@ -14,7 +14,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
 

Modified: libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp (original)
+++ libcxx/trunk/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "constexpr_char_traits.hpp"
+#include "constexpr_char_traits.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include <shared_mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include <shared_mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include <shared_mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include <shared_mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 
 #include <mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 
 #include <mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 
 #include <mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 
 #include <mutex>
 #include <cassert>
-#include "nasty_containers.hpp"
+#include "nasty_containers.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp (original)
+++ libcxx/trunk/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 
 #include <thread>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,8 +22,8 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,8 +22,8 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,8 +23,8 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,8 +22,8 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,8 +22,8 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,8 +22,8 @@
 #include <tuple>
 #include <cassert>
 #include <cstdlib>
-#include "uses_alloc_types.hpp"
-#include "controlled_allocators.hpp"
+#include "uses_alloc_types.h"
+#include "controlled_allocators.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.assign/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.assign/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.assign/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.assign/value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.assign/value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.assign/value.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.assign/value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/default.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 
 #include "test_macros.h"
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp Tue Aug 20 17:14:12 2019
@@ -27,9 +27,9 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 
 using std::any;
 using std::any_cast;

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -25,7 +25,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/any/any.nonmembers/make_any.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.nonmembers/make_any.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.nonmembers/make_any.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.nonmembers/make_any.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #include "any_helpers.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 
 using std::any;

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 class A
 {

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 class A
 {

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 class A
 {

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 #include "test_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "../function_types.h"
 
 

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 #include "test_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 #include "../function_types.h"
 
 class DummyClass {};

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 
 #include "test_macros.h"
 #include "min_allocator.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 class A
 {

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 class A {
   int data_[10];

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 class A
 {

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <functional>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <functional>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <functional>
 #include <cassert>
 
-#include "counting_predicates.hpp"
+#include "counting_predicates.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <functional>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cstddef>       // for std::max_align_t
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 
 #ifdef TEST_HAS_NO_ALIGNED_ALLOCATION

Modified: libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/construct.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/construct.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/construct.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/default.allocator/allocator.members/construct.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 int A_constructed = 0;
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp Tue Aug 20 17:14:12 2019
@@ -25,7 +25,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 struct T
     : public std::enable_shared_from_this<T>

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <memory>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #if TEST_STD_VER >= 11
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include "test_macros.h"
 
 #if TEST_STD_VER >= 11
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 #include "deleter_types.h"
 #include "min_allocator.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 struct B
 {

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp Tue Aug 20 17:14:12 2019
@@ -21,7 +21,7 @@
 #include <cstdlib>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "deleter_types.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <new>
 #include <cstdlib>
 
-#include "count_new.hpp"
+#include "count_new.h"
 #include "test_macros.h"
 #include "deleter_types.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cstdlib>
 #include <cassert>
 
-#include "count_new.hpp"
+#include "count_new.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 struct B
 {

Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "count_new.hpp"
+#include "count_new.h"
 
 #if TEST_STD_VER >= 11
 #define DELETE_FUNCTION = delete

Modified: libcxx/trunk/test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <optional>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <memory>
 #include <cassert>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <memory>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/const_optional_U.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/const_optional_U.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/const_optional_U.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/const_optional_U.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <memory>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <utility>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 using std::nullopt_t;

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/optional_U.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/optional_U.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/optional_U.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.assign/optional_U.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,8 +20,8 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 
 
 using std::optional;

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/empty_in_place_t_does_not_clobber.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/empty_in_place_t_does_not_clobber.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/empty_in_place_t_does_not_clobber.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/empty_in_place_t_does_not_clobber.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 #include <type_traits>
 #include <cassert>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 
 using std::optional;

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/special_members.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/special_members.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/special_members.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/special_members.pass.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <optional>
 #include <type_traits>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.object/triviality.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.object/triviality.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.object/triviality.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.object/triviality.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <optional>
 #include <type_traits>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/optional/optional.specalg/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.specalg/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/optional/optional.specalg/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/optional/optional.specalg/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 using std::optional;
 

Modified: libcxx/trunk/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <bitset>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <type_traits>
 
 #include "test_macros.h"
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "MoveOnly.h"
 
 #if TEST_STD_VER > 11

Modified: libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 
 // Overloads

Modified: libcxx/trunk/test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <typeindex>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 
 #include "test_macros.h"
 #if TEST_STD_VER >= 11
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 #endif
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/U_V.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/U_V.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/U_V.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/U_V.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,8 +19,8 @@
 #include <memory>
 #include <cassert>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 
 #include "test_macros.h"
 using namespace ImplicitTypes; // Get implicitly archetypes

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_const_pair_U_V.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_const_pair_U_V.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_const_pair_U_V.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_const_pair_U_V.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 
 #include "test_macros.h"
 #if TEST_STD_VER >= 11
-#include "archetypes.hpp"
+#include "archetypes.h"
 #endif
 
 int main(int, char**)

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,7 +17,7 @@
 #include <utility>
 #include <memory>
 #include <cassert>
-#include <archetypes.hpp>
+#include <archetypes.h>
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_first_const_second.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_first_const_second.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_first_const_second.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_first_const_second.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,8 +17,8 @@
 #include <utility>
 #include <cassert>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 
 #include "test_macros.h"
 using namespace ImplicitTypes; // Get implicitly archetypes

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp Tue Aug 20 17:14:12 2019
@@ -17,8 +17,8 @@
 #include <utility>
 #include <cassert>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 
 #include "test_macros.h"
 using namespace ImplicitTypes; // Get implicitly archetypes

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 
 // Overloads

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,8 +18,8 @@
 #include <memory>
 #include <cassert>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 
 #include "test_macros.h"
 using namespace ImplicitTypes; // Get implicitly archetypes

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/special_member_generation_test.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/special_member_generation_test.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/special_member_generation_test.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/special_member_generation_test.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 #include <string>
 #include <tuple>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 
 #include "test_macros.h"
 using namespace ImplicitTypes; // Get implicitly archetypes

Modified: libcxx/trunk/test/std/utilities/variant/variant.get/get_if_index.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.get/get_if_index.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.get/get_if_index.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.get/get_if_index.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 //   get_if(const variant<Types...>* v) noexcept;
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 #include <cassert>
 #include <memory>
 #include <variant>

Modified: libcxx/trunk/test/std/utilities/variant/variant.get/get_if_type.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.get/get_if_type.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.get/get_if_type.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.get/get_if_type.pass.cpp Tue Aug 20 17:14:12 2019
@@ -18,7 +18,7 @@
 //  noexcept;
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 #include <cassert>
 #include <variant>
 

Modified: libcxx/trunk/test/std/utilities/variant/variant.get/get_index.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.get/get_index.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.get/get_index.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.get/get_index.pass.cpp Tue Aug 20 17:14:12 2019
@@ -28,7 +28,7 @@
 
 #include "test_macros.h"
 #include "test_workarounds.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 #include <cassert>
 #include <type_traits>
 #include <utility>

Modified: libcxx/trunk/test/std/utilities/variant/variant.get/get_type.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.get/get_type.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.get/get_type.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.get/get_type.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 
 #include "test_macros.h"
 #include "test_workarounds.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 #include <cassert>
 #include <type_traits>
 #include <utility>

Modified: libcxx/trunk/test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -15,7 +15,7 @@
 
 #include <variant>
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/variant/variant.hash/hash.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.hash/hash.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.hash/hash.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.hash/hash.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,8 +19,8 @@
 #include <variant>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
-#include "poisoned_hash_helper.hpp"
+#include "variant_test_helpers.h"
+#include "poisoned_hash_helper.h"
 
 #ifndef TEST_HAS_NO_EXCEPTIONS
 namespace std {

Modified: libcxx/trunk/test/std/utilities/variant/variant.helpers/variant_alternative.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.helpers/variant_alternative.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.helpers/variant_alternative.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.helpers/variant_alternative.pass.cpp Tue Aug 20 17:14:12 2019
@@ -26,7 +26,7 @@
 #include <variant>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 template <class V, size_t I, class E> void test() {
   static_assert(

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp Tue Aug 20 17:14:12 2019
@@ -25,7 +25,7 @@
 #include <memory>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 namespace MetaHelpers {
 

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,7 +20,7 @@
 #include <string>
 #include <memory>
 
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp Tue Aug 20 17:14:12 2019
@@ -29,7 +29,7 @@
 #include <variant>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 struct NoCopy {
   NoCopy(const NoCopy &) = delete;

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <memory>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 struct Dummy {
   Dummy() = default;

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp Tue Aug 20 17:14:12 2019
@@ -19,7 +19,7 @@
 #include <string>
 #include <memory>
 
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <variant>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 struct NonDefaultConstructible {
   constexpr NonDefaultConstructible(int) {}

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <type_traits>
 #include <variant>
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "test_macros.h"
 
 void test_ctor_sfinae() {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <type_traits>
 #include <variant>
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "test_macros.h"
 
 struct InitList {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,7 +22,7 @@
 #include <type_traits>
 #include <variant>
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "test_macros.h"
 
 void test_ctor_sfinae() {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,7 +23,7 @@
 #include <type_traits>
 #include <variant>
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "test_macros.h"
 
 struct InitList {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,10 +23,10 @@
 #include <type_traits>
 #include <variant>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 template <class Var, size_t I, class... Args>
 constexpr auto test_emplace_exists_imp(int) -> decltype(

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,8 +23,8 @@
 #include <type_traits>
 #include <variant>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 #include "test_macros.h"
 
 struct InitList {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,10 +22,10 @@
 #include <type_traits>
 #include <variant>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 template <class Var, class T, class... Args>
 constexpr auto test_emplace_exists_imp(int) -> decltype(

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp Tue Aug 20 17:14:12 2019
@@ -23,8 +23,8 @@
 #include <type_traits>
 #include <variant>
 
-#include "archetypes.hpp"
-#include "test_convertible.hpp"
+#include "archetypes.h"
+#include "test_convertible.h"
 #include "test_macros.h"
 
 struct InitList {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,9 +20,9 @@
 #include <type_traits>
 #include <variant>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp Tue Aug 20 17:14:12 2019
@@ -20,9 +20,9 @@
 #include <type_traits>
 #include <variant>
 
-#include "archetypes.hpp"
+#include "archetypes.h"
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 
 int main(int, char**) {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp Tue Aug 20 17:14:12 2019
@@ -22,9 +22,9 @@
 #include <type_traits>
 #include <variant>
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 struct NotSwappable {};
 void swap(NotSwappable &, NotSwappable &) = delete;

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant_array.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant_array.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant_array.fail.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant_array.fail.cpp Tue Aug 20 17:14:12 2019
@@ -20,8 +20,8 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
-#include "test_convertible.hpp"
+#include "variant_test_helpers.h"
+#include "test_convertible.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant_empty.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant_empty.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant_empty.fail.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant_empty.fail.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <variant>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant_reference.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant_reference.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant_reference.fail.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant_reference.fail.cpp Tue Aug 20 17:14:12 2019
@@ -16,7 +16,7 @@
 #include <variant>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/variant/variant.variant/variant_void.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.variant/variant_void.fail.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.variant/variant_void.fail.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.variant/variant_void.fail.cpp Tue Aug 20 17:14:12 2019
@@ -20,8 +20,8 @@
 #include <cassert>
 
 #include "test_macros.h"
-#include "variant_test_helpers.hpp"
-#include "test_convertible.hpp"
+#include "variant_test_helpers.h"
+#include "test_convertible.h"
 
 int main(int, char**)
 {

Modified: libcxx/trunk/test/std/utilities/variant/variant.visit/visit.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/variant/variant.visit/visit.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/variant/variant.visit/visit.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/variant/variant.visit/visit.pass.cpp Tue Aug 20 17:14:12 2019
@@ -24,7 +24,7 @@
 
 #include "test_macros.h"
 #include "type_id.h"
-#include "variant_test_helpers.hpp"
+#include "variant_test_helpers.h"
 
 enum CallType : unsigned {
   CT_None,

Added: libcxx/trunk/test/support/archetypes.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/archetypes.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/archetypes.h (added)
+++ libcxx/trunk/test/support/archetypes.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,393 @@
+#ifndef TEST_SUPPORT_ARCHETYPES_H
+#define TEST_SUPPORT_ARCHETYPES_H
+
+#include <type_traits>
+#include <cassert>
+
+#include "test_macros.h"
+#include "test_workarounds.h"
+
+#if TEST_STD_VER >= 11
+
+namespace ArchetypeBases {
+
+template <bool, class T>
+struct DepType : T {};
+
+struct NullBase {
+#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+protected:
+#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+  NullBase() = default;
+  NullBase(NullBase const&) = default;
+  NullBase& operator=(NullBase const&) = default;
+  NullBase(NullBase &&) = default;
+  NullBase& operator=(NullBase &&) = default;
+};
+
+template <class Derived, bool Explicit = false>
+struct TestBase {
+    static int alive;
+    static int constructed;
+    static int value_constructed;
+    static int default_constructed;
+    static int copy_constructed;
+    static int move_constructed;
+    static int assigned;
+    static int value_assigned;
+    static int copy_assigned;
+    static int move_assigned;
+    static int destroyed;
+
+    static void reset() {
+        assert(alive == 0);
+        alive = 0;
+        reset_constructors();
+    }
+
+    static void reset_constructors() {
+      constructed = value_constructed = default_constructed =
+        copy_constructed = move_constructed = 0;
+      assigned = value_assigned = copy_assigned = move_assigned = destroyed = 0;
+    }
+
+    TestBase() noexcept : value(0) {
+        ++alive; ++constructed; ++default_constructed;
+    }
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit TestBase(int x) noexcept : value(x) {
+        ++alive; ++constructed; ++value_constructed;
+    }
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    TestBase(int x) noexcept : value(x) {
+        ++alive; ++constructed; ++value_constructed;
+    }
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit TestBase(int, int y) noexcept : value(y) {
+        ++alive; ++constructed; ++value_constructed;
+    }
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    TestBase(int, int y) noexcept : value(y) {
+        ++alive; ++constructed; ++value_constructed;
+    }
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept
+      : value(static_cast<int>(il.size())) {
+        ++alive; ++constructed; ++value_constructed;
+    }
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept : value(static_cast<int>(il.size())) {
+        ++alive; ++constructed; ++value_constructed;
+    }
+    TestBase& operator=(int xvalue) noexcept {
+      value = xvalue;
+      ++assigned; ++value_assigned;
+      return *this;
+    }
+#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+protected:
+#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+    ~TestBase() {
+      assert(value != -999); assert(alive > 0);
+      --alive; ++destroyed; value = -999;
+    }
+    explicit TestBase(TestBase const& o) noexcept : value(o.value) {
+        assert(o.value != -1); assert(o.value != -999);
+        ++alive; ++constructed; ++copy_constructed;
+    }
+    explicit TestBase(TestBase && o) noexcept : value(o.value) {
+        assert(o.value != -1); assert(o.value != -999);
+        ++alive; ++constructed; ++move_constructed;
+        o.value = -1;
+    }
+    TestBase& operator=(TestBase const& o) noexcept {
+      assert(o.value != -1); assert(o.value != -999);
+      ++assigned; ++copy_assigned;
+      value = o.value;
+      return *this;
+    }
+    TestBase& operator=(TestBase&& o) noexcept {
+        assert(o.value != -1); assert(o.value != -999);
+        ++assigned; ++move_assigned;
+        value = o.value;
+        o.value = -1;
+        return *this;
+    }
+public:
+    int value;
+};
+
+template <class D, bool E> int TestBase<D, E>::alive = 0;
+template <class D, bool E> int TestBase<D, E>::constructed = 0;
+template <class D, bool E> int TestBase<D, E>::value_constructed = 0;
+template <class D, bool E> int TestBase<D, E>::default_constructed = 0;
+template <class D, bool E> int TestBase<D, E>::copy_constructed = 0;
+template <class D, bool E> int TestBase<D, E>::move_constructed = 0;
+template <class D, bool E> int TestBase<D, E>::assigned = 0;
+template <class D, bool E> int TestBase<D, E>::value_assigned = 0;
+template <class D, bool E> int TestBase<D, E>::copy_assigned = 0;
+template <class D, bool E> int TestBase<D, E>::move_assigned = 0;
+template <class D, bool E> int TestBase<D, E>::destroyed = 0;
+
+template <bool Explicit = false>
+struct ValueBase {
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit constexpr ValueBase(int x) : value(x) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    constexpr ValueBase(int x) : value(x) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit constexpr ValueBase(int, int y) : value(y) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    constexpr ValueBase(int, int y) : value(y) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
+    TEST_CONSTEXPR_CXX14 ValueBase& operator=(int xvalue) noexcept {
+        value = xvalue;
+        return *this;
+    }
+    //~ValueBase() { assert(value != -999); value = -999; }
+    int value;
+#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+protected:
+#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+    constexpr static int check_value(int const& val) {
+#if TEST_STD_VER < 14
+      return val == -1 || val == 999 ? (TEST_THROW(42), 0) : val;
+#else
+      assert(val != -1); assert(val != 999);
+      return val;
+#endif
+    }
+    constexpr static int check_value(int& val, int val_cp = 0) {
+#if TEST_STD_VER < 14
+      return val_cp = val, val = -1, (val_cp == -1 || val_cp == 999 ? (TEST_THROW(42), 0) : val_cp);
+#else
+      assert(val != -1); assert(val != 999);
+      val_cp = val;
+      val = -1;
+      return val_cp;
+#endif
+    }
+    constexpr ValueBase() noexcept : value(0) {}
+    constexpr ValueBase(ValueBase const& o) noexcept : value(check_value(o.value)) {
+    }
+    constexpr ValueBase(ValueBase && o) noexcept : value(check_value(o.value)) {
+    }
+    TEST_CONSTEXPR_CXX14 ValueBase& operator=(ValueBase const& o) noexcept {
+        assert(o.value != -1); assert(o.value != -999);
+        value = o.value;
+        return *this;
+    }
+    TEST_CONSTEXPR_CXX14 ValueBase& operator=(ValueBase&& o) noexcept {
+        assert(o.value != -1); assert(o.value != -999);
+        value = o.value;
+        o.value = -1;
+        return *this;
+    }
+};
+
+
+template <bool Explicit = false>
+struct TrivialValueBase {
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit constexpr TrivialValueBase(int x) : value(x) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    constexpr TrivialValueBase(int x) : value(x) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit constexpr TrivialValueBase(int, int y) : value(y) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    constexpr TrivialValueBase(int, int y) : value(y) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
+    explicit constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
+    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
+    constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
+    int value;
+#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+protected:
+#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+    constexpr TrivialValueBase() noexcept : value(0) {}
+};
+
+}
+
+//============================================================================//
+// Trivial Implicit Test Types
+namespace ImplicitTypes {
+#include "archetypes.ipp"
+}
+
+//============================================================================//
+// Trivial Explicit Test Types
+namespace ExplicitTypes {
+#define DEFINE_EXPLICIT explicit
+#include "archetypes.ipp"
+}
+
+//============================================================================//
+//
+namespace NonConstexprTypes {
+#define DEFINE_CONSTEXPR
+#include "archetypes.ipp"
+}
+
+//============================================================================//
+// Non-literal implicit test types
+namespace NonLiteralTypes {
+#define DEFINE_ASSIGN_CONSTEXPR
+#define DEFINE_DTOR(Name) ~Name() {}
+#include "archetypes.ipp"
+}
+
+//============================================================================//
+// Non-throwing implicit test types
+namespace NonThrowingTypes {
+#define DEFINE_NOEXCEPT noexcept
+#include "archetypes.ipp"
+}
+
+//============================================================================//
+// Non-Trivially Copyable Implicit Test Types
+namespace NonTrivialTypes {
+#define DEFINE_CTOR {}
+#define DEFINE_ASSIGN { return *this; }
+#include "archetypes.ipp"
+}
+
+//============================================================================//
+// Implicit counting types
+namespace TestTypes {
+#define DEFINE_CONSTEXPR
+#define DEFINE_BASE(Name) ::ArchetypeBases::TestBase<Name>
+#include "archetypes.ipp"
+
+using TestType = AllCtors;
+
+// Add equality operators
+template <class Tp>
+constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
+  return L.value == R.value;
+}
+
+template <class Tp>
+constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
+  return L.value != R.value;
+}
+
+}
+
+//============================================================================//
+// Implicit counting types
+namespace ExplicitTestTypes {
+#define DEFINE_CONSTEXPR
+#define DEFINE_EXPLICIT explicit
+#define DEFINE_BASE(Name) ::ArchetypeBases::TestBase<Name, true>
+#include "archetypes.ipp"
+
+using TestType = AllCtors;
+
+// Add equality operators
+template <class Tp>
+constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
+  return L.value == R.value;
+}
+
+template <class Tp>
+constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
+  return L.value != R.value;
+}
+
+}
+
+//============================================================================//
+// Implicit value types
+namespace ConstexprTestTypes {
+#define DEFINE_BASE(Name) ::ArchetypeBases::ValueBase<>
+#include "archetypes.ipp"
+
+using TestType = AllCtors;
+
+// Add equality operators
+template <class Tp>
+constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
+  return L.value == R.value;
+}
+
+template <class Tp>
+constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
+  return L.value != R.value;
+}
+
+} // end namespace ConstexprTestTypes
+
+
+//============================================================================//
+//
+namespace ExplicitConstexprTestTypes {
+#define DEFINE_EXPLICIT explicit
+#define DEFINE_BASE(Name) ::ArchetypeBases::ValueBase<true>
+#include "archetypes.ipp"
+
+using TestType = AllCtors;
+
+// Add equality operators
+template <class Tp>
+constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
+  return L.value == R.value;
+}
+
+template <class Tp>
+constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
+  return L.value != R.value;
+}
+
+} // end namespace ExplicitConstexprTestTypes
+
+
+//============================================================================//
+//
+namespace TrivialTestTypes {
+#define DEFINE_BASE(Name) ::ArchetypeBases::TrivialValueBase<false>
+#include "archetypes.ipp"
+
+using TestType = AllCtors;
+
+// Add equality operators
+template <class Tp>
+constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
+  return L.value == R.value;
+}
+
+template <class Tp>
+constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
+  return L.value != R.value;
+}
+
+} // end namespace TrivialTestTypes
+
+//============================================================================//
+//
+namespace ExplicitTrivialTestTypes {
+#define DEFINE_EXPLICIT explicit
+#define DEFINE_BASE(Name) ::ArchetypeBases::TrivialValueBase<true>
+#include "archetypes.ipp"
+
+using TestType = AllCtors;
+
+// Add equality operators
+template <class Tp>
+constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
+  return L.value == R.value;
+}
+
+template <class Tp>
+constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
+  return L.value != R.value;
+}
+
+} // end namespace ExplicitTrivialTestTypes
+
+#endif // TEST_STD_VER >= 11
+
+#endif // TEST_SUPPORT_ARCHETYPES_H

Removed: libcxx/trunk/test/support/archetypes.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/archetypes.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/archetypes.hpp (original)
+++ libcxx/trunk/test/support/archetypes.hpp (removed)
@@ -1,393 +0,0 @@
-#ifndef TEST_SUPPORT_ARCHETYPES_HPP
-#define TEST_SUPPORT_ARCHETYPES_HPP
-
-#include <type_traits>
-#include <cassert>
-
-#include "test_macros.h"
-#include "test_workarounds.h"
-
-#if TEST_STD_VER >= 11
-
-namespace ArchetypeBases {
-
-template <bool, class T>
-struct DepType : T {};
-
-struct NullBase {
-#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-protected:
-#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-  NullBase() = default;
-  NullBase(NullBase const&) = default;
-  NullBase& operator=(NullBase const&) = default;
-  NullBase(NullBase &&) = default;
-  NullBase& operator=(NullBase &&) = default;
-};
-
-template <class Derived, bool Explicit = false>
-struct TestBase {
-    static int alive;
-    static int constructed;
-    static int value_constructed;
-    static int default_constructed;
-    static int copy_constructed;
-    static int move_constructed;
-    static int assigned;
-    static int value_assigned;
-    static int copy_assigned;
-    static int move_assigned;
-    static int destroyed;
-
-    static void reset() {
-        assert(alive == 0);
-        alive = 0;
-        reset_constructors();
-    }
-
-    static void reset_constructors() {
-      constructed = value_constructed = default_constructed =
-        copy_constructed = move_constructed = 0;
-      assigned = value_assigned = copy_assigned = move_assigned = destroyed = 0;
-    }
-
-    TestBase() noexcept : value(0) {
-        ++alive; ++constructed; ++default_constructed;
-    }
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit TestBase(int x) noexcept : value(x) {
-        ++alive; ++constructed; ++value_constructed;
-    }
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    TestBase(int x) noexcept : value(x) {
-        ++alive; ++constructed; ++value_constructed;
-    }
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit TestBase(int, int y) noexcept : value(y) {
-        ++alive; ++constructed; ++value_constructed;
-    }
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    TestBase(int, int y) noexcept : value(y) {
-        ++alive; ++constructed; ++value_constructed;
-    }
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept
-      : value(static_cast<int>(il.size())) {
-        ++alive; ++constructed; ++value_constructed;
-    }
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept : value(static_cast<int>(il.size())) {
-        ++alive; ++constructed; ++value_constructed;
-    }
-    TestBase& operator=(int xvalue) noexcept {
-      value = xvalue;
-      ++assigned; ++value_assigned;
-      return *this;
-    }
-#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-protected:
-#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-    ~TestBase() {
-      assert(value != -999); assert(alive > 0);
-      --alive; ++destroyed; value = -999;
-    }
-    explicit TestBase(TestBase const& o) noexcept : value(o.value) {
-        assert(o.value != -1); assert(o.value != -999);
-        ++alive; ++constructed; ++copy_constructed;
-    }
-    explicit TestBase(TestBase && o) noexcept : value(o.value) {
-        assert(o.value != -1); assert(o.value != -999);
-        ++alive; ++constructed; ++move_constructed;
-        o.value = -1;
-    }
-    TestBase& operator=(TestBase const& o) noexcept {
-      assert(o.value != -1); assert(o.value != -999);
-      ++assigned; ++copy_assigned;
-      value = o.value;
-      return *this;
-    }
-    TestBase& operator=(TestBase&& o) noexcept {
-        assert(o.value != -1); assert(o.value != -999);
-        ++assigned; ++move_assigned;
-        value = o.value;
-        o.value = -1;
-        return *this;
-    }
-public:
-    int value;
-};
-
-template <class D, bool E> int TestBase<D, E>::alive = 0;
-template <class D, bool E> int TestBase<D, E>::constructed = 0;
-template <class D, bool E> int TestBase<D, E>::value_constructed = 0;
-template <class D, bool E> int TestBase<D, E>::default_constructed = 0;
-template <class D, bool E> int TestBase<D, E>::copy_constructed = 0;
-template <class D, bool E> int TestBase<D, E>::move_constructed = 0;
-template <class D, bool E> int TestBase<D, E>::assigned = 0;
-template <class D, bool E> int TestBase<D, E>::value_assigned = 0;
-template <class D, bool E> int TestBase<D, E>::copy_assigned = 0;
-template <class D, bool E> int TestBase<D, E>::move_assigned = 0;
-template <class D, bool E> int TestBase<D, E>::destroyed = 0;
-
-template <bool Explicit = false>
-struct ValueBase {
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit constexpr ValueBase(int x) : value(x) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    constexpr ValueBase(int x) : value(x) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit constexpr ValueBase(int, int y) : value(y) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    constexpr ValueBase(int, int y) : value(y) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
-    TEST_CONSTEXPR_CXX14 ValueBase& operator=(int xvalue) noexcept {
-        value = xvalue;
-        return *this;
-    }
-    //~ValueBase() { assert(value != -999); value = -999; }
-    int value;
-#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-protected:
-#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-    constexpr static int check_value(int const& val) {
-#if TEST_STD_VER < 14
-      return val == -1 || val == 999 ? (TEST_THROW(42), 0) : val;
-#else
-      assert(val != -1); assert(val != 999);
-      return val;
-#endif
-    }
-    constexpr static int check_value(int& val, int val_cp = 0) {
-#if TEST_STD_VER < 14
-      return val_cp = val, val = -1, (val_cp == -1 || val_cp == 999 ? (TEST_THROW(42), 0) : val_cp);
-#else
-      assert(val != -1); assert(val != 999);
-      val_cp = val;
-      val = -1;
-      return val_cp;
-#endif
-    }
-    constexpr ValueBase() noexcept : value(0) {}
-    constexpr ValueBase(ValueBase const& o) noexcept : value(check_value(o.value)) {
-    }
-    constexpr ValueBase(ValueBase && o) noexcept : value(check_value(o.value)) {
-    }
-    TEST_CONSTEXPR_CXX14 ValueBase& operator=(ValueBase const& o) noexcept {
-        assert(o.value != -1); assert(o.value != -999);
-        value = o.value;
-        return *this;
-    }
-    TEST_CONSTEXPR_CXX14 ValueBase& operator=(ValueBase&& o) noexcept {
-        assert(o.value != -1); assert(o.value != -999);
-        value = o.value;
-        o.value = -1;
-        return *this;
-    }
-};
-
-
-template <bool Explicit = false>
-struct TrivialValueBase {
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit constexpr TrivialValueBase(int x) : value(x) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    constexpr TrivialValueBase(int x) : value(x) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit constexpr TrivialValueBase(int, int y) : value(y) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    constexpr TrivialValueBase(int, int y) : value(y) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
-    explicit constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
-    template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
-    constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
-    int value;
-#ifndef TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-protected:
-#endif // !TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
-    constexpr TrivialValueBase() noexcept : value(0) {}
-};
-
-}
-
-//============================================================================//
-// Trivial Implicit Test Types
-namespace ImplicitTypes {
-#include "archetypes.ipp"
-}
-
-//============================================================================//
-// Trivial Explicit Test Types
-namespace ExplicitTypes {
-#define DEFINE_EXPLICIT explicit
-#include "archetypes.ipp"
-}
-
-//============================================================================//
-//
-namespace NonConstexprTypes {
-#define DEFINE_CONSTEXPR
-#include "archetypes.ipp"
-}
-
-//============================================================================//
-// Non-literal implicit test types
-namespace NonLiteralTypes {
-#define DEFINE_ASSIGN_CONSTEXPR
-#define DEFINE_DTOR(Name) ~Name() {}
-#include "archetypes.ipp"
-}
-
-//============================================================================//
-// Non-throwing implicit test types
-namespace NonThrowingTypes {
-#define DEFINE_NOEXCEPT noexcept
-#include "archetypes.ipp"
-}
-
-//============================================================================//
-// Non-Trivially Copyable Implicit Test Types
-namespace NonTrivialTypes {
-#define DEFINE_CTOR {}
-#define DEFINE_ASSIGN { return *this; }
-#include "archetypes.ipp"
-}
-
-//============================================================================//
-// Implicit counting types
-namespace TestTypes {
-#define DEFINE_CONSTEXPR
-#define DEFINE_BASE(Name) ::ArchetypeBases::TestBase<Name>
-#include "archetypes.ipp"
-
-using TestType = AllCtors;
-
-// Add equality operators
-template <class Tp>
-constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
-  return L.value == R.value;
-}
-
-template <class Tp>
-constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
-  return L.value != R.value;
-}
-
-}
-
-//============================================================================//
-// Implicit counting types
-namespace ExplicitTestTypes {
-#define DEFINE_CONSTEXPR
-#define DEFINE_EXPLICIT explicit
-#define DEFINE_BASE(Name) ::ArchetypeBases::TestBase<Name, true>
-#include "archetypes.ipp"
-
-using TestType = AllCtors;
-
-// Add equality operators
-template <class Tp>
-constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
-  return L.value == R.value;
-}
-
-template <class Tp>
-constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
-  return L.value != R.value;
-}
-
-}
-
-//============================================================================//
-// Implicit value types
-namespace ConstexprTestTypes {
-#define DEFINE_BASE(Name) ::ArchetypeBases::ValueBase<>
-#include "archetypes.ipp"
-
-using TestType = AllCtors;
-
-// Add equality operators
-template <class Tp>
-constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
-  return L.value == R.value;
-}
-
-template <class Tp>
-constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
-  return L.value != R.value;
-}
-
-} // end namespace ConstexprTestTypes
-
-
-//============================================================================//
-//
-namespace ExplicitConstexprTestTypes {
-#define DEFINE_EXPLICIT explicit
-#define DEFINE_BASE(Name) ::ArchetypeBases::ValueBase<true>
-#include "archetypes.ipp"
-
-using TestType = AllCtors;
-
-// Add equality operators
-template <class Tp>
-constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
-  return L.value == R.value;
-}
-
-template <class Tp>
-constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
-  return L.value != R.value;
-}
-
-} // end namespace ExplicitConstexprTestTypes
-
-
-//============================================================================//
-//
-namespace TrivialTestTypes {
-#define DEFINE_BASE(Name) ::ArchetypeBases::TrivialValueBase<false>
-#include "archetypes.ipp"
-
-using TestType = AllCtors;
-
-// Add equality operators
-template <class Tp>
-constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
-  return L.value == R.value;
-}
-
-template <class Tp>
-constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
-  return L.value != R.value;
-}
-
-} // end namespace TrivialTestTypes
-
-//============================================================================//
-//
-namespace ExplicitTrivialTestTypes {
-#define DEFINE_EXPLICIT explicit
-#define DEFINE_BASE(Name) ::ArchetypeBases::TrivialValueBase<true>
-#include "archetypes.ipp"
-
-using TestType = AllCtors;
-
-// Add equality operators
-template <class Tp>
-constexpr bool operator==(Tp const& L, Tp const& R) noexcept {
-  return L.value == R.value;
-}
-
-template <class Tp>
-constexpr bool operator!=(Tp const& L, Tp const& R) noexcept {
-  return L.value != R.value;
-}
-
-} // end namespace ExplicitTrivialTestTypes
-
-#endif // TEST_STD_VER >= 11
-
-#endif // TEST_SUPPORT_ARCHETYPES_HPP

Added: libcxx/trunk/test/support/constexpr_char_traits.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/constexpr_char_traits.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/constexpr_char_traits.h (added)
+++ libcxx/trunk/test/support/constexpr_char_traits.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+//===-------------------- constexpr_char_traits ---------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CONSTEXPR_CHAR_TRAITS
+#define _CONSTEXPR_CHAR_TRAITS
+
+#include <string>
+#include <cassert>
+
+#include "test_macros.h"
+
+template <class _CharT>
+struct constexpr_char_traits
+{
+    typedef _CharT    char_type;
+    typedef int       int_type;
+    typedef std::streamoff off_type;
+    typedef std::streampos pos_type;
+    typedef std::mbstate_t state_type;
+
+    static TEST_CONSTEXPR_CXX14 void assign(char_type& __c1, const char_type& __c2) TEST_NOEXCEPT
+        {__c1 = __c2;}
+
+    static TEST_CONSTEXPR bool eq(char_type __c1, char_type __c2) TEST_NOEXCEPT
+        {return __c1 == __c2;}
+
+    static TEST_CONSTEXPR  bool lt(char_type __c1, char_type __c2) TEST_NOEXCEPT
+        {return __c1 < __c2;}
+
+    static TEST_CONSTEXPR_CXX14 int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
+    static TEST_CONSTEXPR_CXX14 size_t           length(const char_type* __s);
+    static TEST_CONSTEXPR_CXX14 const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
+    static TEST_CONSTEXPR_CXX14 char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
+    static TEST_CONSTEXPR_CXX14 char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
+    static TEST_CONSTEXPR_CXX14 char_type*       assign(char_type* __s, size_t __n, char_type __a);
+
+    static TEST_CONSTEXPR int_type  not_eof(int_type __c) TEST_NOEXCEPT
+        {return eq_int_type(__c, eof()) ? ~eof() : __c;}
+
+    static TEST_CONSTEXPR char_type to_char_type(int_type __c) TEST_NOEXCEPT
+        {return char_type(__c);}
+
+    static TEST_CONSTEXPR int_type  to_int_type(char_type __c) TEST_NOEXCEPT
+        {return int_type(__c);}
+
+    static TEST_CONSTEXPR bool      eq_int_type(int_type __c1, int_type __c2) TEST_NOEXCEPT
+        {return __c1 == __c2;}
+
+    static TEST_CONSTEXPR int_type  eof() TEST_NOEXCEPT
+        {return int_type(EOF);}
+};
+
+
+template <class _CharT>
+TEST_CONSTEXPR_CXX14 int
+constexpr_char_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
+{
+    for (; __n; --__n, ++__s1, ++__s2)
+    {
+        if (lt(*__s1, *__s2))
+            return -1;
+        if (lt(*__s2, *__s1))
+            return 1;
+    }
+    return 0;
+}
+
+template <class _CharT>
+TEST_CONSTEXPR_CXX14 size_t
+constexpr_char_traits<_CharT>::length(const char_type* __s)
+{
+    size_t __len = 0;
+    for (; !eq(*__s, char_type(0)); ++__s)
+        ++__len;
+    return __len;
+}
+
+template <class _CharT>
+TEST_CONSTEXPR_CXX14 const _CharT*
+constexpr_char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a)
+{
+    for (; __n; --__n)
+    {
+        if (eq(*__s, __a))
+            return __s;
+        ++__s;
+    }
+    return 0;
+}
+
+template <class _CharT>
+TEST_CONSTEXPR_CXX14 _CharT*
+constexpr_char_traits<_CharT>::move(char_type* __s1, const char_type* __s2, size_t __n)
+{
+    char_type* __r = __s1;
+    if (__s1 < __s2)
+    {
+        for (; __n; --__n, ++__s1, ++__s2)
+            assign(*__s1, *__s2);
+    }
+    else if (__s2 < __s1)
+    {
+        __s1 += __n;
+        __s2 += __n;
+        for (; __n; --__n)
+            assign(*--__s1, *--__s2);
+    }
+    return __r;
+}
+
+template <class _CharT>
+TEST_CONSTEXPR_CXX14 _CharT*
+constexpr_char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n)
+{
+    assert(__s2 < __s1 || __s2 >= __s1+__n);
+    char_type* __r = __s1;
+    for (; __n; --__n, ++__s1, ++__s2)
+        assign(*__s1, *__s2);
+    return __r;
+}
+
+template <class _CharT>
+TEST_CONSTEXPR_CXX14 _CharT*
+constexpr_char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)
+{
+    char_type* __r = __s;
+    for (; __n; --__n, ++__s)
+        assign(*__s, __a);
+    return __r;
+}
+
+#endif // _CONSTEXPR_CHAR_TRAITS

Removed: libcxx/trunk/test/support/constexpr_char_traits.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/constexpr_char_traits.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/constexpr_char_traits.hpp (original)
+++ libcxx/trunk/test/support/constexpr_char_traits.hpp (removed)
@@ -1,138 +0,0 @@
-// -*- C++ -*-
-//===-------------------- constexpr_char_traits ---------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _CONSTEXPR_CHAR_TRAITS
-#define _CONSTEXPR_CHAR_TRAITS
-
-#include <string>
-#include <cassert>
-
-#include "test_macros.h"
-
-template <class _CharT>
-struct constexpr_char_traits
-{
-    typedef _CharT    char_type;
-    typedef int       int_type;
-    typedef std::streamoff off_type;
-    typedef std::streampos pos_type;
-    typedef std::mbstate_t state_type;
-
-    static TEST_CONSTEXPR_CXX14 void assign(char_type& __c1, const char_type& __c2) TEST_NOEXCEPT
-        {__c1 = __c2;}
-
-    static TEST_CONSTEXPR bool eq(char_type __c1, char_type __c2) TEST_NOEXCEPT
-        {return __c1 == __c2;}
-
-    static TEST_CONSTEXPR  bool lt(char_type __c1, char_type __c2) TEST_NOEXCEPT
-        {return __c1 < __c2;}
-
-    static TEST_CONSTEXPR_CXX14 int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
-    static TEST_CONSTEXPR_CXX14 size_t           length(const char_type* __s);
-    static TEST_CONSTEXPR_CXX14 const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
-    static TEST_CONSTEXPR_CXX14 char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
-    static TEST_CONSTEXPR_CXX14 char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
-    static TEST_CONSTEXPR_CXX14 char_type*       assign(char_type* __s, size_t __n, char_type __a);
-
-    static TEST_CONSTEXPR int_type  not_eof(int_type __c) TEST_NOEXCEPT
-        {return eq_int_type(__c, eof()) ? ~eof() : __c;}
-
-    static TEST_CONSTEXPR char_type to_char_type(int_type __c) TEST_NOEXCEPT
-        {return char_type(__c);}
-
-    static TEST_CONSTEXPR int_type  to_int_type(char_type __c) TEST_NOEXCEPT
-        {return int_type(__c);}
-
-    static TEST_CONSTEXPR bool      eq_int_type(int_type __c1, int_type __c2) TEST_NOEXCEPT
-        {return __c1 == __c2;}
-
-    static TEST_CONSTEXPR int_type  eof() TEST_NOEXCEPT
-        {return int_type(EOF);}
-};
-
-
-template <class _CharT>
-TEST_CONSTEXPR_CXX14 int
-constexpr_char_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
-{
-    for (; __n; --__n, ++__s1, ++__s2)
-    {
-        if (lt(*__s1, *__s2))
-            return -1;
-        if (lt(*__s2, *__s1))
-            return 1;
-    }
-    return 0;
-}
-
-template <class _CharT>
-TEST_CONSTEXPR_CXX14 size_t
-constexpr_char_traits<_CharT>::length(const char_type* __s)
-{
-    size_t __len = 0;
-    for (; !eq(*__s, char_type(0)); ++__s)
-        ++__len;
-    return __len;
-}
-
-template <class _CharT>
-TEST_CONSTEXPR_CXX14 const _CharT*
-constexpr_char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a)
-{
-    for (; __n; --__n)
-    {
-        if (eq(*__s, __a))
-            return __s;
-        ++__s;
-    }
-    return 0;
-}
-
-template <class _CharT>
-TEST_CONSTEXPR_CXX14 _CharT*
-constexpr_char_traits<_CharT>::move(char_type* __s1, const char_type* __s2, size_t __n)
-{
-    char_type* __r = __s1;
-    if (__s1 < __s2)
-    {
-        for (; __n; --__n, ++__s1, ++__s2)
-            assign(*__s1, *__s2);
-    }
-    else if (__s2 < __s1)
-    {
-        __s1 += __n;
-        __s2 += __n;
-        for (; __n; --__n)
-            assign(*--__s1, *--__s2);
-    }
-    return __r;
-}
-
-template <class _CharT>
-TEST_CONSTEXPR_CXX14 _CharT*
-constexpr_char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n)
-{
-    assert(__s2 < __s1 || __s2 >= __s1+__n);
-    char_type* __r = __s1;
-    for (; __n; --__n, ++__s1, ++__s2)
-        assign(*__s1, *__s2);
-    return __r;
-}
-
-template <class _CharT>
-TEST_CONSTEXPR_CXX14 _CharT*
-constexpr_char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)
-{
-    char_type* __r = __s;
-    for (; __n; --__n, ++__s)
-        assign(*__s, __a);
-    return __r;
-}
-
-#endif // _CONSTEXPR_CHAR_TRAITS

Added: libcxx/trunk/test/support/container_debug_tests.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/container_debug_tests.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/container_debug_tests.h (added)
+++ libcxx/trunk/test/support/container_debug_tests.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,359 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef TEST_SUPPORT_CONTAINER_DEBUG_TESTS_H
+#define TEST_SUPPORT_CONTAINER_DEBUG_TESTS_H
+
+#include <ciso646>
+#ifndef _LIBCPP_VERSION
+#error This header may only be used for libc++ tests"
+#endif
+
+#ifndef _LIBCPP_DEBUG
+#error _LIBCPP_DEBUG must be defined before including this header
+#endif
+
+#include <__debug>
+#include <utility>
+#include <cstddef>
+#include <cstdlib>
+#include <cassert>
+#include <string>
+#include <sstream>
+#include <iostream>
+
+#include "test_macros.h"
+#include "debug_mode_helper.h"
+#include "assert_checkpoint.h"
+#include "test_allocator.h"
+
+// These test make use of 'if constexpr'.
+#if TEST_STD_VER <= 14
+#error This header may only be used in C++17 and greater
+#endif
+
+#ifndef __cpp_if_constexpr
+#error These tests require if constexpr
+#endif
+
+
+namespace IteratorDebugChecks {
+
+enum ContainerType {
+  CT_None,
+  CT_String,
+  CT_Vector,
+  CT_VectorBool,
+  CT_List,
+  CT_Deque,
+  CT_ForwardList,
+  CT_Map,
+  CT_Set,
+  CT_MultiMap,
+  CT_MultiSet,
+  CT_UnorderedMap,
+  CT_UnorderedSet,
+  CT_UnorderedMultiMap,
+  CT_UnorderedMultiSet
+};
+
+constexpr bool isSequential(ContainerType CT) {
+  return CT_Vector >= CT && CT_ForwardList <= CT;
+}
+
+constexpr bool isAssociative(ContainerType CT) {
+  return CT_Map >= CT && CT_MultiSet <= CT;
+}
+
+constexpr bool isUnordered(ContainerType CT) {
+  return CT_UnorderedMap >= CT && CT_UnorderedMultiSet <= CT;
+}
+
+constexpr bool isSet(ContainerType CT) {
+  return CT == CT_Set
+      || CT == CT_MultiSet
+      || CT == CT_UnorderedSet
+      || CT == CT_UnorderedMultiSet;
+}
+
+constexpr bool isMap(ContainerType CT) {
+  return CT == CT_Map
+      || CT == CT_MultiMap
+      || CT == CT_UnorderedMap
+      || CT == CT_UnorderedMultiMap;
+}
+
+constexpr bool isMulti(ContainerType CT) {
+  return CT == CT_MultiMap
+      || CT == CT_MultiSet
+      || CT == CT_UnorderedMultiMap
+      || CT == CT_UnorderedMultiSet;
+}
+
+template <class Container, class ValueType = typename Container::value_type>
+struct ContainerDebugHelper {
+  static_assert(std::is_constructible<ValueType, int>::value,
+                "must be constructible from int");
+
+  static ValueType makeValueType(int val = 0, int = 0) {
+    return ValueType(val);
+  }
+};
+
+template <class Container>
+struct ContainerDebugHelper<Container, char> {
+  static char makeValueType(int = 0, int = 0) {
+    return 'A';
+  }
+};
+
+template <class Container, class Key, class Value>
+struct ContainerDebugHelper<Container, std::pair<const Key, Value> > {
+  using ValueType = std::pair<const Key, Value>;
+  static_assert(std::is_constructible<Key, int>::value,
+                "must be constructible from int");
+  static_assert(std::is_constructible<Value, int>::value,
+                "must be constructible from int");
+
+  static ValueType makeValueType(int key = 0, int val = 0) {
+    return ValueType(key, val);
+  }
+};
+
+template <class Container, ContainerType CT,
+    class Helper = ContainerDebugHelper<Container> >
+struct BasicContainerChecks {
+  using value_type = typename Container::value_type;
+  using iterator = typename Container::iterator;
+  using const_iterator = typename Container::const_iterator;
+  using allocator_type = typename Container::allocator_type;
+  using traits = std::iterator_traits<iterator>;
+  using category = typename traits::iterator_category;
+
+  static_assert(std::is_same<test_allocator<value_type>, allocator_type>::value,
+                "the container must use a test allocator");
+
+  static constexpr bool IsBiDir =
+      std::is_convertible<category, std::bidirectional_iterator_tag>::value;
+
+ public:
+  static void run() {
+    run_iterator_tests();
+    run_container_tests();
+    run_allocator_aware_tests();
+  }
+
+  static void run_iterator_tests() {
+    TestNullIterators<iterator>();
+    TestNullIterators<const_iterator>();
+    if constexpr (IsBiDir) { DecrementBegin(); }
+    IncrementEnd();
+    DerefEndIterator();
+  }
+
+  static void run_container_tests() {
+    CopyInvalidatesIterators();
+    MoveInvalidatesIterators();
+    if constexpr (CT != CT_ForwardList) {
+      EraseIter();
+      EraseIterIter();
+    }
+  }
+
+  static void run_allocator_aware_tests() {
+    SwapNonEqualAllocators();
+    if constexpr (CT != CT_ForwardList ) {
+      // FIXME: This should work for both forward_list and string
+      SwapInvalidatesIterators();
+    }
+  }
+
+  static Container makeContainer(int size, allocator_type A = allocator_type()) {
+    Container C(A);
+    if constexpr (CT == CT_ForwardList) {
+      for (int i = 0; i < size; ++i)
+        C.insert_after(C.before_begin(), Helper::makeValueType(i));
+    } else {
+      for (int i = 0; i < size; ++i)
+        C.insert(C.end(), Helper::makeValueType(i));
+      assert(C.size() == static_cast<std::size_t>(size));
+    }
+    return C;
+  }
+
+  static value_type makeValueType(int value) {
+    return Helper::makeValueType(value);
+  }
+
+ private:
+  // Iterator tests
+  template <class Iter>
+  static void TestNullIterators() {
+    CHECKPOINT("testing null iterator");
+    Iter it;
+    EXPECT_DEATH( ++it );
+    EXPECT_DEATH( it++ );
+    EXPECT_DEATH( *it );
+    if constexpr (CT != CT_VectorBool) {
+      EXPECT_DEATH( it.operator->() );
+    }
+    if constexpr (IsBiDir) {
+      EXPECT_DEATH( --it );
+      EXPECT_DEATH( it-- );
+    }
+  }
+
+  static void DecrementBegin() {
+    CHECKPOINT("testing decrement on begin");
+    Container C = makeContainer(1);
+    iterator i = C.end();
+    const_iterator ci = C.cend();
+    --i;
+    --ci;
+    assert(i == C.begin());
+    EXPECT_DEATH( --i );
+    EXPECT_DEATH( i-- );
+    EXPECT_DEATH( --ci );
+    EXPECT_DEATH( ci-- );
+  }
+
+  static void IncrementEnd() {
+    CHECKPOINT("testing increment on end");
+    Container C = makeContainer(1);
+    iterator i = C.begin();
+    const_iterator ci = C.begin();
+    ++i;
+    ++ci;
+    assert(i == C.end());
+    EXPECT_DEATH( ++i );
+    EXPECT_DEATH( i++ );
+    EXPECT_DEATH( ++ci );
+    EXPECT_DEATH( ci++ );
+  }
+
+  static void DerefEndIterator() {
+    CHECKPOINT("testing deref end iterator");
+    Container C = makeContainer(1);
+    iterator i = C.begin();
+    const_iterator ci = C.cbegin();
+    (void)*i; (void)*ci;
+    if constexpr (CT != CT_VectorBool) {
+      i.operator->();
+      ci.operator->();
+    }
+    ++i; ++ci;
+    assert(i == C.end());
+    EXPECT_DEATH( *i );
+    EXPECT_DEATH( *ci );
+    if constexpr (CT != CT_VectorBool) {
+      EXPECT_DEATH( i.operator->() );
+      EXPECT_DEATH( ci.operator->() );
+    }
+  }
+
+  // Container tests
+  static void CopyInvalidatesIterators() {
+    CHECKPOINT("copy invalidates iterators");
+    Container C1 = makeContainer(3);
+    iterator i = C1.begin();
+    Container C2 = C1;
+    if constexpr (CT == CT_ForwardList) {
+      iterator i_next = i;
+      ++i_next;
+      (void)*i_next;
+      EXPECT_DEATH( C2.erase_after(i) );
+      C1.erase_after(i);
+      EXPECT_DEATH( *i_next );
+    } else {
+      EXPECT_DEATH( C2.erase(i) );
+      (void)*i;
+      C1.erase(i);
+      EXPECT_DEATH( *i );
+    }
+  }
+
+  static void MoveInvalidatesIterators() {
+    CHECKPOINT("copy move invalidates iterators");
+    Container C1 = makeContainer(3);
+    iterator i = C1.begin();
+    Container C2 = std::move(C1);
+    (void) *i;
+    if constexpr (CT == CT_ForwardList) {
+      EXPECT_DEATH( C1.erase_after(i) );
+      C2.erase_after(i);
+    } else {
+      EXPECT_DEATH( C1.erase(i) );
+      C2.erase(i);
+      EXPECT_DEATH(*i);
+    }
+  }
+
+  static void EraseIter() {
+    CHECKPOINT("testing erase invalidation");
+    Container C1 = makeContainer(2);
+    iterator it1 = C1.begin();
+    iterator it1_next = it1;
+    ++it1_next;
+    Container C2 = C1;
+    EXPECT_DEATH( C2.erase(it1) ); // wrong container
+    EXPECT_DEATH( C2.erase(C2.end()) ); // erase with end
+    C1.erase(it1_next);
+    EXPECT_DEATH( C1.erase(it1_next) ); // invalidated iterator
+    C1.erase(it1);
+    EXPECT_DEATH( C1.erase(it1) ); // invalidated iterator
+  }
+
+  static void EraseIterIter() {
+    CHECKPOINT("testing erase iter iter invalidation");
+    Container C1 = makeContainer(2);
+    iterator it1 = C1.begin();
+    iterator it1_next = it1;
+    ++it1_next;
+    Container C2 = C1;
+    iterator it2 = C2.begin();
+    iterator it2_next = it2;
+    ++it2_next;
+    EXPECT_DEATH( C2.erase(it1, it1_next) ); // begin from wrong container
+    EXPECT_DEATH( C2.erase(it1, it2_next) ); // end   from wrong container
+    EXPECT_DEATH( C2.erase(it2, it1_next) ); // both  from wrong container
+    C2.erase(it2, it2_next);
+  }
+
+  // Allocator aware tests
+  static void SwapInvalidatesIterators() {
+    CHECKPOINT("testing swap invalidates iterators");
+    Container C1 = makeContainer(3);
+    Container C2 = makeContainer(3);
+    iterator it1 = C1.begin();
+    iterator it2 = C2.begin();
+    swap(C1, C2);
+    EXPECT_DEATH( C1.erase(it1) );
+    if (CT == CT_String) {
+      EXPECT_DEATH(C1.erase(it2));
+    } else
+      C1.erase(it2);
+    //C2.erase(it1);
+    EXPECT_DEATH( C1.erase(it1) );
+  }
+
+  static void SwapNonEqualAllocators() {
+    CHECKPOINT("testing swap with non-equal allocators");
+    Container C1 = makeContainer(3, allocator_type(1));
+    Container C2 = makeContainer(1, allocator_type(2));
+    Container C3 = makeContainer(2, allocator_type(2));
+    swap(C2, C3);
+    EXPECT_DEATH( swap(C1, C2) );
+  }
+
+ private:
+  BasicContainerChecks() = delete;
+};
+
+} // namespace IteratorDebugChecks
+
+#endif // TEST_SUPPORT_CONTAINER_DEBUG_TESTS_H

Removed: libcxx/trunk/test/support/container_debug_tests.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/container_debug_tests.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/container_debug_tests.hpp (original)
+++ libcxx/trunk/test/support/container_debug_tests.hpp (removed)
@@ -1,359 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TEST_SUPPORT_CONTAINER_DEBUG_TESTS_H
-#define TEST_SUPPORT_CONTAINER_DEBUG_TESTS_H
-
-#include <ciso646>
-#ifndef _LIBCPP_VERSION
-#error This header may only be used for libc++ tests"
-#endif
-
-#ifndef _LIBCPP_DEBUG
-#error _LIBCPP_DEBUG must be defined before including this header
-#endif
-
-#include <__debug>
-#include <utility>
-#include <cstddef>
-#include <cstdlib>
-#include <cassert>
-#include <string>
-#include <sstream>
-#include <iostream>
-
-#include "test_macros.h"
-#include "debug_mode_helper.h"
-#include "assert_checkpoint.h"
-#include "test_allocator.h"
-
-// These test make use of 'if constexpr'.
-#if TEST_STD_VER <= 14
-#error This header may only be used in C++17 and greater
-#endif
-
-#ifndef __cpp_if_constexpr
-#error These tests require if constexpr
-#endif
-
-
-namespace IteratorDebugChecks {
-
-enum ContainerType {
-  CT_None,
-  CT_String,
-  CT_Vector,
-  CT_VectorBool,
-  CT_List,
-  CT_Deque,
-  CT_ForwardList,
-  CT_Map,
-  CT_Set,
-  CT_MultiMap,
-  CT_MultiSet,
-  CT_UnorderedMap,
-  CT_UnorderedSet,
-  CT_UnorderedMultiMap,
-  CT_UnorderedMultiSet
-};
-
-constexpr bool isSequential(ContainerType CT) {
-  return CT_Vector >= CT && CT_ForwardList <= CT;
-}
-
-constexpr bool isAssociative(ContainerType CT) {
-  return CT_Map >= CT && CT_MultiSet <= CT;
-}
-
-constexpr bool isUnordered(ContainerType CT) {
-  return CT_UnorderedMap >= CT && CT_UnorderedMultiSet <= CT;
-}
-
-constexpr bool isSet(ContainerType CT) {
-  return CT == CT_Set
-      || CT == CT_MultiSet
-      || CT == CT_UnorderedSet
-      || CT == CT_UnorderedMultiSet;
-}
-
-constexpr bool isMap(ContainerType CT) {
-  return CT == CT_Map
-      || CT == CT_MultiMap
-      || CT == CT_UnorderedMap
-      || CT == CT_UnorderedMultiMap;
-}
-
-constexpr bool isMulti(ContainerType CT) {
-  return CT == CT_MultiMap
-      || CT == CT_MultiSet
-      || CT == CT_UnorderedMultiMap
-      || CT == CT_UnorderedMultiSet;
-}
-
-template <class Container, class ValueType = typename Container::value_type>
-struct ContainerDebugHelper {
-  static_assert(std::is_constructible<ValueType, int>::value,
-                "must be constructible from int");
-
-  static ValueType makeValueType(int val = 0, int = 0) {
-    return ValueType(val);
-  }
-};
-
-template <class Container>
-struct ContainerDebugHelper<Container, char> {
-  static char makeValueType(int = 0, int = 0) {
-    return 'A';
-  }
-};
-
-template <class Container, class Key, class Value>
-struct ContainerDebugHelper<Container, std::pair<const Key, Value> > {
-  using ValueType = std::pair<const Key, Value>;
-  static_assert(std::is_constructible<Key, int>::value,
-                "must be constructible from int");
-  static_assert(std::is_constructible<Value, int>::value,
-                "must be constructible from int");
-
-  static ValueType makeValueType(int key = 0, int val = 0) {
-    return ValueType(key, val);
-  }
-};
-
-template <class Container, ContainerType CT,
-    class Helper = ContainerDebugHelper<Container> >
-struct BasicContainerChecks {
-  using value_type = typename Container::value_type;
-  using iterator = typename Container::iterator;
-  using const_iterator = typename Container::const_iterator;
-  using allocator_type = typename Container::allocator_type;
-  using traits = std::iterator_traits<iterator>;
-  using category = typename traits::iterator_category;
-
-  static_assert(std::is_same<test_allocator<value_type>, allocator_type>::value,
-                "the container must use a test allocator");
-
-  static constexpr bool IsBiDir =
-      std::is_convertible<category, std::bidirectional_iterator_tag>::value;
-
- public:
-  static void run() {
-    run_iterator_tests();
-    run_container_tests();
-    run_allocator_aware_tests();
-  }
-
-  static void run_iterator_tests() {
-    TestNullIterators<iterator>();
-    TestNullIterators<const_iterator>();
-    if constexpr (IsBiDir) { DecrementBegin(); }
-    IncrementEnd();
-    DerefEndIterator();
-  }
-
-  static void run_container_tests() {
-    CopyInvalidatesIterators();
-    MoveInvalidatesIterators();
-    if constexpr (CT != CT_ForwardList) {
-      EraseIter();
-      EraseIterIter();
-    }
-  }
-
-  static void run_allocator_aware_tests() {
-    SwapNonEqualAllocators();
-    if constexpr (CT != CT_ForwardList ) {
-      // FIXME: This should work for both forward_list and string
-      SwapInvalidatesIterators();
-    }
-  }
-
-  static Container makeContainer(int size, allocator_type A = allocator_type()) {
-    Container C(A);
-    if constexpr (CT == CT_ForwardList) {
-      for (int i = 0; i < size; ++i)
-        C.insert_after(C.before_begin(), Helper::makeValueType(i));
-    } else {
-      for (int i = 0; i < size; ++i)
-        C.insert(C.end(), Helper::makeValueType(i));
-      assert(C.size() == static_cast<std::size_t>(size));
-    }
-    return C;
-  }
-
-  static value_type makeValueType(int value) {
-    return Helper::makeValueType(value);
-  }
-
- private:
-  // Iterator tests
-  template <class Iter>
-  static void TestNullIterators() {
-    CHECKPOINT("testing null iterator");
-    Iter it;
-    EXPECT_DEATH( ++it );
-    EXPECT_DEATH( it++ );
-    EXPECT_DEATH( *it );
-    if constexpr (CT != CT_VectorBool) {
-      EXPECT_DEATH( it.operator->() );
-    }
-    if constexpr (IsBiDir) {
-      EXPECT_DEATH( --it );
-      EXPECT_DEATH( it-- );
-    }
-  }
-
-  static void DecrementBegin() {
-    CHECKPOINT("testing decrement on begin");
-    Container C = makeContainer(1);
-    iterator i = C.end();
-    const_iterator ci = C.cend();
-    --i;
-    --ci;
-    assert(i == C.begin());
-    EXPECT_DEATH( --i );
-    EXPECT_DEATH( i-- );
-    EXPECT_DEATH( --ci );
-    EXPECT_DEATH( ci-- );
-  }
-
-  static void IncrementEnd() {
-    CHECKPOINT("testing increment on end");
-    Container C = makeContainer(1);
-    iterator i = C.begin();
-    const_iterator ci = C.begin();
-    ++i;
-    ++ci;
-    assert(i == C.end());
-    EXPECT_DEATH( ++i );
-    EXPECT_DEATH( i++ );
-    EXPECT_DEATH( ++ci );
-    EXPECT_DEATH( ci++ );
-  }
-
-  static void DerefEndIterator() {
-    CHECKPOINT("testing deref end iterator");
-    Container C = makeContainer(1);
-    iterator i = C.begin();
-    const_iterator ci = C.cbegin();
-    (void)*i; (void)*ci;
-    if constexpr (CT != CT_VectorBool) {
-      i.operator->();
-      ci.operator->();
-    }
-    ++i; ++ci;
-    assert(i == C.end());
-    EXPECT_DEATH( *i );
-    EXPECT_DEATH( *ci );
-    if constexpr (CT != CT_VectorBool) {
-      EXPECT_DEATH( i.operator->() );
-      EXPECT_DEATH( ci.operator->() );
-    }
-  }
-
-  // Container tests
-  static void CopyInvalidatesIterators() {
-    CHECKPOINT("copy invalidates iterators");
-    Container C1 = makeContainer(3);
-    iterator i = C1.begin();
-    Container C2 = C1;
-    if constexpr (CT == CT_ForwardList) {
-      iterator i_next = i;
-      ++i_next;
-      (void)*i_next;
-      EXPECT_DEATH( C2.erase_after(i) );
-      C1.erase_after(i);
-      EXPECT_DEATH( *i_next );
-    } else {
-      EXPECT_DEATH( C2.erase(i) );
-      (void)*i;
-      C1.erase(i);
-      EXPECT_DEATH( *i );
-    }
-  }
-
-  static void MoveInvalidatesIterators() {
-    CHECKPOINT("copy move invalidates iterators");
-    Container C1 = makeContainer(3);
-    iterator i = C1.begin();
-    Container C2 = std::move(C1);
-    (void) *i;
-    if constexpr (CT == CT_ForwardList) {
-      EXPECT_DEATH( C1.erase_after(i) );
-      C2.erase_after(i);
-    } else {
-      EXPECT_DEATH( C1.erase(i) );
-      C2.erase(i);
-      EXPECT_DEATH(*i);
-    }
-  }
-
-  static void EraseIter() {
-    CHECKPOINT("testing erase invalidation");
-    Container C1 = makeContainer(2);
-    iterator it1 = C1.begin();
-    iterator it1_next = it1;
-    ++it1_next;
-    Container C2 = C1;
-    EXPECT_DEATH( C2.erase(it1) ); // wrong container
-    EXPECT_DEATH( C2.erase(C2.end()) ); // erase with end
-    C1.erase(it1_next);
-    EXPECT_DEATH( C1.erase(it1_next) ); // invalidated iterator
-    C1.erase(it1);
-    EXPECT_DEATH( C1.erase(it1) ); // invalidated iterator
-  }
-
-  static void EraseIterIter() {
-    CHECKPOINT("testing erase iter iter invalidation");
-    Container C1 = makeContainer(2);
-    iterator it1 = C1.begin();
-    iterator it1_next = it1;
-    ++it1_next;
-    Container C2 = C1;
-    iterator it2 = C2.begin();
-    iterator it2_next = it2;
-    ++it2_next;
-    EXPECT_DEATH( C2.erase(it1, it1_next) ); // begin from wrong container
-    EXPECT_DEATH( C2.erase(it1, it2_next) ); // end   from wrong container
-    EXPECT_DEATH( C2.erase(it2, it1_next) ); // both  from wrong container
-    C2.erase(it2, it2_next);
-  }
-
-  // Allocator aware tests
-  static void SwapInvalidatesIterators() {
-    CHECKPOINT("testing swap invalidates iterators");
-    Container C1 = makeContainer(3);
-    Container C2 = makeContainer(3);
-    iterator it1 = C1.begin();
-    iterator it2 = C2.begin();
-    swap(C1, C2);
-    EXPECT_DEATH( C1.erase(it1) );
-    if (CT == CT_String) {
-      EXPECT_DEATH(C1.erase(it2));
-    } else
-      C1.erase(it2);
-    //C2.erase(it1);
-    EXPECT_DEATH( C1.erase(it1) );
-  }
-
-  static void SwapNonEqualAllocators() {
-    CHECKPOINT("testing swap with non-equal allocators");
-    Container C1 = makeContainer(3, allocator_type(1));
-    Container C2 = makeContainer(1, allocator_type(2));
-    Container C3 = makeContainer(2, allocator_type(2));
-    swap(C2, C3);
-    EXPECT_DEATH( swap(C1, C2) );
-  }
-
- private:
-  BasicContainerChecks() = delete;
-};
-
-} // namespace IteratorDebugChecks
-
-#endif // TEST_SUPPORT_CONTAINER_DEBUG_TESTS_H

Added: libcxx/trunk/test/support/controlled_allocators.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/controlled_allocators.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/controlled_allocators.h (added)
+++ libcxx/trunk/test/support/controlled_allocators.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,501 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SUPPORT_CONTROLLED_ALLOCATORS_H
+#define SUPPORT_CONTROLLED_ALLOCATORS_H
+
+#include <memory>
+#include <type_traits>
+#include <cstddef>
+#include <cstdlib>
+#include <cstring>
+#include <cstdint>
+#include <cassert>
+#include "test_macros.h"
+#include "type_id.h"
+
+#if TEST_STD_VER < 11
+#error This header requires C++11 or greater
+#endif
+
+struct AllocController;
+    // 'AllocController' is a concrete type that instruments and controls the
+    // behavior of test allocators.
+
+template <class T, size_t ID = 0>
+class CountingAllocator;
+    // 'CountingAllocator' is an basic implementation of the 'Allocator'
+    // requirements that use the 'AllocController' interface.
+
+template <class T>
+class MinAlignAllocator;
+    // 'MinAlignAllocator' is an instrumented test type which implements the
+    // 'Allocator' requirements. 'MinAlignAllocator' ensures that it *never*
+    // returns a pointer to over-aligned storage. For example
+    // 'MinAlignPointer<char>{}.allocate(...)' will never a 2-byte aligned
+    // pointer.
+
+template <class T>
+class NullAllocator;
+    // 'NullAllocator' is an instrumented test type which implements the
+    // 'Allocator' requirements except that 'allocator' and 'deallocate' are
+    // nops.
+
+
+#define DISALLOW_COPY(Type) \
+  Type(Type const&) = delete; \
+  Type& operator=(Type const&) = delete
+
+constexpr std::size_t MaxAlignV = alignof(std::max_align_t);
+
+struct TestException {};
+
+struct AllocController {
+    int copy_constructed = 0;
+    int move_constructed = 0;
+
+    int alive = 0;
+    int alloc_count = 0;
+    int dealloc_count = 0;
+    int is_equal_count = 0;
+
+    std::size_t alive_size;
+    std::size_t allocated_size;
+    std::size_t deallocated_size;
+
+    std::size_t last_size = 0;
+    std::size_t last_align = 0;
+    void * last_pointer = 0;
+
+    std::size_t last_alloc_size = 0;
+    std::size_t last_alloc_align = 0;
+    void * last_alloc_pointer = nullptr;
+
+    std::size_t last_dealloc_size = 0;
+    std::size_t last_dealloc_align = 0;
+    void * last_dealloc_pointer = nullptr;
+
+    bool throw_on_alloc = false;
+
+    int construct_called = 0;
+    void *last_construct_pointer = nullptr;
+    TypeID const* last_construct_alloc = nullptr;
+    TypeID const* last_construct_type = nullptr;
+    TypeID const* last_construct_args = nullptr;
+
+    int destroy_called = 0;
+    void *last_destroy_pointer = nullptr;
+    TypeID const* last_destroy_alloc = nullptr;
+    TypeID const* last_destroy_type = nullptr;
+
+    AllocController() = default;
+
+    void countAlloc(void* p, size_t s, size_t a) {
+        ++alive;
+        ++alloc_count;
+        alive_size += s;
+        allocated_size += s;
+        last_pointer = last_alloc_pointer = p;
+        last_size = last_alloc_size = s;
+        last_align = last_alloc_align = a;
+    }
+
+    void countDealloc(void* p, size_t s, size_t a) {
+        --alive;
+        ++dealloc_count;
+        alive_size -= s;
+        deallocated_size += s;
+        last_pointer = last_dealloc_pointer = p;
+        last_size = last_dealloc_size = s;
+        last_align = last_dealloc_align = a;
+    }
+
+    template <class ...Args, class Alloc, class Tp>
+    void countConstruct(Alloc const&, Tp *p) {
+      ++construct_called;
+      last_construct_pointer = p;
+      last_construct_alloc = &makeTypeID<Alloc>();
+      last_construct_type = &makeTypeID<Tp>();
+      last_construct_args = &makeArgumentID<Args...>();
+    }
+
+    template <class Alloc, class Tp>
+    void countDestroy(Alloc const&, Tp *p) {
+      ++destroy_called;
+      last_destroy_alloc = &makeTypeID<Alloc>();
+      last_destroy_type = &makeTypeID<Tp>();
+      last_destroy_pointer = p;
+    }
+
+    void reset() { std::memset(this, 0, sizeof(*this)); }
+    void resetConstructDestroy() {
+      construct_called = 0;
+      last_construct_pointer = nullptr;
+      last_construct_alloc = last_construct_args = last_construct_type = nullptr;
+      destroy_called = 0;
+      last_destroy_alloc = nullptr;
+      last_destroy_pointer = nullptr;
+    }
+public:
+    bool checkAlloc(void* p, size_t s, size_t a) const {
+        return p == last_alloc_pointer &&
+               s == last_alloc_size &&
+               a == last_alloc_align;
+    }
+
+    bool checkAlloc(void* p, size_t s) const {
+        return p == last_alloc_pointer &&
+               s == last_alloc_size;
+    }
+
+    bool checkAllocAtLeast(void* p, size_t s, size_t a) const {
+        return p == last_alloc_pointer &&
+               s <= last_alloc_size &&
+               a <= last_alloc_align;
+    }
+
+    bool checkAllocAtLeast(void* p, size_t s) const {
+        return p == last_alloc_pointer &&
+               s <= last_alloc_size;
+    }
+
+    bool checkDealloc(void* p, size_t s, size_t a) const {
+        return p == last_dealloc_pointer &&
+               s == last_dealloc_size &&
+               a == last_dealloc_align;
+    }
+
+    bool checkDealloc(void* p, size_t s) const {
+        return p == last_dealloc_pointer &&
+               s == last_dealloc_size;
+    }
+
+    bool checkDeallocMatchesAlloc() const {
+        return last_dealloc_pointer == last_alloc_pointer &&
+               last_dealloc_size == last_alloc_size &&
+               last_dealloc_align == last_alloc_align;
+    }
+
+    template <class ...Args, class Alloc, class Tp>
+    bool checkConstruct(Alloc const&, Tp *p) const {
+      auto expectAlloc = &makeTypeID<Alloc>();
+      auto expectTp = &makeTypeID<Tp>();
+      auto expectArgs = &makeArgumentID<Args...>();
+      return last_construct_pointer == p &&
+          COMPARE_TYPEID(last_construct_alloc, expectAlloc) &&
+          COMPARE_TYPEID(last_construct_type, expectTp) &&
+          COMPARE_TYPEID(last_construct_args, expectArgs);
+    }
+
+    template <class Alloc, class Tp>
+    bool checkDestroy(Alloc const&, Tp *p) const {
+      return last_destroy_pointer == p &&
+          last_destroy_alloc == &makeTypeID<Alloc>() &&
+          last_destroy_type == &makeTypeID<Tp>();
+    }
+
+    bool checkDestroyMatchesConstruct() const {
+      return last_destroy_pointer == last_construct_pointer &&
+          last_destroy_type == last_construct_type;
+    }
+
+    void countIsEqual() {
+        ++is_equal_count;
+    }
+
+    bool checkIsEqualCalledEq(int n) const {
+        return is_equal_count == n;
+    }
+private:
+  DISALLOW_COPY(AllocController);
+};
+
+template <class T, size_t ID>
+class CountingAllocator
+{
+public:
+    typedef T value_type;
+    typedef T* pointer;
+
+    template <class U>
+    struct rebind { using other = CountingAllocator<U, ID>; };
+
+    CountingAllocator() = delete;
+    explicit CountingAllocator(AllocController& PP) : P(&PP) {}
+
+    CountingAllocator(CountingAllocator const& other) : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    CountingAllocator(CountingAllocator&& other) : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    template <class U>
+    CountingAllocator(CountingAllocator<U, ID> const& other) TEST_NOEXCEPT : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    template <class U>
+    CountingAllocator(CountingAllocator<U, ID>&& other) TEST_NOEXCEPT : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    T* allocate(std::size_t n)
+    {
+        void* ret = ::operator new(n*sizeof(T));
+        P->countAlloc(ret, n*sizeof(T), alignof(T));
+        return static_cast<T*>(ret);
+    }
+
+    void deallocate(T* p, std::size_t n)
+    {
+        void* vp = static_cast<void*>(p);
+        P->countDealloc(vp, n*sizeof(T), alignof(T));
+        ::operator delete(vp);
+    }
+
+    template <class U, class ...Args>
+    void construct(U *p, Args&&... args) {
+      ::new ((void*)p) U(std::forward<Args>(args)...);
+      P->countConstruct<Args&&...>(*this, p);
+    }
+
+    template <class U>
+    void destroy(U* p) {
+      p->~U();
+      P->countDestroy(*this, p);
+    }
+
+    AllocController& getController() const { return *P; }
+
+private:
+    template <class Tp, size_t XID> friend class CountingAllocator;
+    AllocController *P;
+};
+
+
+template <size_t ID>
+class CountingAllocator<void, ID>
+{
+public:
+    typedef void* pointer;
+    typedef const void* const_pointer;
+    typedef void value_type;
+
+    template <class U>
+    struct rebind { using other = CountingAllocator<U, ID>; };
+
+    CountingAllocator() = delete;
+    explicit CountingAllocator(AllocController& PP) : P(&PP) {}
+
+    CountingAllocator(CountingAllocator const& other) : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    CountingAllocator(CountingAllocator&& other) : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    template <class U>
+    CountingAllocator(CountingAllocator<U, ID> const& other) TEST_NOEXCEPT : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    template <class U>
+    CountingAllocator(CountingAllocator<U, ID>&& other) TEST_NOEXCEPT : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    void construct(...) = delete;
+    void destroy(void*) = delete;
+
+    AllocController& getController() const { return *P; }
+
+private:
+    template <class Tp, size_t> friend class CountingAllocator;
+    AllocController *P;
+};
+
+template <class T, class U, size_t ID>
+inline bool operator==(CountingAllocator<T, ID> const& x,
+                       CountingAllocator<U, ID> const& y) {
+    return &x.getController() == &y.getController();
+}
+
+template <class T, class U, size_t ID>
+inline bool operator!=(CountingAllocator<T, ID> const& x,
+                       CountingAllocator<U, ID> const& y) {
+    return !(x == y);
+}
+
+template <class T>
+class MinAlignedAllocator
+{
+public:
+    typedef T value_type;
+    typedef T* pointer;
+
+    MinAlignedAllocator() = delete;
+
+    explicit MinAlignedAllocator(AllocController& R) : P(&R) {}
+
+    MinAlignedAllocator(MinAlignedAllocator const& other) : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    MinAlignedAllocator(MinAlignedAllocator&& other) : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    template <class U>
+    MinAlignedAllocator(MinAlignedAllocator<U> const& other) TEST_NOEXCEPT : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    template <class U>
+    MinAlignedAllocator(MinAlignedAllocator<U>&& other) TEST_NOEXCEPT : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    T* allocate(std::size_t n) {
+        char* aligned_ptr = (char*)::operator new(alloc_size(n*sizeof(T)));
+        assert(is_max_aligned(aligned_ptr));
+
+        char* unaligned_ptr = aligned_ptr + alignof(T);
+        assert(is_min_aligned(unaligned_ptr));
+
+        P->countAlloc(unaligned_ptr, n * sizeof(T), alignof(T));
+
+        return ((T*)unaligned_ptr);
+    }
+
+    void deallocate(T* p, std::size_t n) {
+        assert(is_min_aligned(p));
+
+        char* aligned_ptr = ((char*)p) - alignof(T);
+        assert(is_max_aligned(aligned_ptr));
+
+        P->countDealloc(p, n*sizeof(T), alignof(T));
+
+        return ::operator delete(static_cast<void*>(aligned_ptr));
+    }
+
+    template <class U, class ...Args>
+    void construct(U *p, Args&&... args) {
+      auto *c = ::new ((void*)p) U(std::forward<Args>(args)...);
+      P->countConstruct<Args&&...>(*this, p);
+    }
+
+    template <class U>
+    void destroy(U* p) {
+      p->~U();
+      P->countDestroy(*this, p);
+    }
+
+    AllocController& getController() const { return *P; }
+
+private:
+    static const std::size_t BlockSize = alignof(std::max_align_t);
+
+    static std::size_t alloc_size(std::size_t s) {
+        std::size_t bytes = (s + BlockSize - 1) & ~(BlockSize - 1);
+        bytes += BlockSize;
+        assert(bytes % BlockSize == 0);
+        return bytes;
+    }
+
+    static bool is_max_aligned(void* p) {
+        return reinterpret_cast<std::uintptr_t>(p) % BlockSize == 0;
+    }
+
+    static bool is_min_aligned(void* p) {
+        if (alignof(T) == BlockSize) {
+            return is_max_aligned(p);
+        } else {
+            return reinterpret_cast<std::uintptr_t>(p) % BlockSize == alignof(T);
+        }
+    }
+
+    template <class Tp> friend class MinAlignedAllocator;
+    mutable AllocController *P;
+};
+
+
+template <class T, class U>
+inline bool operator==(MinAlignedAllocator<T> const& x,
+                       MinAlignedAllocator<U> const& y) {
+    return &x.getController() == &y.getController();
+}
+
+template <class T, class U>
+inline bool operator!=(MinAlignedAllocator<T> const& x,
+                       MinAlignedAllocator<U> const& y) {
+    return !(x == y);
+}
+
+template <class T>
+class NullAllocator
+{
+public:
+    typedef T value_type;
+    typedef T* pointer;
+    NullAllocator() = delete;
+    explicit NullAllocator(AllocController& PP) : P(&PP) {}
+
+    NullAllocator(NullAllocator const& other) : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    NullAllocator(NullAllocator&& other) : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    template <class U>
+    NullAllocator(NullAllocator<U> const& other) TEST_NOEXCEPT : P(other.P) {
+        P->copy_constructed += 1;
+    }
+
+    template <class U>
+    NullAllocator(NullAllocator<U>&& other) TEST_NOEXCEPT : P(other.P) {
+        P->move_constructed += 1;
+    }
+
+    T* allocate(std::size_t n)
+    {
+        P->countAlloc(nullptr, n*sizeof(T), alignof(T));
+        return nullptr;
+    }
+
+    void deallocate(T* p, std::size_t n)
+    {
+        void* vp = static_cast<void*>(p);
+        P->countDealloc(vp, n*sizeof(T), alignof(T));
+    }
+
+    AllocController& getController() const { return *P; }
+
+private:
+    template <class Tp> friend class NullAllocator;
+    AllocController *P;
+};
+
+template <class T, class U>
+inline bool operator==(NullAllocator<T> const& x,
+                       NullAllocator<U> const& y) {
+    return &x.getController() == &y.getController();
+}
+
+template <class T, class U>
+inline bool operator!=(NullAllocator<T> const& x,
+                       NullAllocator<U> const& y) {
+    return !(x == y);
+}
+
+
+#endif /* SUPPORT_CONTROLLED_ALLOCATORS_H */

Removed: libcxx/trunk/test/support/controlled_allocators.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/controlled_allocators.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/controlled_allocators.hpp (original)
+++ libcxx/trunk/test/support/controlled_allocators.hpp (removed)
@@ -1,501 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SUPPORT_CONTROLLED_ALLOCATORS_HPP
-#define SUPPORT_CONTROLLED_ALLOCATORS_HPP
-
-#include <memory>
-#include <type_traits>
-#include <cstddef>
-#include <cstdlib>
-#include <cstring>
-#include <cstdint>
-#include <cassert>
-#include "test_macros.h"
-#include "type_id.h"
-
-#if TEST_STD_VER < 11
-#error This header requires C++11 or greater
-#endif
-
-struct AllocController;
-    // 'AllocController' is a concrete type that instruments and controls the
-    // behavior of test allocators.
-
-template <class T, size_t ID = 0>
-class CountingAllocator;
-    // 'CountingAllocator' is an basic implementation of the 'Allocator'
-    // requirements that use the 'AllocController' interface.
-
-template <class T>
-class MinAlignAllocator;
-    // 'MinAlignAllocator' is an instrumented test type which implements the
-    // 'Allocator' requirements. 'MinAlignAllocator' ensures that it *never*
-    // returns a pointer to over-aligned storage. For example
-    // 'MinAlignPointer<char>{}.allocate(...)' will never a 2-byte aligned
-    // pointer.
-
-template <class T>
-class NullAllocator;
-    // 'NullAllocator' is an instrumented test type which implements the
-    // 'Allocator' requirements except that 'allocator' and 'deallocate' are
-    // nops.
-
-
-#define DISALLOW_COPY(Type) \
-  Type(Type const&) = delete; \
-  Type& operator=(Type const&) = delete
-
-constexpr std::size_t MaxAlignV = alignof(std::max_align_t);
-
-struct TestException {};
-
-struct AllocController {
-    int copy_constructed = 0;
-    int move_constructed = 0;
-
-    int alive = 0;
-    int alloc_count = 0;
-    int dealloc_count = 0;
-    int is_equal_count = 0;
-
-    std::size_t alive_size;
-    std::size_t allocated_size;
-    std::size_t deallocated_size;
-
-    std::size_t last_size = 0;
-    std::size_t last_align = 0;
-    void * last_pointer = 0;
-
-    std::size_t last_alloc_size = 0;
-    std::size_t last_alloc_align = 0;
-    void * last_alloc_pointer = nullptr;
-
-    std::size_t last_dealloc_size = 0;
-    std::size_t last_dealloc_align = 0;
-    void * last_dealloc_pointer = nullptr;
-
-    bool throw_on_alloc = false;
-
-    int construct_called = 0;
-    void *last_construct_pointer = nullptr;
-    TypeID const* last_construct_alloc = nullptr;
-    TypeID const* last_construct_type = nullptr;
-    TypeID const* last_construct_args = nullptr;
-
-    int destroy_called = 0;
-    void *last_destroy_pointer = nullptr;
-    TypeID const* last_destroy_alloc = nullptr;
-    TypeID const* last_destroy_type = nullptr;
-
-    AllocController() = default;
-
-    void countAlloc(void* p, size_t s, size_t a) {
-        ++alive;
-        ++alloc_count;
-        alive_size += s;
-        allocated_size += s;
-        last_pointer = last_alloc_pointer = p;
-        last_size = last_alloc_size = s;
-        last_align = last_alloc_align = a;
-    }
-
-    void countDealloc(void* p, size_t s, size_t a) {
-        --alive;
-        ++dealloc_count;
-        alive_size -= s;
-        deallocated_size += s;
-        last_pointer = last_dealloc_pointer = p;
-        last_size = last_dealloc_size = s;
-        last_align = last_dealloc_align = a;
-    }
-
-    template <class ...Args, class Alloc, class Tp>
-    void countConstruct(Alloc const&, Tp *p) {
-      ++construct_called;
-      last_construct_pointer = p;
-      last_construct_alloc = &makeTypeID<Alloc>();
-      last_construct_type = &makeTypeID<Tp>();
-      last_construct_args = &makeArgumentID<Args...>();
-    }
-
-    template <class Alloc, class Tp>
-    void countDestroy(Alloc const&, Tp *p) {
-      ++destroy_called;
-      last_destroy_alloc = &makeTypeID<Alloc>();
-      last_destroy_type = &makeTypeID<Tp>();
-      last_destroy_pointer = p;
-    }
-
-    void reset() { std::memset(this, 0, sizeof(*this)); }
-    void resetConstructDestroy() {
-      construct_called = 0;
-      last_construct_pointer = nullptr;
-      last_construct_alloc = last_construct_args = last_construct_type = nullptr;
-      destroy_called = 0;
-      last_destroy_alloc = nullptr;
-      last_destroy_pointer = nullptr;
-    }
-public:
-    bool checkAlloc(void* p, size_t s, size_t a) const {
-        return p == last_alloc_pointer &&
-               s == last_alloc_size &&
-               a == last_alloc_align;
-    }
-
-    bool checkAlloc(void* p, size_t s) const {
-        return p == last_alloc_pointer &&
-               s == last_alloc_size;
-    }
-
-    bool checkAllocAtLeast(void* p, size_t s, size_t a) const {
-        return p == last_alloc_pointer &&
-               s <= last_alloc_size &&
-               a <= last_alloc_align;
-    }
-
-    bool checkAllocAtLeast(void* p, size_t s) const {
-        return p == last_alloc_pointer &&
-               s <= last_alloc_size;
-    }
-
-    bool checkDealloc(void* p, size_t s, size_t a) const {
-        return p == last_dealloc_pointer &&
-               s == last_dealloc_size &&
-               a == last_dealloc_align;
-    }
-
-    bool checkDealloc(void* p, size_t s) const {
-        return p == last_dealloc_pointer &&
-               s == last_dealloc_size;
-    }
-
-    bool checkDeallocMatchesAlloc() const {
-        return last_dealloc_pointer == last_alloc_pointer &&
-               last_dealloc_size == last_alloc_size &&
-               last_dealloc_align == last_alloc_align;
-    }
-
-    template <class ...Args, class Alloc, class Tp>
-    bool checkConstruct(Alloc const&, Tp *p) const {
-      auto expectAlloc = &makeTypeID<Alloc>();
-      auto expectTp = &makeTypeID<Tp>();
-      auto expectArgs = &makeArgumentID<Args...>();
-      return last_construct_pointer == p &&
-          COMPARE_TYPEID(last_construct_alloc, expectAlloc) &&
-          COMPARE_TYPEID(last_construct_type, expectTp) &&
-          COMPARE_TYPEID(last_construct_args, expectArgs);
-    }
-
-    template <class Alloc, class Tp>
-    bool checkDestroy(Alloc const&, Tp *p) const {
-      return last_destroy_pointer == p &&
-          last_destroy_alloc == &makeTypeID<Alloc>() &&
-          last_destroy_type == &makeTypeID<Tp>();
-    }
-
-    bool checkDestroyMatchesConstruct() const {
-      return last_destroy_pointer == last_construct_pointer &&
-          last_destroy_type == last_construct_type;
-    }
-
-    void countIsEqual() {
-        ++is_equal_count;
-    }
-
-    bool checkIsEqualCalledEq(int n) const {
-        return is_equal_count == n;
-    }
-private:
-  DISALLOW_COPY(AllocController);
-};
-
-template <class T, size_t ID>
-class CountingAllocator
-{
-public:
-    typedef T value_type;
-    typedef T* pointer;
-
-    template <class U>
-    struct rebind { using other = CountingAllocator<U, ID>; };
-
-    CountingAllocator() = delete;
-    explicit CountingAllocator(AllocController& PP) : P(&PP) {}
-
-    CountingAllocator(CountingAllocator const& other) : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    CountingAllocator(CountingAllocator&& other) : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    template <class U>
-    CountingAllocator(CountingAllocator<U, ID> const& other) TEST_NOEXCEPT : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    template <class U>
-    CountingAllocator(CountingAllocator<U, ID>&& other) TEST_NOEXCEPT : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    T* allocate(std::size_t n)
-    {
-        void* ret = ::operator new(n*sizeof(T));
-        P->countAlloc(ret, n*sizeof(T), alignof(T));
-        return static_cast<T*>(ret);
-    }
-
-    void deallocate(T* p, std::size_t n)
-    {
-        void* vp = static_cast<void*>(p);
-        P->countDealloc(vp, n*sizeof(T), alignof(T));
-        ::operator delete(vp);
-    }
-
-    template <class U, class ...Args>
-    void construct(U *p, Args&&... args) {
-      ::new ((void*)p) U(std::forward<Args>(args)...);
-      P->countConstruct<Args&&...>(*this, p);
-    }
-
-    template <class U>
-    void destroy(U* p) {
-      p->~U();
-      P->countDestroy(*this, p);
-    }
-
-    AllocController& getController() const { return *P; }
-
-private:
-    template <class Tp, size_t XID> friend class CountingAllocator;
-    AllocController *P;
-};
-
-
-template <size_t ID>
-class CountingAllocator<void, ID>
-{
-public:
-    typedef void* pointer;
-    typedef const void* const_pointer;
-    typedef void value_type;
-
-    template <class U>
-    struct rebind { using other = CountingAllocator<U, ID>; };
-
-    CountingAllocator() = delete;
-    explicit CountingAllocator(AllocController& PP) : P(&PP) {}
-
-    CountingAllocator(CountingAllocator const& other) : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    CountingAllocator(CountingAllocator&& other) : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    template <class U>
-    CountingAllocator(CountingAllocator<U, ID> const& other) TEST_NOEXCEPT : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    template <class U>
-    CountingAllocator(CountingAllocator<U, ID>&& other) TEST_NOEXCEPT : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    void construct(...) = delete;
-    void destroy(void*) = delete;
-
-    AllocController& getController() const { return *P; }
-
-private:
-    template <class Tp, size_t> friend class CountingAllocator;
-    AllocController *P;
-};
-
-template <class T, class U, size_t ID>
-inline bool operator==(CountingAllocator<T, ID> const& x,
-                       CountingAllocator<U, ID> const& y) {
-    return &x.getController() == &y.getController();
-}
-
-template <class T, class U, size_t ID>
-inline bool operator!=(CountingAllocator<T, ID> const& x,
-                       CountingAllocator<U, ID> const& y) {
-    return !(x == y);
-}
-
-template <class T>
-class MinAlignedAllocator
-{
-public:
-    typedef T value_type;
-    typedef T* pointer;
-
-    MinAlignedAllocator() = delete;
-
-    explicit MinAlignedAllocator(AllocController& R) : P(&R) {}
-
-    MinAlignedAllocator(MinAlignedAllocator const& other) : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    MinAlignedAllocator(MinAlignedAllocator&& other) : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    template <class U>
-    MinAlignedAllocator(MinAlignedAllocator<U> const& other) TEST_NOEXCEPT : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    template <class U>
-    MinAlignedAllocator(MinAlignedAllocator<U>&& other) TEST_NOEXCEPT : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    T* allocate(std::size_t n) {
-        char* aligned_ptr = (char*)::operator new(alloc_size(n*sizeof(T)));
-        assert(is_max_aligned(aligned_ptr));
-
-        char* unaligned_ptr = aligned_ptr + alignof(T);
-        assert(is_min_aligned(unaligned_ptr));
-
-        P->countAlloc(unaligned_ptr, n * sizeof(T), alignof(T));
-
-        return ((T*)unaligned_ptr);
-    }
-
-    void deallocate(T* p, std::size_t n) {
-        assert(is_min_aligned(p));
-
-        char* aligned_ptr = ((char*)p) - alignof(T);
-        assert(is_max_aligned(aligned_ptr));
-
-        P->countDealloc(p, n*sizeof(T), alignof(T));
-
-        return ::operator delete(static_cast<void*>(aligned_ptr));
-    }
-
-    template <class U, class ...Args>
-    void construct(U *p, Args&&... args) {
-      auto *c = ::new ((void*)p) U(std::forward<Args>(args)...);
-      P->countConstruct<Args&&...>(*this, p);
-    }
-
-    template <class U>
-    void destroy(U* p) {
-      p->~U();
-      P->countDestroy(*this, p);
-    }
-
-    AllocController& getController() const { return *P; }
-
-private:
-    static const std::size_t BlockSize = alignof(std::max_align_t);
-
-    static std::size_t alloc_size(std::size_t s) {
-        std::size_t bytes = (s + BlockSize - 1) & ~(BlockSize - 1);
-        bytes += BlockSize;
-        assert(bytes % BlockSize == 0);
-        return bytes;
-    }
-
-    static bool is_max_aligned(void* p) {
-        return reinterpret_cast<std::uintptr_t>(p) % BlockSize == 0;
-    }
-
-    static bool is_min_aligned(void* p) {
-        if (alignof(T) == BlockSize) {
-            return is_max_aligned(p);
-        } else {
-            return reinterpret_cast<std::uintptr_t>(p) % BlockSize == alignof(T);
-        }
-    }
-
-    template <class Tp> friend class MinAlignedAllocator;
-    mutable AllocController *P;
-};
-
-
-template <class T, class U>
-inline bool operator==(MinAlignedAllocator<T> const& x,
-                       MinAlignedAllocator<U> const& y) {
-    return &x.getController() == &y.getController();
-}
-
-template <class T, class U>
-inline bool operator!=(MinAlignedAllocator<T> const& x,
-                       MinAlignedAllocator<U> const& y) {
-    return !(x == y);
-}
-
-template <class T>
-class NullAllocator
-{
-public:
-    typedef T value_type;
-    typedef T* pointer;
-    NullAllocator() = delete;
-    explicit NullAllocator(AllocController& PP) : P(&PP) {}
-
-    NullAllocator(NullAllocator const& other) : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    NullAllocator(NullAllocator&& other) : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    template <class U>
-    NullAllocator(NullAllocator<U> const& other) TEST_NOEXCEPT : P(other.P) {
-        P->copy_constructed += 1;
-    }
-
-    template <class U>
-    NullAllocator(NullAllocator<U>&& other) TEST_NOEXCEPT : P(other.P) {
-        P->move_constructed += 1;
-    }
-
-    T* allocate(std::size_t n)
-    {
-        P->countAlloc(nullptr, n*sizeof(T), alignof(T));
-        return nullptr;
-    }
-
-    void deallocate(T* p, std::size_t n)
-    {
-        void* vp = static_cast<void*>(p);
-        P->countDealloc(vp, n*sizeof(T), alignof(T));
-    }
-
-    AllocController& getController() const { return *P; }
-
-private:
-    template <class Tp> friend class NullAllocator;
-    AllocController *P;
-};
-
-template <class T, class U>
-inline bool operator==(NullAllocator<T> const& x,
-                       NullAllocator<U> const& y) {
-    return &x.getController() == &y.getController();
-}
-
-template <class T, class U>
-inline bool operator!=(NullAllocator<T> const& x,
-                       NullAllocator<U> const& y) {
-    return !(x == y);
-}
-
-
-#endif /* SUPPORT_CONTROLLED_ALLOCATORS_HPP */

Added: libcxx/trunk/test/support/count_new.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/count_new.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/count_new.h (added)
+++ libcxx/trunk/test/support/count_new.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,485 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef COUNT_NEW_H
+#define COUNT_NEW_H
+
+# include <cstdlib>
+# include <cassert>
+# include <new>
+
+#include "test_macros.h"
+
+#if defined(TEST_HAS_SANITIZERS)
+#define DISABLE_NEW_COUNT
+#endif
+
+namespace detail
+{
+   TEST_NORETURN
+   inline void throw_bad_alloc_helper() {
+#ifndef TEST_HAS_NO_EXCEPTIONS
+       throw std::bad_alloc();
+#else
+       std::abort();
+#endif
+   }
+}
+
+class MemCounter
+{
+public:
+    // Make MemCounter super hard to accidentally construct or copy.
+    class MemCounterCtorArg_ {};
+    explicit MemCounter(MemCounterCtorArg_) { reset(); }
+
+private:
+    MemCounter(MemCounter const &);
+    MemCounter & operator=(MemCounter const &);
+
+public:
+    // All checks return true when disable_checking is enabled.
+    static const bool disable_checking;
+
+    // Disallow any allocations from occurring. Useful for testing that
+    // code doesn't perform any allocations.
+    bool disable_allocations;
+
+    // number of allocations to throw after. Default (unsigned)-1. If
+    // throw_after has the default value it will never be decremented.
+    static const unsigned never_throw_value = static_cast<unsigned>(-1);
+    unsigned throw_after;
+
+    int outstanding_new;
+    int new_called;
+    int delete_called;
+    int aligned_new_called;
+    int aligned_delete_called;
+    std::size_t last_new_size;
+    std::size_t last_new_align;
+    std::size_t last_delete_align;
+
+    int outstanding_array_new;
+    int new_array_called;
+    int delete_array_called;
+    int aligned_new_array_called;
+    int aligned_delete_array_called;
+    std::size_t last_new_array_size;
+    std::size_t last_new_array_align;
+    std::size_t last_delete_array_align;
+
+public:
+    void newCalled(std::size_t s)
+    {
+        assert(disable_allocations == false);
+        assert(s);
+        if (throw_after == 0) {
+            throw_after = never_throw_value;
+            detail::throw_bad_alloc_helper();
+        } else if (throw_after != never_throw_value) {
+            --throw_after;
+        }
+        ++new_called;
+        ++outstanding_new;
+        last_new_size = s;
+    }
+
+    void alignedNewCalled(std::size_t s, std::size_t a) {
+      newCalled(s);
+      ++aligned_new_called;
+      last_new_align = a;
+    }
+
+    void deleteCalled(void * p)
+    {
+        assert(p);
+        --outstanding_new;
+        ++delete_called;
+    }
+
+    void alignedDeleteCalled(void *p, std::size_t a) {
+      deleteCalled(p);
+      ++aligned_delete_called;
+      last_delete_align = a;
+    }
+
+    void newArrayCalled(std::size_t s)
+    {
+        assert(disable_allocations == false);
+        assert(s);
+        if (throw_after == 0) {
+            throw_after = never_throw_value;
+            detail::throw_bad_alloc_helper();
+        } else {
+            // don't decrement throw_after here. newCalled will end up doing that.
+        }
+        ++outstanding_array_new;
+        ++new_array_called;
+        last_new_array_size = s;
+    }
+
+    void alignedNewArrayCalled(std::size_t s, std::size_t a) {
+      newArrayCalled(s);
+      ++aligned_new_array_called;
+      last_new_array_align = a;
+    }
+
+    void deleteArrayCalled(void * p)
+    {
+        assert(p);
+        --outstanding_array_new;
+        ++delete_array_called;
+    }
+
+    void alignedDeleteArrayCalled(void * p, std::size_t a) {
+      deleteArrayCalled(p);
+      ++aligned_delete_array_called;
+      last_delete_array_align = a;
+    }
+
+    void disableAllocations()
+    {
+        disable_allocations = true;
+    }
+
+    void enableAllocations()
+    {
+        disable_allocations = false;
+    }
+
+    void reset()
+    {
+        disable_allocations = false;
+        throw_after = never_throw_value;
+
+        outstanding_new = 0;
+        new_called = 0;
+        delete_called = 0;
+        aligned_new_called = 0;
+        aligned_delete_called = 0;
+        last_new_size = 0;
+        last_new_align = 0;
+
+        outstanding_array_new = 0;
+        new_array_called = 0;
+        delete_array_called = 0;
+        aligned_new_array_called = 0;
+        aligned_delete_array_called = 0;
+        last_new_array_size = 0;
+        last_new_array_align = 0;
+    }
+
+public:
+    bool checkOutstandingNewEq(int n) const
+    {
+        return disable_checking || n == outstanding_new;
+    }
+
+    bool checkOutstandingNewNotEq(int n) const
+    {
+        return disable_checking || n != outstanding_new;
+    }
+
+    bool checkNewCalledEq(int n) const
+    {
+        return disable_checking || n == new_called;
+    }
+
+    bool checkNewCalledNotEq(int n) const
+    {
+        return disable_checking || n != new_called;
+    }
+
+    bool checkNewCalledGreaterThan(int n) const
+    {
+        return disable_checking || new_called > n;
+    }
+
+    bool checkDeleteCalledEq(int n) const
+    {
+        return disable_checking || n == delete_called;
+    }
+
+    bool checkDeleteCalledNotEq(int n) const
+    {
+        return disable_checking || n != delete_called;
+    }
+
+    bool checkAlignedNewCalledEq(int n) const
+    {
+        return disable_checking || n == aligned_new_called;
+    }
+
+    bool checkAlignedNewCalledNotEq(int n) const
+    {
+        return disable_checking || n != aligned_new_called;
+    }
+
+    bool checkAlignedNewCalledGreaterThan(int n) const
+    {
+        return disable_checking || aligned_new_called > n;
+    }
+
+    bool checkAlignedDeleteCalledEq(int n) const
+    {
+        return disable_checking || n == aligned_delete_called;
+    }
+
+    bool checkAlignedDeleteCalledNotEq(int n) const
+    {
+        return disable_checking || n != aligned_delete_called;
+    }
+
+    bool checkLastNewSizeEq(std::size_t n) const
+    {
+        return disable_checking || n == last_new_size;
+    }
+
+    bool checkLastNewSizeNotEq(std::size_t n) const
+    {
+        return disable_checking || n != last_new_size;
+    }
+
+    bool checkLastNewAlignEq(std::size_t n) const
+    {
+        return disable_checking || n == last_new_align;
+    }
+
+    bool checkLastNewAlignNotEq(std::size_t n) const
+    {
+        return disable_checking || n != last_new_align;
+    }
+
+    bool checkLastDeleteAlignEq(std::size_t n) const
+    {
+        return disable_checking || n == last_delete_align;
+    }
+
+    bool checkLastDeleteAlignNotEq(std::size_t n) const
+    {
+        return disable_checking || n != last_delete_align;
+    }
+
+    bool checkOutstandingArrayNewEq(int n) const
+    {
+        return disable_checking || n == outstanding_array_new;
+    }
+
+    bool checkOutstandingArrayNewNotEq(int n) const
+    {
+        return disable_checking || n != outstanding_array_new;
+    }
+
+    bool checkNewArrayCalledEq(int n) const
+    {
+        return disable_checking || n == new_array_called;
+    }
+
+    bool checkNewArrayCalledNotEq(int n) const
+    {
+        return disable_checking || n != new_array_called;
+    }
+
+    bool checkDeleteArrayCalledEq(int n) const
+    {
+        return disable_checking || n == delete_array_called;
+    }
+
+    bool checkDeleteArrayCalledNotEq(int n) const
+    {
+        return disable_checking || n != delete_array_called;
+    }
+
+    bool checkAlignedNewArrayCalledEq(int n) const
+    {
+        return disable_checking || n == aligned_new_array_called;
+    }
+
+    bool checkAlignedNewArrayCalledNotEq(int n) const
+    {
+        return disable_checking || n != aligned_new_array_called;
+    }
+
+    bool checkAlignedNewArrayCalledGreaterThan(int n) const
+    {
+        return disable_checking || aligned_new_array_called > n;
+    }
+
+    bool checkAlignedDeleteArrayCalledEq(int n) const
+    {
+        return disable_checking || n == aligned_delete_array_called;
+    }
+
+    bool checkAlignedDeleteArrayCalledNotEq(int n) const
+    {
+        return disable_checking || n != aligned_delete_array_called;
+    }
+
+    bool checkLastNewArraySizeEq(std::size_t n) const
+    {
+        return disable_checking || n == last_new_array_size;
+    }
+
+    bool checkLastNewArraySizeNotEq(std::size_t n) const
+    {
+        return disable_checking || n != last_new_array_size;
+    }
+
+    bool checkLastNewArrayAlignEq(std::size_t n) const
+    {
+        return disable_checking || n == last_new_array_align;
+    }
+
+    bool checkLastNewArrayAlignNotEq(std::size_t n) const
+    {
+        return disable_checking || n != last_new_array_align;
+    }
+};
+
+#ifdef DISABLE_NEW_COUNT
+  const bool MemCounter::disable_checking = true;
+#else
+  const bool MemCounter::disable_checking = false;
+#endif
+
+inline MemCounter* getGlobalMemCounter() {
+  static MemCounter counter((MemCounter::MemCounterCtorArg_()));
+  return &counter;
+}
+
+MemCounter &globalMemCounter = *getGlobalMemCounter();
+
+#ifndef DISABLE_NEW_COUNT
+void* operator new(std::size_t s) TEST_THROW_SPEC(std::bad_alloc)
+{
+    getGlobalMemCounter()->newCalled(s);
+    void* ret = std::malloc(s);
+    if (ret == nullptr)
+        detail::throw_bad_alloc_helper();
+    return ret;
+}
+
+void  operator delete(void* p) TEST_NOEXCEPT
+{
+    getGlobalMemCounter()->deleteCalled(p);
+    std::free(p);
+}
+
+void* operator new[](std::size_t s) TEST_THROW_SPEC(std::bad_alloc)
+{
+    getGlobalMemCounter()->newArrayCalled(s);
+    return operator new(s);
+}
+
+void operator delete[](void* p) TEST_NOEXCEPT
+{
+    getGlobalMemCounter()->deleteArrayCalled(p);
+    operator delete(p);
+}
+
+#ifndef TEST_HAS_NO_ALIGNED_ALLOCATION
+#if defined(_LIBCPP_MSVCRT_LIKE) || \
+  (!defined(_LIBCPP_VERSION) && defined(_WIN32))
+#define USE_ALIGNED_ALLOC
+#endif
+
+void* operator new(std::size_t s, std::align_val_t av) TEST_THROW_SPEC(std::bad_alloc) {
+  const std::size_t a = static_cast<std::size_t>(av);
+  getGlobalMemCounter()->alignedNewCalled(s, a);
+  void *ret;
+#ifdef USE_ALIGNED_ALLOC
+  ret = _aligned_malloc(s, a);
+#else
+  posix_memalign(&ret, a, s);
+#endif
+  if (ret == nullptr)
+    detail::throw_bad_alloc_helper();
+  return ret;
+}
+
+void operator delete(void *p, std::align_val_t av) TEST_NOEXCEPT {
+  const std::size_t a = static_cast<std::size_t>(av);
+  getGlobalMemCounter()->alignedDeleteCalled(p, a);
+  if (p) {
+#ifdef USE_ALIGNED_ALLOC
+    ::_aligned_free(p);
+#else
+    ::free(p);
+#endif
+  }
+}
+
+void* operator new[](std::size_t s, std::align_val_t av) TEST_THROW_SPEC(std::bad_alloc) {
+  const std::size_t a = static_cast<std::size_t>(av);
+  getGlobalMemCounter()->alignedNewArrayCalled(s, a);
+  return operator new(s, av);
+}
+
+void operator delete[](void *p, std::align_val_t av) TEST_NOEXCEPT {
+  const std::size_t a = static_cast<std::size_t>(av);
+  getGlobalMemCounter()->alignedDeleteArrayCalled(p, a);
+  return operator delete(p, av);
+}
+
+#endif // TEST_HAS_NO_ALIGNED_ALLOCATION
+
+#endif // DISABLE_NEW_COUNT
+
+struct DisableAllocationGuard {
+    explicit DisableAllocationGuard(bool disable = true) : m_disabled(disable)
+    {
+        // Don't re-disable if already disabled.
+        if (globalMemCounter.disable_allocations == true) m_disabled = false;
+        if (m_disabled) globalMemCounter.disableAllocations();
+    }
+
+    void release() {
+        if (m_disabled) globalMemCounter.enableAllocations();
+        m_disabled = false;
+    }
+
+    ~DisableAllocationGuard() {
+        release();
+    }
+
+private:
+    bool m_disabled;
+
+    DisableAllocationGuard(DisableAllocationGuard const&);
+    DisableAllocationGuard& operator=(DisableAllocationGuard const&);
+};
+
+struct RequireAllocationGuard {
+    explicit RequireAllocationGuard(std::size_t RequireAtLeast = 1)
+            : m_req_alloc(RequireAtLeast),
+              m_new_count_on_init(globalMemCounter.new_called),
+              m_outstanding_new_on_init(globalMemCounter.outstanding_new),
+              m_exactly(false)
+    {
+    }
+
+    void requireAtLeast(std::size_t N) { m_req_alloc = N; m_exactly = false; }
+    void requireExactly(std::size_t N) { m_req_alloc = N; m_exactly = true; }
+
+    ~RequireAllocationGuard() {
+        assert(globalMemCounter.checkOutstandingNewEq(static_cast<int>(m_outstanding_new_on_init)));
+        std::size_t Expect = m_new_count_on_init + m_req_alloc;
+        assert(globalMemCounter.checkNewCalledEq(static_cast<int>(Expect)) ||
+               (!m_exactly && globalMemCounter.checkNewCalledGreaterThan(static_cast<int>(Expect))));
+    }
+
+private:
+    std::size_t m_req_alloc;
+    const std::size_t m_new_count_on_init;
+    const std::size_t m_outstanding_new_on_init;
+    bool m_exactly;
+    RequireAllocationGuard(RequireAllocationGuard const&);
+    RequireAllocationGuard& operator=(RequireAllocationGuard const&);
+};
+
+#endif /* COUNT_NEW_H */

Removed: libcxx/trunk/test/support/count_new.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/count_new.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/count_new.hpp (original)
+++ libcxx/trunk/test/support/count_new.hpp (removed)
@@ -1,485 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef COUNT_NEW_HPP
-#define COUNT_NEW_HPP
-
-# include <cstdlib>
-# include <cassert>
-# include <new>
-
-#include "test_macros.h"
-
-#if defined(TEST_HAS_SANITIZERS)
-#define DISABLE_NEW_COUNT
-#endif
-
-namespace detail
-{
-   TEST_NORETURN
-   inline void throw_bad_alloc_helper() {
-#ifndef TEST_HAS_NO_EXCEPTIONS
-       throw std::bad_alloc();
-#else
-       std::abort();
-#endif
-   }
-}
-
-class MemCounter
-{
-public:
-    // Make MemCounter super hard to accidentally construct or copy.
-    class MemCounterCtorArg_ {};
-    explicit MemCounter(MemCounterCtorArg_) { reset(); }
-
-private:
-    MemCounter(MemCounter const &);
-    MemCounter & operator=(MemCounter const &);
-
-public:
-    // All checks return true when disable_checking is enabled.
-    static const bool disable_checking;
-
-    // Disallow any allocations from occurring. Useful for testing that
-    // code doesn't perform any allocations.
-    bool disable_allocations;
-
-    // number of allocations to throw after. Default (unsigned)-1. If
-    // throw_after has the default value it will never be decremented.
-    static const unsigned never_throw_value = static_cast<unsigned>(-1);
-    unsigned throw_after;
-
-    int outstanding_new;
-    int new_called;
-    int delete_called;
-    int aligned_new_called;
-    int aligned_delete_called;
-    std::size_t last_new_size;
-    std::size_t last_new_align;
-    std::size_t last_delete_align;
-
-    int outstanding_array_new;
-    int new_array_called;
-    int delete_array_called;
-    int aligned_new_array_called;
-    int aligned_delete_array_called;
-    std::size_t last_new_array_size;
-    std::size_t last_new_array_align;
-    std::size_t last_delete_array_align;
-
-public:
-    void newCalled(std::size_t s)
-    {
-        assert(disable_allocations == false);
-        assert(s);
-        if (throw_after == 0) {
-            throw_after = never_throw_value;
-            detail::throw_bad_alloc_helper();
-        } else if (throw_after != never_throw_value) {
-            --throw_after;
-        }
-        ++new_called;
-        ++outstanding_new;
-        last_new_size = s;
-    }
-
-    void alignedNewCalled(std::size_t s, std::size_t a) {
-      newCalled(s);
-      ++aligned_new_called;
-      last_new_align = a;
-    }
-
-    void deleteCalled(void * p)
-    {
-        assert(p);
-        --outstanding_new;
-        ++delete_called;
-    }
-
-    void alignedDeleteCalled(void *p, std::size_t a) {
-      deleteCalled(p);
-      ++aligned_delete_called;
-      last_delete_align = a;
-    }
-
-    void newArrayCalled(std::size_t s)
-    {
-        assert(disable_allocations == false);
-        assert(s);
-        if (throw_after == 0) {
-            throw_after = never_throw_value;
-            detail::throw_bad_alloc_helper();
-        } else {
-            // don't decrement throw_after here. newCalled will end up doing that.
-        }
-        ++outstanding_array_new;
-        ++new_array_called;
-        last_new_array_size = s;
-    }
-
-    void alignedNewArrayCalled(std::size_t s, std::size_t a) {
-      newArrayCalled(s);
-      ++aligned_new_array_called;
-      last_new_array_align = a;
-    }
-
-    void deleteArrayCalled(void * p)
-    {
-        assert(p);
-        --outstanding_array_new;
-        ++delete_array_called;
-    }
-
-    void alignedDeleteArrayCalled(void * p, std::size_t a) {
-      deleteArrayCalled(p);
-      ++aligned_delete_array_called;
-      last_delete_array_align = a;
-    }
-
-    void disableAllocations()
-    {
-        disable_allocations = true;
-    }
-
-    void enableAllocations()
-    {
-        disable_allocations = false;
-    }
-
-    void reset()
-    {
-        disable_allocations = false;
-        throw_after = never_throw_value;
-
-        outstanding_new = 0;
-        new_called = 0;
-        delete_called = 0;
-        aligned_new_called = 0;
-        aligned_delete_called = 0;
-        last_new_size = 0;
-        last_new_align = 0;
-
-        outstanding_array_new = 0;
-        new_array_called = 0;
-        delete_array_called = 0;
-        aligned_new_array_called = 0;
-        aligned_delete_array_called = 0;
-        last_new_array_size = 0;
-        last_new_array_align = 0;
-    }
-
-public:
-    bool checkOutstandingNewEq(int n) const
-    {
-        return disable_checking || n == outstanding_new;
-    }
-
-    bool checkOutstandingNewNotEq(int n) const
-    {
-        return disable_checking || n != outstanding_new;
-    }
-
-    bool checkNewCalledEq(int n) const
-    {
-        return disable_checking || n == new_called;
-    }
-
-    bool checkNewCalledNotEq(int n) const
-    {
-        return disable_checking || n != new_called;
-    }
-
-    bool checkNewCalledGreaterThan(int n) const
-    {
-        return disable_checking || new_called > n;
-    }
-
-    bool checkDeleteCalledEq(int n) const
-    {
-        return disable_checking || n == delete_called;
-    }
-
-    bool checkDeleteCalledNotEq(int n) const
-    {
-        return disable_checking || n != delete_called;
-    }
-
-    bool checkAlignedNewCalledEq(int n) const
-    {
-        return disable_checking || n == aligned_new_called;
-    }
-
-    bool checkAlignedNewCalledNotEq(int n) const
-    {
-        return disable_checking || n != aligned_new_called;
-    }
-
-    bool checkAlignedNewCalledGreaterThan(int n) const
-    {
-        return disable_checking || aligned_new_called > n;
-    }
-
-    bool checkAlignedDeleteCalledEq(int n) const
-    {
-        return disable_checking || n == aligned_delete_called;
-    }
-
-    bool checkAlignedDeleteCalledNotEq(int n) const
-    {
-        return disable_checking || n != aligned_delete_called;
-    }
-
-    bool checkLastNewSizeEq(std::size_t n) const
-    {
-        return disable_checking || n == last_new_size;
-    }
-
-    bool checkLastNewSizeNotEq(std::size_t n) const
-    {
-        return disable_checking || n != last_new_size;
-    }
-
-    bool checkLastNewAlignEq(std::size_t n) const
-    {
-        return disable_checking || n == last_new_align;
-    }
-
-    bool checkLastNewAlignNotEq(std::size_t n) const
-    {
-        return disable_checking || n != last_new_align;
-    }
-
-    bool checkLastDeleteAlignEq(std::size_t n) const
-    {
-        return disable_checking || n == last_delete_align;
-    }
-
-    bool checkLastDeleteAlignNotEq(std::size_t n) const
-    {
-        return disable_checking || n != last_delete_align;
-    }
-
-    bool checkOutstandingArrayNewEq(int n) const
-    {
-        return disable_checking || n == outstanding_array_new;
-    }
-
-    bool checkOutstandingArrayNewNotEq(int n) const
-    {
-        return disable_checking || n != outstanding_array_new;
-    }
-
-    bool checkNewArrayCalledEq(int n) const
-    {
-        return disable_checking || n == new_array_called;
-    }
-
-    bool checkNewArrayCalledNotEq(int n) const
-    {
-        return disable_checking || n != new_array_called;
-    }
-
-    bool checkDeleteArrayCalledEq(int n) const
-    {
-        return disable_checking || n == delete_array_called;
-    }
-
-    bool checkDeleteArrayCalledNotEq(int n) const
-    {
-        return disable_checking || n != delete_array_called;
-    }
-
-    bool checkAlignedNewArrayCalledEq(int n) const
-    {
-        return disable_checking || n == aligned_new_array_called;
-    }
-
-    bool checkAlignedNewArrayCalledNotEq(int n) const
-    {
-        return disable_checking || n != aligned_new_array_called;
-    }
-
-    bool checkAlignedNewArrayCalledGreaterThan(int n) const
-    {
-        return disable_checking || aligned_new_array_called > n;
-    }
-
-    bool checkAlignedDeleteArrayCalledEq(int n) const
-    {
-        return disable_checking || n == aligned_delete_array_called;
-    }
-
-    bool checkAlignedDeleteArrayCalledNotEq(int n) const
-    {
-        return disable_checking || n != aligned_delete_array_called;
-    }
-
-    bool checkLastNewArraySizeEq(std::size_t n) const
-    {
-        return disable_checking || n == last_new_array_size;
-    }
-
-    bool checkLastNewArraySizeNotEq(std::size_t n) const
-    {
-        return disable_checking || n != last_new_array_size;
-    }
-
-    bool checkLastNewArrayAlignEq(std::size_t n) const
-    {
-        return disable_checking || n == last_new_array_align;
-    }
-
-    bool checkLastNewArrayAlignNotEq(std::size_t n) const
-    {
-        return disable_checking || n != last_new_array_align;
-    }
-};
-
-#ifdef DISABLE_NEW_COUNT
-  const bool MemCounter::disable_checking = true;
-#else
-  const bool MemCounter::disable_checking = false;
-#endif
-
-inline MemCounter* getGlobalMemCounter() {
-  static MemCounter counter((MemCounter::MemCounterCtorArg_()));
-  return &counter;
-}
-
-MemCounter &globalMemCounter = *getGlobalMemCounter();
-
-#ifndef DISABLE_NEW_COUNT
-void* operator new(std::size_t s) TEST_THROW_SPEC(std::bad_alloc)
-{
-    getGlobalMemCounter()->newCalled(s);
-    void* ret = std::malloc(s);
-    if (ret == nullptr)
-        detail::throw_bad_alloc_helper();
-    return ret;
-}
-
-void  operator delete(void* p) TEST_NOEXCEPT
-{
-    getGlobalMemCounter()->deleteCalled(p);
-    std::free(p);
-}
-
-void* operator new[](std::size_t s) TEST_THROW_SPEC(std::bad_alloc)
-{
-    getGlobalMemCounter()->newArrayCalled(s);
-    return operator new(s);
-}
-
-void operator delete[](void* p) TEST_NOEXCEPT
-{
-    getGlobalMemCounter()->deleteArrayCalled(p);
-    operator delete(p);
-}
-
-#ifndef TEST_HAS_NO_ALIGNED_ALLOCATION
-#if defined(_LIBCPP_MSVCRT_LIKE) || \
-  (!defined(_LIBCPP_VERSION) && defined(_WIN32))
-#define USE_ALIGNED_ALLOC
-#endif
-
-void* operator new(std::size_t s, std::align_val_t av) TEST_THROW_SPEC(std::bad_alloc) {
-  const std::size_t a = static_cast<std::size_t>(av);
-  getGlobalMemCounter()->alignedNewCalled(s, a);
-  void *ret;
-#ifdef USE_ALIGNED_ALLOC
-  ret = _aligned_malloc(s, a);
-#else
-  posix_memalign(&ret, a, s);
-#endif
-  if (ret == nullptr)
-    detail::throw_bad_alloc_helper();
-  return ret;
-}
-
-void operator delete(void *p, std::align_val_t av) TEST_NOEXCEPT {
-  const std::size_t a = static_cast<std::size_t>(av);
-  getGlobalMemCounter()->alignedDeleteCalled(p, a);
-  if (p) {
-#ifdef USE_ALIGNED_ALLOC
-    ::_aligned_free(p);
-#else
-    ::free(p);
-#endif
-  }
-}
-
-void* operator new[](std::size_t s, std::align_val_t av) TEST_THROW_SPEC(std::bad_alloc) {
-  const std::size_t a = static_cast<std::size_t>(av);
-  getGlobalMemCounter()->alignedNewArrayCalled(s, a);
-  return operator new(s, av);
-}
-
-void operator delete[](void *p, std::align_val_t av) TEST_NOEXCEPT {
-  const std::size_t a = static_cast<std::size_t>(av);
-  getGlobalMemCounter()->alignedDeleteArrayCalled(p, a);
-  return operator delete(p, av);
-}
-
-#endif // TEST_HAS_NO_ALIGNED_ALLOCATION
-
-#endif // DISABLE_NEW_COUNT
-
-struct DisableAllocationGuard {
-    explicit DisableAllocationGuard(bool disable = true) : m_disabled(disable)
-    {
-        // Don't re-disable if already disabled.
-        if (globalMemCounter.disable_allocations == true) m_disabled = false;
-        if (m_disabled) globalMemCounter.disableAllocations();
-    }
-
-    void release() {
-        if (m_disabled) globalMemCounter.enableAllocations();
-        m_disabled = false;
-    }
-
-    ~DisableAllocationGuard() {
-        release();
-    }
-
-private:
-    bool m_disabled;
-
-    DisableAllocationGuard(DisableAllocationGuard const&);
-    DisableAllocationGuard& operator=(DisableAllocationGuard const&);
-};
-
-struct RequireAllocationGuard {
-    explicit RequireAllocationGuard(std::size_t RequireAtLeast = 1)
-            : m_req_alloc(RequireAtLeast),
-              m_new_count_on_init(globalMemCounter.new_called),
-              m_outstanding_new_on_init(globalMemCounter.outstanding_new),
-              m_exactly(false)
-    {
-    }
-
-    void requireAtLeast(std::size_t N) { m_req_alloc = N; m_exactly = false; }
-    void requireExactly(std::size_t N) { m_req_alloc = N; m_exactly = true; }
-
-    ~RequireAllocationGuard() {
-        assert(globalMemCounter.checkOutstandingNewEq(static_cast<int>(m_outstanding_new_on_init)));
-        std::size_t Expect = m_new_count_on_init + m_req_alloc;
-        assert(globalMemCounter.checkNewCalledEq(static_cast<int>(Expect)) ||
-               (!m_exactly && globalMemCounter.checkNewCalledGreaterThan(static_cast<int>(Expect))));
-    }
-
-private:
-    std::size_t m_req_alloc;
-    const std::size_t m_new_count_on_init;
-    const std::size_t m_outstanding_new_on_init;
-    bool m_exactly;
-    RequireAllocationGuard(RequireAllocationGuard const&);
-    RequireAllocationGuard& operator=(RequireAllocationGuard const&);
-};
-
-#endif /* COUNT_NEW_HPP */

Added: libcxx/trunk/test/support/counting_predicates.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/counting_predicates.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/counting_predicates.h (added)
+++ libcxx/trunk/test/support/counting_predicates.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,52 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef TEST_SUPPORT_COUNTING_PREDICATES_H
+#define TEST_SUPPORT_COUNTING_PREDICATES_H
+
+#include <cstddef>
+
+template <typename Predicate, typename Arg>
+struct unary_counting_predicate {
+public:
+    typedef Arg argument_type;
+    typedef bool result_type;
+
+    unary_counting_predicate(Predicate p) : p_(p), count_(0) {}
+    ~unary_counting_predicate() {}
+
+    bool operator () (const Arg &a) const { ++count_; return p_(a); }
+    size_t count() const { return count_; }
+    void reset() { count_ = 0; }
+
+private:
+    Predicate p_;
+    mutable size_t count_;
+};
+
+
+template <typename Predicate, typename Arg1, typename Arg2=Arg1>
+struct binary_counting_predicate {
+public:
+    typedef Arg1 first_argument_type;
+    typedef Arg2 second_argument_type;
+    typedef bool result_type;
+
+    binary_counting_predicate ( Predicate p ) : p_(p), count_(0) {}
+    ~binary_counting_predicate() {}
+
+    bool operator () (const Arg1 &a1, const Arg2 &a2) const { ++count_; return p_(a1, a2); }
+    size_t count() const { return count_; }
+    void reset() { count_ = 0; }
+
+private:
+    Predicate p_;
+    mutable size_t count_;
+};
+
+#endif // TEST_SUPPORT_COUNTING_PREDICATES_H

Removed: libcxx/trunk/test/support/counting_predicates.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/counting_predicates.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/counting_predicates.hpp (original)
+++ libcxx/trunk/test/support/counting_predicates.hpp (removed)
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TEST_SUPPORT_COUNTING_PREDICATES_H
-#define TEST_SUPPORT_COUNTING_PREDICATES_H
-
-#include <cstddef>
-
-template <typename Predicate, typename Arg>
-struct unary_counting_predicate {
-public:
-    typedef Arg argument_type;
-    typedef bool result_type;
-
-    unary_counting_predicate(Predicate p) : p_(p), count_(0) {}
-    ~unary_counting_predicate() {}
-
-    bool operator () (const Arg &a) const { ++count_; return p_(a); }
-    size_t count() const { return count_; }
-    void reset() { count_ = 0; }
-
-private:
-    Predicate p_;
-    mutable size_t count_;
-};
-
-
-template <typename Predicate, typename Arg1, typename Arg2=Arg1>
-struct binary_counting_predicate {
-public:
-    typedef Arg1 first_argument_type;
-    typedef Arg2 second_argument_type;
-    typedef bool result_type;
-
-    binary_counting_predicate ( Predicate p ) : p_(p), count_(0) {}
-    ~binary_counting_predicate() {}
-
-    bool operator () (const Arg1 &a1, const Arg2 &a2) const { ++count_; return p_(a1, a2); }
-    size_t count() const { return count_; }
-    void reset() { count_ = 0; }
-
-private:
-    Predicate p_;
-    mutable size_t count_;
-};
-
-#endif // TEST_SUPPORT_COUNTING_PREDICATES_H

Added: libcxx/trunk/test/support/filesystem_include.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/filesystem_include.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/filesystem_include.h (added)
+++ libcxx/trunk/test/support/filesystem_include.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,13 @@
+#ifndef TEST_SUPPORT_FILESYSTEM_INCLUDE_H
+#define TEST_SUPPORT_FILESYSTEM_INCLUDE_H
+
+#include <filesystem>
+#include "test_macros.h"
+
+#if defined(_LIBCPP_VERSION) && TEST_STD_VER < 17
+namespace fs = std::__fs::filesystem;
+#else
+namespace fs = std::filesystem;
+#endif
+
+#endif

Removed: libcxx/trunk/test/support/filesystem_include.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/filesystem_include.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/filesystem_include.hpp (original)
+++ libcxx/trunk/test/support/filesystem_include.hpp (removed)
@@ -1,13 +0,0 @@
-#ifndef TEST_SUPPORT_FILESYSTEM_INCLUDE_HPP
-#define TEST_SUPPORT_FILESYSTEM_INCLUDE_HPP
-
-#include <filesystem>
-#include "test_macros.h"
-
-#if defined(_LIBCPP_VERSION) && TEST_STD_VER < 17
-namespace fs = std::__fs::filesystem;
-#else
-namespace fs = std::filesystem;
-#endif
-
-#endif

Added: libcxx/trunk/test/support/filesystem_test_helper.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/filesystem_test_helper.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/filesystem_test_helper.h (added)
+++ libcxx/trunk/test/support/filesystem_test_helper.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,557 @@
+#ifndef FILESYSTEM_TEST_HELPER_H
+#define FILESYSTEM_TEST_HELPER_H
+
+#include "filesystem_include.h"
+
+#include <unistd.h> // for ftruncate
+
+#include <cassert>
+#include <cstdio> // for printf
+#include <string>
+#include <fstream>
+#include <random>
+#include <chrono>
+#include <vector>
+#include <regex>
+
+#include "test_macros.h"
+#include "rapid-cxx-test.h"
+#include "format_string.h"
+
+// static test helpers
+
+#ifndef LIBCXX_FILESYSTEM_STATIC_TEST_ROOT
+#warning "STATIC TESTS DISABLED"
+#else // LIBCXX_FILESYSTEM_STATIC_TEST_ROOT
+
+namespace StaticEnv {
+
+inline fs::path makePath(fs::path const& p) {
+    // env_path is expected not to contain symlinks.
+    static const fs::path env_path = LIBCXX_FILESYSTEM_STATIC_TEST_ROOT;
+    return env_path / p;
+}
+
+static const fs::path Root = LIBCXX_FILESYSTEM_STATIC_TEST_ROOT;
+
+static const fs::path TestFileList[] = {
+        makePath("empty_file"),
+        makePath("non_empty_file"),
+        makePath("dir1/file1"),
+        makePath("dir1/file2")
+};
+const std::size_t TestFileListSize = sizeof(TestFileList) / sizeof(fs::path);
+
+static const fs::path TestDirList[] = {
+        makePath("dir1"),
+        makePath("dir1/dir2"),
+        makePath("dir1/dir2/dir3")
+};
+const std::size_t TestDirListSize = sizeof(TestDirList) / sizeof(fs::path);
+
+static const fs::path File          = TestFileList[0];
+static const fs::path Dir           = TestDirList[0];
+static const fs::path Dir2          = TestDirList[1];
+static const fs::path Dir3          = TestDirList[2];
+static const fs::path SymlinkToFile = makePath("symlink_to_empty_file");
+static const fs::path SymlinkToDir  = makePath("symlink_to_dir");
+static const fs::path BadSymlink    = makePath("bad_symlink");
+static const fs::path DNE           = makePath("DNE");
+static const fs::path EmptyFile     = TestFileList[0];
+static const fs::path NonEmptyFile  = TestFileList[1];
+static const fs::path CharFile      = "/dev/null"; // Hopefully this exists
+
+static const fs::path DirIterationList[] = {
+    makePath("dir1/dir2"),
+    makePath("dir1/file1"),
+    makePath("dir1/file2")
+};
+const std::size_t DirIterationListSize = sizeof(DirIterationList)
+                                        / sizeof(fs::path);
+
+static const fs::path DirIterationListDepth1[] = {
+    makePath("dir1/dir2/afile3"),
+    makePath("dir1/dir2/dir3"),
+    makePath("dir1/dir2/symlink_to_dir3"),
+    makePath("dir1/dir2/file4"),
+};
+
+static const fs::path RecDirIterationList[] = {
+    makePath("dir1/dir2"),
+    makePath("dir1/file1"),
+    makePath("dir1/file2"),
+    makePath("dir1/dir2/afile3"),
+    makePath("dir1/dir2/dir3"),
+    makePath("dir1/dir2/symlink_to_dir3"),
+    makePath("dir1/dir2/file4"),
+    makePath("dir1/dir2/dir3/file5")
+};
+
+static const fs::path RecDirFollowSymlinksIterationList[] = {
+    makePath("dir1/dir2"),
+    makePath("dir1/file1"),
+    makePath("dir1/file2"),
+    makePath("dir1/dir2/afile3"),
+    makePath("dir1/dir2/dir3"),
+    makePath("dir1/dir2/file4"),
+    makePath("dir1/dir2/dir3/file5"),
+    makePath("dir1/dir2/symlink_to_dir3"),
+    makePath("dir1/dir2/symlink_to_dir3/file5"),
+};
+
+} // namespace StaticEnv
+
+#endif // LIBCXX_FILESYSTEM_STATIC_TEST_ROOT
+
+#ifndef LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
+#warning LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT must be defined
+#else // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
+
+#ifndef LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER
+#error LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER must be defined
+#endif
+
+namespace random_utils {
+inline char to_hex(int ch) {
+  return ch < 10 ? static_cast<char>('0' + ch)
+                 : static_cast<char>('a' + (ch - 10));
+}
+
+inline char random_hex_char() {
+  static std::mt19937 rd{std::random_device{}()};
+  static std::uniform_int_distribution<int> mrand{0, 15};
+  return to_hex(mrand(rd));
+}
+
+} // namespace random_utils
+
+struct scoped_test_env
+{
+    scoped_test_env() : test_root(random_env_path())
+        { fs_helper_run(fs_make_cmd("init_test_directory", test_root)); }
+
+    ~scoped_test_env()
+        { fs_helper_run(fs_make_cmd("destroy_test_directory", test_root)); }
+
+    scoped_test_env(scoped_test_env const &) = delete;
+    scoped_test_env & operator=(scoped_test_env const &) = delete;
+
+    fs::path make_env_path(std::string p) { return sanitize_path(p); }
+
+    std::string sanitize_path(std::string raw) {
+        assert(raw.find("..") == std::string::npos);
+        std::string const& root = test_root.native();
+        if (root.compare(0, root.size(), raw, 0, root.size()) != 0) {
+            assert(raw.front() != '\\');
+            fs::path tmp(test_root);
+            tmp /= raw;
+            return std::move(const_cast<std::string&>(tmp.native()));
+        }
+        return raw;
+    }
+
+    // Purposefully using a size potentially larger than off_t here so we can
+    // test the behavior of libc++fs when it is built with _FILE_OFFSET_BITS=64
+    // but the caller is not (std::filesystem also uses uintmax_t rather than
+    // off_t). On a 32-bit system this allows us to create a file larger than
+    // 2GB.
+    std::string create_file(std::string filename, uintmax_t size = 0) {
+#if defined(__LP64__)
+        auto large_file_fopen = fopen;
+        auto large_file_ftruncate = ftruncate;
+        using large_file_offset_t = off_t;
+#else
+        auto large_file_fopen = fopen64;
+        auto large_file_ftruncate = ftruncate64;
+        using large_file_offset_t = off64_t;
+#endif
+
+        filename = sanitize_path(std::move(filename));
+
+        if (size > std::numeric_limits<large_file_offset_t>::max()) {
+            fprintf(stderr, "create_file(%s, %ju) too large\n",
+                    filename.c_str(), size);
+            abort();
+        }
+
+        FILE* file = large_file_fopen(filename.c_str(), "we");
+        if (file == nullptr) {
+            fprintf(stderr, "fopen %s failed: %s\n", filename.c_str(),
+                    strerror(errno));
+            abort();
+        }
+
+        if (large_file_ftruncate(
+                fileno(file), static_cast<large_file_offset_t>(size)) == -1) {
+            fprintf(stderr, "ftruncate %s %ju failed: %s\n", filename.c_str(),
+                    size, strerror(errno));
+            fclose(file);
+            abort();
+        }
+
+        fclose(file);
+        return filename;
+    }
+
+    std::string create_dir(std::string filename) {
+        filename = sanitize_path(std::move(filename));
+        fs_helper_run(fs_make_cmd("create_dir", filename));
+        return filename;
+    }
+
+    std::string create_symlink(std::string source, std::string to) {
+        source = sanitize_path(std::move(source));
+        to = sanitize_path(std::move(to));
+        fs_helper_run(fs_make_cmd("create_symlink", source, to));
+        return to;
+    }
+
+    std::string create_hardlink(std::string source, std::string to) {
+        source = sanitize_path(std::move(source));
+        to = sanitize_path(std::move(to));
+        fs_helper_run(fs_make_cmd("create_hardlink", source, to));
+        return to;
+    }
+
+    std::string create_fifo(std::string file) {
+        file = sanitize_path(std::move(file));
+        fs_helper_run(fs_make_cmd("create_fifo", file));
+        return file;
+    }
+
+  // OS X and FreeBSD doesn't support socket files so we shouldn't even
+  // allow tests to call this unguarded.
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
+    std::string create_socket(std::string file) {
+        file = sanitize_path(std::move(file));
+        fs_helper_run(fs_make_cmd("create_socket", file));
+        return file;
+    }
+#endif
+
+    fs::path const test_root;
+
+private:
+    static std::string unique_path_suffix() {
+        std::string model = "test.%%%%%%";
+        for (auto & ch :  model) {
+          if (ch == '%')
+            ch = random_utils::random_hex_char();
+        }
+        return model;
+    }
+
+    // This could potentially introduce a filesystem race with other tests
+    // running at the same time, but oh well, it's just test code.
+    static inline fs::path random_env_path() {
+        static const char* env_path = LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT;
+        fs::path p = fs::path(env_path) / unique_path_suffix();
+        assert(p.parent_path() == env_path);
+        return p;
+    }
+
+    static inline std::string make_arg(std::string const& arg) {
+        return "'" + arg + "'";
+    }
+
+    static inline std::string make_arg(std::size_t arg) {
+        return std::to_string(arg);
+    }
+
+    template <class T>
+    static inline std::string
+    fs_make_cmd(std::string const& cmd_name, T const& arg) {
+        return cmd_name + "(" + make_arg(arg) + ")";
+    }
+
+    template <class T, class U>
+    static inline std::string
+    fs_make_cmd(std::string const& cmd_name, T const& arg1, U const& arg2) {
+        return cmd_name + "(" + make_arg(arg1) + ", " + make_arg(arg2) + ")";
+    }
+
+    static inline void fs_helper_run(std::string const& raw_cmd) {
+        // check that the fs test root in the environment matches what we were
+        // compiled with.
+        static bool checked = checkDynamicTestRoot();
+        ((void)checked);
+        std::string cmd = LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER;
+        cmd += " \"" + raw_cmd + "\"";
+        int ret = std::system(cmd.c_str());
+        assert(ret == 0);
+    }
+
+    static bool checkDynamicTestRoot() {
+        // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT is expected not to contain symlinks.
+        char* fs_root = std::getenv("LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT");
+        if (!fs_root) {
+            std::printf("ERROR: LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT must be a defined "
+                         "environment variable when running the test.\n");
+            std::abort();
+        }
+        if (std::string(fs_root) != LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT) {
+            std::printf("ERROR: LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT environment variable"
+                        " must have the same value as when the test was compiled.\n");
+            std::printf("   Current Value:  '%s'\n", fs_root);
+            std::printf("   Expected Value: '%s'\n", LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT);
+            std::abort();
+        }
+        return true;
+    }
+
+};
+
+#endif // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
+
+// Misc test types
+
+#define CONCAT2(LHS, RHS) LHS##RHS
+#define CONCAT(LHS, RHS) CONCAT2(LHS, RHS)
+#define MKSTR(Str) {Str, CONCAT(L, Str), CONCAT(u, Str), CONCAT(U, Str)}
+
+struct MultiStringType {
+  const char* s;
+  const wchar_t* w;
+  const char16_t* u16;
+  const char32_t* u32;
+
+  operator const char* () const { return s; }
+  operator const wchar_t* () const { return w; }
+  operator const char16_t* () const { return u16; }
+  operator const char32_t* () const { return u32; }
+};
+
+const MultiStringType PathList[] = {
+        MKSTR(""),
+        MKSTR(" "),
+        MKSTR("//"),
+        MKSTR("."),
+        MKSTR(".."),
+        MKSTR("foo"),
+        MKSTR("/"),
+        MKSTR("/foo"),
+        MKSTR("foo/"),
+        MKSTR("/foo/"),
+        MKSTR("foo/bar"),
+        MKSTR("/foo/bar"),
+        MKSTR("//net"),
+        MKSTR("//net/foo"),
+        MKSTR("///foo///"),
+        MKSTR("///foo///bar"),
+        MKSTR("/."),
+        MKSTR("./"),
+        MKSTR("/.."),
+        MKSTR("../"),
+        MKSTR("foo/."),
+        MKSTR("foo/.."),
+        MKSTR("foo/./"),
+        MKSTR("foo/./bar"),
+        MKSTR("foo/../"),
+        MKSTR("foo/../bar"),
+        MKSTR("c:"),
+        MKSTR("c:/"),
+        MKSTR("c:foo"),
+        MKSTR("c:/foo"),
+        MKSTR("c:foo/"),
+        MKSTR("c:/foo/"),
+        MKSTR("c:/foo/bar"),
+        MKSTR("prn:"),
+        MKSTR("c:\\"),
+        MKSTR("c:\\foo"),
+        MKSTR("c:foo\\"),
+        MKSTR("c:\\foo\\"),
+        MKSTR("c:\\foo/"),
+        MKSTR("c:/foo\\bar"),
+        MKSTR("//"),
+        MKSTR("/finally/we/need/one/really/really/really/really/really/really/really/long/string")
+};
+const unsigned PathListSize = sizeof(PathList) / sizeof(MultiStringType);
+
+template <class Iter>
+Iter IterEnd(Iter B) {
+  using VT = typename std::iterator_traits<Iter>::value_type;
+  for (; *B != VT{}; ++B)
+    ;
+  return B;
+}
+
+template <class CharT>
+const CharT* StrEnd(CharT const* P) {
+    return IterEnd(P);
+}
+
+template <class CharT>
+std::size_t StrLen(CharT const* P) {
+    return StrEnd(P) - P;
+}
+
+// Testing the allocation behavior of the code_cvt functions requires
+// *knowing* that the allocation was not done by "path::__str_".
+// This hack forces path to allocate enough memory.
+inline void PathReserve(fs::path& p, std::size_t N) {
+  auto const& native_ref = p.native();
+  const_cast<std::string&>(native_ref).reserve(N);
+}
+
+template <class Iter1, class Iter2>
+bool checkCollectionsEqual(
+    Iter1 start1, Iter1 const end1
+  , Iter2 start2, Iter2 const end2
+  )
+{
+    while (start1 != end1 && start2 != end2) {
+        if (*start1 != *start2) {
+            return false;
+        }
+        ++start1; ++start2;
+    }
+    return (start1 == end1 && start2 == end2);
+}
+
+
+template <class Iter1, class Iter2>
+bool checkCollectionsEqualBackwards(
+    Iter1 const start1, Iter1 end1
+  , Iter2 const start2, Iter2 end2
+  )
+{
+    while (start1 != end1 && start2 != end2) {
+        --end1; --end2;
+        if (*end1 != *end2) {
+            return false;
+        }
+    }
+    return (start1 == end1 && start2 == end2);
+}
+
+// We often need to test that the error_code was cleared if no error occurs
+// this function returns an error_code which is set to an error that will
+// never be returned by the filesystem functions.
+inline std::error_code GetTestEC(unsigned Idx = 0) {
+  using std::errc;
+  auto GetErrc = [&]() {
+    switch (Idx) {
+    case 0:
+      return errc::address_family_not_supported;
+    case 1:
+      return errc::address_not_available;
+    case 2:
+      return errc::address_in_use;
+    case 3:
+      return errc::argument_list_too_long;
+    default:
+      assert(false && "Idx out of range");
+      std::abort();
+    }
+  };
+  return std::make_error_code(GetErrc());
+}
+
+inline bool ErrorIsImp(const std::error_code& ec,
+                       std::vector<std::errc> const& errors) {
+  for (auto errc : errors) {
+    if (ec == std::make_error_code(errc))
+      return true;
+  }
+  return false;
+}
+
+template <class... ErrcT>
+inline bool ErrorIs(const std::error_code& ec, std::errc First, ErrcT... Rest) {
+  std::vector<std::errc> errors = {First, Rest...};
+  return ErrorIsImp(ec, errors);
+}
+
+// Provide our own Sleep routine since std::this_thread::sleep_for is not
+// available in single-threaded mode.
+void SleepFor(std::chrono::seconds dur) {
+    using namespace std::chrono;
+#if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK)
+    using Clock = system_clock;
+#else
+    using Clock = steady_clock;
+#endif
+    const auto wake_time = Clock::now() + dur;
+    while (Clock::now() < wake_time)
+        ;
+}
+
+inline bool PathEq(fs::path const& LHS, fs::path const& RHS) {
+  return LHS.native() == RHS.native();
+}
+
+struct ExceptionChecker {
+  std::errc expected_err;
+  fs::path expected_path1;
+  fs::path expected_path2;
+  unsigned num_paths;
+  const char* func_name;
+  std::string opt_message;
+
+  explicit ExceptionChecker(std::errc first_err, const char* func_name,
+                            std::string opt_msg = {})
+      : expected_err{first_err}, num_paths(0), func_name(func_name),
+        opt_message(opt_msg) {}
+  explicit ExceptionChecker(fs::path p, std::errc first_err,
+                            const char* func_name, std::string opt_msg = {})
+      : expected_err(first_err), expected_path1(p), num_paths(1),
+        func_name(func_name), opt_message(opt_msg) {}
+
+  explicit ExceptionChecker(fs::path p1, fs::path p2, std::errc first_err,
+                            const char* func_name, std::string opt_msg = {})
+      : expected_err(first_err), expected_path1(p1), expected_path2(p2),
+        num_paths(2), func_name(func_name), opt_message(opt_msg) {}
+
+  void operator()(fs::filesystem_error const& Err) {
+    TEST_CHECK(ErrorIsImp(Err.code(), {expected_err}));
+    TEST_CHECK(Err.path1() == expected_path1);
+    TEST_CHECK(Err.path2() == expected_path2);
+    LIBCPP_ONLY(check_libcxx_string(Err));
+  }
+
+  void check_libcxx_string(fs::filesystem_error const& Err) {
+    std::string message = std::make_error_code(expected_err).message();
+
+    std::string additional_msg = "";
+    if (!opt_message.empty()) {
+      additional_msg = opt_message + ": ";
+    }
+    auto transform_path = [](const fs::path& p) {
+      if (p.native().empty())
+        return "\"\"";
+      return p.c_str();
+    };
+    std::string format = [&]() -> std::string {
+      switch (num_paths) {
+      case 0:
+        return format_string("filesystem error: in %s: %s%s", func_name,
+                             additional_msg, message);
+      case 1:
+        return format_string("filesystem error: in %s: %s%s [%s]", func_name,
+                             additional_msg, message,
+                             transform_path(expected_path1));
+      case 2:
+        return format_string("filesystem error: in %s: %s%s [%s] [%s]",
+                             func_name, additional_msg, message,
+                             transform_path(expected_path1),
+                             transform_path(expected_path2));
+      default:
+        TEST_CHECK(false && "unexpected case");
+        return "";
+      }
+    }();
+    TEST_CHECK(format == Err.what());
+    if (format != Err.what()) {
+      fprintf(stderr,
+              "filesystem_error::what() does not match expected output:\n");
+      fprintf(stderr, "  expected: \"%s\"\n", format.c_str());
+      fprintf(stderr, "  actual:   \"%s\"\n\n", Err.what());
+    }
+  }
+
+  ExceptionChecker(ExceptionChecker const&) = delete;
+  ExceptionChecker& operator=(ExceptionChecker const&) = delete;
+
+};
+
+#endif /* FILESYSTEM_TEST_HELPER_HPP */

Removed: libcxx/trunk/test/support/filesystem_test_helper.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/filesystem_test_helper.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/filesystem_test_helper.hpp (original)
+++ libcxx/trunk/test/support/filesystem_test_helper.hpp (removed)
@@ -1,557 +0,0 @@
-#ifndef FILESYSTEM_TEST_HELPER_HPP
-#define FILESYSTEM_TEST_HELPER_HPP
-
-#include "filesystem_include.hpp"
-
-#include <unistd.h> // for ftruncate
-
-#include <cassert>
-#include <cstdio> // for printf
-#include <string>
-#include <fstream>
-#include <random>
-#include <chrono>
-#include <vector>
-#include <regex>
-
-#include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "format_string.hpp"
-
-// static test helpers
-
-#ifndef LIBCXX_FILESYSTEM_STATIC_TEST_ROOT
-#warning "STATIC TESTS DISABLED"
-#else // LIBCXX_FILESYSTEM_STATIC_TEST_ROOT
-
-namespace StaticEnv {
-
-inline fs::path makePath(fs::path const& p) {
-    // env_path is expected not to contain symlinks.
-    static const fs::path env_path = LIBCXX_FILESYSTEM_STATIC_TEST_ROOT;
-    return env_path / p;
-}
-
-static const fs::path Root = LIBCXX_FILESYSTEM_STATIC_TEST_ROOT;
-
-static const fs::path TestFileList[] = {
-        makePath("empty_file"),
-        makePath("non_empty_file"),
-        makePath("dir1/file1"),
-        makePath("dir1/file2")
-};
-const std::size_t TestFileListSize = sizeof(TestFileList) / sizeof(fs::path);
-
-static const fs::path TestDirList[] = {
-        makePath("dir1"),
-        makePath("dir1/dir2"),
-        makePath("dir1/dir2/dir3")
-};
-const std::size_t TestDirListSize = sizeof(TestDirList) / sizeof(fs::path);
-
-static const fs::path File          = TestFileList[0];
-static const fs::path Dir           = TestDirList[0];
-static const fs::path Dir2          = TestDirList[1];
-static const fs::path Dir3          = TestDirList[2];
-static const fs::path SymlinkToFile = makePath("symlink_to_empty_file");
-static const fs::path SymlinkToDir  = makePath("symlink_to_dir");
-static const fs::path BadSymlink    = makePath("bad_symlink");
-static const fs::path DNE           = makePath("DNE");
-static const fs::path EmptyFile     = TestFileList[0];
-static const fs::path NonEmptyFile  = TestFileList[1];
-static const fs::path CharFile      = "/dev/null"; // Hopefully this exists
-
-static const fs::path DirIterationList[] = {
-    makePath("dir1/dir2"),
-    makePath("dir1/file1"),
-    makePath("dir1/file2")
-};
-const std::size_t DirIterationListSize = sizeof(DirIterationList)
-                                        / sizeof(fs::path);
-
-static const fs::path DirIterationListDepth1[] = {
-    makePath("dir1/dir2/afile3"),
-    makePath("dir1/dir2/dir3"),
-    makePath("dir1/dir2/symlink_to_dir3"),
-    makePath("dir1/dir2/file4"),
-};
-
-static const fs::path RecDirIterationList[] = {
-    makePath("dir1/dir2"),
-    makePath("dir1/file1"),
-    makePath("dir1/file2"),
-    makePath("dir1/dir2/afile3"),
-    makePath("dir1/dir2/dir3"),
-    makePath("dir1/dir2/symlink_to_dir3"),
-    makePath("dir1/dir2/file4"),
-    makePath("dir1/dir2/dir3/file5")
-};
-
-static const fs::path RecDirFollowSymlinksIterationList[] = {
-    makePath("dir1/dir2"),
-    makePath("dir1/file1"),
-    makePath("dir1/file2"),
-    makePath("dir1/dir2/afile3"),
-    makePath("dir1/dir2/dir3"),
-    makePath("dir1/dir2/file4"),
-    makePath("dir1/dir2/dir3/file5"),
-    makePath("dir1/dir2/symlink_to_dir3"),
-    makePath("dir1/dir2/symlink_to_dir3/file5"),
-};
-
-} // namespace StaticEnv
-
-#endif // LIBCXX_FILESYSTEM_STATIC_TEST_ROOT
-
-#ifndef LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
-#warning LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT must be defined
-#else // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
-
-#ifndef LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER
-#error LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER must be defined
-#endif
-
-namespace random_utils {
-inline char to_hex(int ch) {
-  return ch < 10 ? static_cast<char>('0' + ch)
-                 : static_cast<char>('a' + (ch - 10));
-}
-
-inline char random_hex_char() {
-  static std::mt19937 rd{std::random_device{}()};
-  static std::uniform_int_distribution<int> mrand{0, 15};
-  return to_hex(mrand(rd));
-}
-
-} // namespace random_utils
-
-struct scoped_test_env
-{
-    scoped_test_env() : test_root(random_env_path())
-        { fs_helper_run(fs_make_cmd("init_test_directory", test_root)); }
-
-    ~scoped_test_env()
-        { fs_helper_run(fs_make_cmd("destroy_test_directory", test_root)); }
-
-    scoped_test_env(scoped_test_env const &) = delete;
-    scoped_test_env & operator=(scoped_test_env const &) = delete;
-
-    fs::path make_env_path(std::string p) { return sanitize_path(p); }
-
-    std::string sanitize_path(std::string raw) {
-        assert(raw.find("..") == std::string::npos);
-        std::string const& root = test_root.native();
-        if (root.compare(0, root.size(), raw, 0, root.size()) != 0) {
-            assert(raw.front() != '\\');
-            fs::path tmp(test_root);
-            tmp /= raw;
-            return std::move(const_cast<std::string&>(tmp.native()));
-        }
-        return raw;
-    }
-
-    // Purposefully using a size potentially larger than off_t here so we can
-    // test the behavior of libc++fs when it is built with _FILE_OFFSET_BITS=64
-    // but the caller is not (std::filesystem also uses uintmax_t rather than
-    // off_t). On a 32-bit system this allows us to create a file larger than
-    // 2GB.
-    std::string create_file(std::string filename, uintmax_t size = 0) {
-#if defined(__LP64__)
-        auto large_file_fopen = fopen;
-        auto large_file_ftruncate = ftruncate;
-        using large_file_offset_t = off_t;
-#else
-        auto large_file_fopen = fopen64;
-        auto large_file_ftruncate = ftruncate64;
-        using large_file_offset_t = off64_t;
-#endif
-
-        filename = sanitize_path(std::move(filename));
-
-        if (size > std::numeric_limits<large_file_offset_t>::max()) {
-            fprintf(stderr, "create_file(%s, %ju) too large\n",
-                    filename.c_str(), size);
-            abort();
-        }
-
-        FILE* file = large_file_fopen(filename.c_str(), "we");
-        if (file == nullptr) {
-            fprintf(stderr, "fopen %s failed: %s\n", filename.c_str(),
-                    strerror(errno));
-            abort();
-        }
-
-        if (large_file_ftruncate(
-                fileno(file), static_cast<large_file_offset_t>(size)) == -1) {
-            fprintf(stderr, "ftruncate %s %ju failed: %s\n", filename.c_str(),
-                    size, strerror(errno));
-            fclose(file);
-            abort();
-        }
-
-        fclose(file);
-        return filename;
-    }
-
-    std::string create_dir(std::string filename) {
-        filename = sanitize_path(std::move(filename));
-        fs_helper_run(fs_make_cmd("create_dir", filename));
-        return filename;
-    }
-
-    std::string create_symlink(std::string source, std::string to) {
-        source = sanitize_path(std::move(source));
-        to = sanitize_path(std::move(to));
-        fs_helper_run(fs_make_cmd("create_symlink", source, to));
-        return to;
-    }
-
-    std::string create_hardlink(std::string source, std::string to) {
-        source = sanitize_path(std::move(source));
-        to = sanitize_path(std::move(to));
-        fs_helper_run(fs_make_cmd("create_hardlink", source, to));
-        return to;
-    }
-
-    std::string create_fifo(std::string file) {
-        file = sanitize_path(std::move(file));
-        fs_helper_run(fs_make_cmd("create_fifo", file));
-        return file;
-    }
-
-  // OS X and FreeBSD doesn't support socket files so we shouldn't even
-  // allow tests to call this unguarded.
-#if !defined(__FreeBSD__) && !defined(__APPLE__)
-    std::string create_socket(std::string file) {
-        file = sanitize_path(std::move(file));
-        fs_helper_run(fs_make_cmd("create_socket", file));
-        return file;
-    }
-#endif
-
-    fs::path const test_root;
-
-private:
-    static std::string unique_path_suffix() {
-        std::string model = "test.%%%%%%";
-        for (auto & ch :  model) {
-          if (ch == '%')
-            ch = random_utils::random_hex_char();
-        }
-        return model;
-    }
-
-    // This could potentially introduce a filesystem race with other tests
-    // running at the same time, but oh well, it's just test code.
-    static inline fs::path random_env_path() {
-        static const char* env_path = LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT;
-        fs::path p = fs::path(env_path) / unique_path_suffix();
-        assert(p.parent_path() == env_path);
-        return p;
-    }
-
-    static inline std::string make_arg(std::string const& arg) {
-        return "'" + arg + "'";
-    }
-
-    static inline std::string make_arg(std::size_t arg) {
-        return std::to_string(arg);
-    }
-
-    template <class T>
-    static inline std::string
-    fs_make_cmd(std::string const& cmd_name, T const& arg) {
-        return cmd_name + "(" + make_arg(arg) + ")";
-    }
-
-    template <class T, class U>
-    static inline std::string
-    fs_make_cmd(std::string const& cmd_name, T const& arg1, U const& arg2) {
-        return cmd_name + "(" + make_arg(arg1) + ", " + make_arg(arg2) + ")";
-    }
-
-    static inline void fs_helper_run(std::string const& raw_cmd) {
-        // check that the fs test root in the environment matches what we were
-        // compiled with.
-        static bool checked = checkDynamicTestRoot();
-        ((void)checked);
-        std::string cmd = LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER;
-        cmd += " \"" + raw_cmd + "\"";
-        int ret = std::system(cmd.c_str());
-        assert(ret == 0);
-    }
-
-    static bool checkDynamicTestRoot() {
-        // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT is expected not to contain symlinks.
-        char* fs_root = std::getenv("LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT");
-        if (!fs_root) {
-            std::printf("ERROR: LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT must be a defined "
-                         "environment variable when running the test.\n");
-            std::abort();
-        }
-        if (std::string(fs_root) != LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT) {
-            std::printf("ERROR: LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT environment variable"
-                        " must have the same value as when the test was compiled.\n");
-            std::printf("   Current Value:  '%s'\n", fs_root);
-            std::printf("   Expected Value: '%s'\n", LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT);
-            std::abort();
-        }
-        return true;
-    }
-
-};
-
-#endif // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
-
-// Misc test types
-
-#define CONCAT2(LHS, RHS) LHS##RHS
-#define CONCAT(LHS, RHS) CONCAT2(LHS, RHS)
-#define MKSTR(Str) {Str, CONCAT(L, Str), CONCAT(u, Str), CONCAT(U, Str)}
-
-struct MultiStringType {
-  const char* s;
-  const wchar_t* w;
-  const char16_t* u16;
-  const char32_t* u32;
-
-  operator const char* () const { return s; }
-  operator const wchar_t* () const { return w; }
-  operator const char16_t* () const { return u16; }
-  operator const char32_t* () const { return u32; }
-};
-
-const MultiStringType PathList[] = {
-        MKSTR(""),
-        MKSTR(" "),
-        MKSTR("//"),
-        MKSTR("."),
-        MKSTR(".."),
-        MKSTR("foo"),
-        MKSTR("/"),
-        MKSTR("/foo"),
-        MKSTR("foo/"),
-        MKSTR("/foo/"),
-        MKSTR("foo/bar"),
-        MKSTR("/foo/bar"),
-        MKSTR("//net"),
-        MKSTR("//net/foo"),
-        MKSTR("///foo///"),
-        MKSTR("///foo///bar"),
-        MKSTR("/."),
-        MKSTR("./"),
-        MKSTR("/.."),
-        MKSTR("../"),
-        MKSTR("foo/."),
-        MKSTR("foo/.."),
-        MKSTR("foo/./"),
-        MKSTR("foo/./bar"),
-        MKSTR("foo/../"),
-        MKSTR("foo/../bar"),
-        MKSTR("c:"),
-        MKSTR("c:/"),
-        MKSTR("c:foo"),
-        MKSTR("c:/foo"),
-        MKSTR("c:foo/"),
-        MKSTR("c:/foo/"),
-        MKSTR("c:/foo/bar"),
-        MKSTR("prn:"),
-        MKSTR("c:\\"),
-        MKSTR("c:\\foo"),
-        MKSTR("c:foo\\"),
-        MKSTR("c:\\foo\\"),
-        MKSTR("c:\\foo/"),
-        MKSTR("c:/foo\\bar"),
-        MKSTR("//"),
-        MKSTR("/finally/we/need/one/really/really/really/really/really/really/really/long/string")
-};
-const unsigned PathListSize = sizeof(PathList) / sizeof(MultiStringType);
-
-template <class Iter>
-Iter IterEnd(Iter B) {
-  using VT = typename std::iterator_traits<Iter>::value_type;
-  for (; *B != VT{}; ++B)
-    ;
-  return B;
-}
-
-template <class CharT>
-const CharT* StrEnd(CharT const* P) {
-    return IterEnd(P);
-}
-
-template <class CharT>
-std::size_t StrLen(CharT const* P) {
-    return StrEnd(P) - P;
-}
-
-// Testing the allocation behavior of the code_cvt functions requires
-// *knowing* that the allocation was not done by "path::__str_".
-// This hack forces path to allocate enough memory.
-inline void PathReserve(fs::path& p, std::size_t N) {
-  auto const& native_ref = p.native();
-  const_cast<std::string&>(native_ref).reserve(N);
-}
-
-template <class Iter1, class Iter2>
-bool checkCollectionsEqual(
-    Iter1 start1, Iter1 const end1
-  , Iter2 start2, Iter2 const end2
-  )
-{
-    while (start1 != end1 && start2 != end2) {
-        if (*start1 != *start2) {
-            return false;
-        }
-        ++start1; ++start2;
-    }
-    return (start1 == end1 && start2 == end2);
-}
-
-
-template <class Iter1, class Iter2>
-bool checkCollectionsEqualBackwards(
-    Iter1 const start1, Iter1 end1
-  , Iter2 const start2, Iter2 end2
-  )
-{
-    while (start1 != end1 && start2 != end2) {
-        --end1; --end2;
-        if (*end1 != *end2) {
-            return false;
-        }
-    }
-    return (start1 == end1 && start2 == end2);
-}
-
-// We often need to test that the error_code was cleared if no error occurs
-// this function returns an error_code which is set to an error that will
-// never be returned by the filesystem functions.
-inline std::error_code GetTestEC(unsigned Idx = 0) {
-  using std::errc;
-  auto GetErrc = [&]() {
-    switch (Idx) {
-    case 0:
-      return errc::address_family_not_supported;
-    case 1:
-      return errc::address_not_available;
-    case 2:
-      return errc::address_in_use;
-    case 3:
-      return errc::argument_list_too_long;
-    default:
-      assert(false && "Idx out of range");
-      std::abort();
-    }
-  };
-  return std::make_error_code(GetErrc());
-}
-
-inline bool ErrorIsImp(const std::error_code& ec,
-                       std::vector<std::errc> const& errors) {
-  for (auto errc : errors) {
-    if (ec == std::make_error_code(errc))
-      return true;
-  }
-  return false;
-}
-
-template <class... ErrcT>
-inline bool ErrorIs(const std::error_code& ec, std::errc First, ErrcT... Rest) {
-  std::vector<std::errc> errors = {First, Rest...};
-  return ErrorIsImp(ec, errors);
-}
-
-// Provide our own Sleep routine since std::this_thread::sleep_for is not
-// available in single-threaded mode.
-void SleepFor(std::chrono::seconds dur) {
-    using namespace std::chrono;
-#if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK)
-    using Clock = system_clock;
-#else
-    using Clock = steady_clock;
-#endif
-    const auto wake_time = Clock::now() + dur;
-    while (Clock::now() < wake_time)
-        ;
-}
-
-inline bool PathEq(fs::path const& LHS, fs::path const& RHS) {
-  return LHS.native() == RHS.native();
-}
-
-struct ExceptionChecker {
-  std::errc expected_err;
-  fs::path expected_path1;
-  fs::path expected_path2;
-  unsigned num_paths;
-  const char* func_name;
-  std::string opt_message;
-
-  explicit ExceptionChecker(std::errc first_err, const char* func_name,
-                            std::string opt_msg = {})
-      : expected_err{first_err}, num_paths(0), func_name(func_name),
-        opt_message(opt_msg) {}
-  explicit ExceptionChecker(fs::path p, std::errc first_err,
-                            const char* func_name, std::string opt_msg = {})
-      : expected_err(first_err), expected_path1(p), num_paths(1),
-        func_name(func_name), opt_message(opt_msg) {}
-
-  explicit ExceptionChecker(fs::path p1, fs::path p2, std::errc first_err,
-                            const char* func_name, std::string opt_msg = {})
-      : expected_err(first_err), expected_path1(p1), expected_path2(p2),
-        num_paths(2), func_name(func_name), opt_message(opt_msg) {}
-
-  void operator()(fs::filesystem_error const& Err) {
-    TEST_CHECK(ErrorIsImp(Err.code(), {expected_err}));
-    TEST_CHECK(Err.path1() == expected_path1);
-    TEST_CHECK(Err.path2() == expected_path2);
-    LIBCPP_ONLY(check_libcxx_string(Err));
-  }
-
-  void check_libcxx_string(fs::filesystem_error const& Err) {
-    std::string message = std::make_error_code(expected_err).message();
-
-    std::string additional_msg = "";
-    if (!opt_message.empty()) {
-      additional_msg = opt_message + ": ";
-    }
-    auto transform_path = [](const fs::path& p) {
-      if (p.native().empty())
-        return "\"\"";
-      return p.c_str();
-    };
-    std::string format = [&]() -> std::string {
-      switch (num_paths) {
-      case 0:
-        return format_string("filesystem error: in %s: %s%s", func_name,
-                             additional_msg, message);
-      case 1:
-        return format_string("filesystem error: in %s: %s%s [%s]", func_name,
-                             additional_msg, message,
-                             transform_path(expected_path1));
-      case 2:
-        return format_string("filesystem error: in %s: %s%s [%s] [%s]",
-                             func_name, additional_msg, message,
-                             transform_path(expected_path1),
-                             transform_path(expected_path2));
-      default:
-        TEST_CHECK(false && "unexpected case");
-        return "";
-      }
-    }();
-    TEST_CHECK(format == Err.what());
-    if (format != Err.what()) {
-      fprintf(stderr,
-              "filesystem_error::what() does not match expected output:\n");
-      fprintf(stderr, "  expected: \"%s\"\n", format.c_str());
-      fprintf(stderr, "  actual:   \"%s\"\n\n", Err.what());
-    }
-  }
-
-  ExceptionChecker(ExceptionChecker const&) = delete;
-  ExceptionChecker& operator=(ExceptionChecker const&) = delete;
-
-};
-
-#endif /* FILESYSTEM_TEST_HELPER_HPP */

Added: libcxx/trunk/test/support/format_string.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/format_string.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/format_string.h (added)
+++ libcxx/trunk/test/support/format_string.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,71 @@
+#ifndef TEST_SUPPORT_FORMAT_STRING_H
+#define TEST_SUPPORT_FORMAT_STRING_H
+
+#include <cstdio>
+#include <string>
+#include <memory>
+#include <array>
+#include <cstdarg>
+
+namespace format_string_detail {
+inline std::string format_string_imp(const char* msg, ...) {
+  // we might need a second shot at this, so pre-emptivly make a copy
+  struct GuardVAList {
+    va_list& xtarget;
+    bool active;
+    GuardVAList(va_list& val) : xtarget(val), active(true) {}
+
+    void clear() {
+      if (active)
+        va_end(xtarget);
+      active = false;
+    }
+    ~GuardVAList() {
+      if (active)
+        va_end(xtarget);
+    }
+  };
+  va_list args;
+  va_start(args, msg);
+  GuardVAList args_guard(args);
+
+  va_list args_cp;
+  va_copy(args_cp, args);
+  GuardVAList args_copy_guard(args_cp);
+
+  std::array<char, 256> local_buff;
+  std::size_t size = local_buff.size();
+  auto ret = ::vsnprintf(local_buff.data(), size, msg, args_cp);
+
+  args_copy_guard.clear();
+
+  // handle empty expansion
+  if (ret == 0)
+    return std::string{};
+  if (static_cast<std::size_t>(ret) < size)
+    return std::string(local_buff.data());
+
+  // we did not provide a long enough buffer on our first attempt.
+  // add 1 to size to account for null-byte in size cast to prevent overflow
+  size = static_cast<std::size_t>(ret) + 1;
+  auto buff_ptr = std::unique_ptr<char[]>(new char[size]);
+  ret = ::vsnprintf(buff_ptr.get(), size, msg, args);
+  return std::string(buff_ptr.get());
+}
+
+const char* unwrap(std::string& s) { return s.c_str(); }
+template <class Arg>
+Arg const& unwrap(Arg& a) {
+  static_assert(!std::is_class<Arg>::value, "cannot pass class here");
+  return a;
+}
+
+} // namespace format_string_detail
+
+template <class... Args>
+std::string format_string(const char* fmt, Args const&... args) {
+  return format_string_detail::format_string_imp(
+      fmt, format_string_detail::unwrap(const_cast<Args&>(args))...);
+}
+
+#endif // TEST_SUPPORT_FORMAT_STRING_HPP

Removed: libcxx/trunk/test/support/format_string.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/format_string.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/format_string.hpp (original)
+++ libcxx/trunk/test/support/format_string.hpp (removed)
@@ -1,71 +0,0 @@
-#ifndef TEST_SUPPORT_FORMAT_STRING_HPP
-#define TEST_SUPPORT_FORMAT_STRING_HPP
-
-#include <cstdio>
-#include <string>
-#include <memory>
-#include <array>
-#include <cstdarg>
-
-namespace format_string_detail {
-inline std::string format_string_imp(const char* msg, ...) {
-  // we might need a second shot at this, so pre-emptivly make a copy
-  struct GuardVAList {
-    va_list& xtarget;
-    bool active;
-    GuardVAList(va_list& val) : xtarget(val), active(true) {}
-
-    void clear() {
-      if (active)
-        va_end(xtarget);
-      active = false;
-    }
-    ~GuardVAList() {
-      if (active)
-        va_end(xtarget);
-    }
-  };
-  va_list args;
-  va_start(args, msg);
-  GuardVAList args_guard(args);
-
-  va_list args_cp;
-  va_copy(args_cp, args);
-  GuardVAList args_copy_guard(args_cp);
-
-  std::array<char, 256> local_buff;
-  std::size_t size = local_buff.size();
-  auto ret = ::vsnprintf(local_buff.data(), size, msg, args_cp);
-
-  args_copy_guard.clear();
-
-  // handle empty expansion
-  if (ret == 0)
-    return std::string{};
-  if (static_cast<std::size_t>(ret) < size)
-    return std::string(local_buff.data());
-
-  // we did not provide a long enough buffer on our first attempt.
-  // add 1 to size to account for null-byte in size cast to prevent overflow
-  size = static_cast<std::size_t>(ret) + 1;
-  auto buff_ptr = std::unique_ptr<char[]>(new char[size]);
-  ret = ::vsnprintf(buff_ptr.get(), size, msg, args);
-  return std::string(buff_ptr.get());
-}
-
-const char* unwrap(std::string& s) { return s.c_str(); }
-template <class Arg>
-Arg const& unwrap(Arg& a) {
-  static_assert(!std::is_class<Arg>::value, "cannot pass class here");
-  return a;
-}
-
-} // namespace format_string_detail
-
-template <class... Args>
-std::string format_string(const char* fmt, Args const&... args) {
-  return format_string_detail::format_string_imp(
-      fmt, format_string_detail::unwrap(const_cast<Args&>(args))...);
-}
-
-#endif // TEST_SUPPORT_FORMAT_STRING_HPP

Added: libcxx/trunk/test/support/msvc_stdlib_force_include.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/msvc_stdlib_force_include.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/msvc_stdlib_force_include.h (added)
+++ libcxx/trunk/test/support/msvc_stdlib_force_include.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,92 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_H
+#define SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_H
+
+// This header is force-included when running the libc++ tests against the
+// MSVC standard library.
+
+#ifndef _LIBCXX_IN_DEVCRT
+    // Silence warnings about CRT machinery.
+    #define _CRT_SECURE_NO_WARNINGS
+
+    // Avoid assertion dialogs.
+    #define _CRT_SECURE_INVALID_PARAMETER(EXPR) ::abort()
+#endif // _LIBCXX_IN_DEVCRT
+
+#include <crtdbg.h>
+#include <stdlib.h>
+
+#if defined(_LIBCPP_VERSION)
+    #error This header may not be used when targeting libc++
+#endif
+
+#ifndef _LIBCXX_IN_DEVCRT
+struct AssertionDialogAvoider {
+    AssertionDialogAvoider() {
+        _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
+        _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
+
+        _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
+        _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
+    }
+};
+
+const AssertionDialogAvoider assertion_dialog_avoider{};
+#endif // _LIBCXX_IN_DEVCRT
+
+// MSVC frontend only configurations
+#if !defined(__clang__)
+    // Simulate feature-test macros.
+    #define __has_feature(X) _MSVC_HAS_FEATURE_ ## X
+    #define _MSVC_HAS_FEATURE_cxx_exceptions    1
+    #define _MSVC_HAS_FEATURE_cxx_rtti          1
+    #define _MSVC_HAS_FEATURE_address_sanitizer 0
+    #define _MSVC_HAS_FEATURE_memory_sanitizer  0
+    #define _MSVC_HAS_FEATURE_thread_sanitizer  0
+
+    #define __has_attribute(X) _MSVC_HAS_ATTRIBUTE_ ## X
+    #define _MSVC_HAS_ATTRIBUTE_vector_size     0
+
+    // Silence compiler warnings.
+    #pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored
+    #pragma warning(disable: 4324) // structure was padded due to alignment specifier
+    #pragma warning(disable: 4521) // multiple copy constructors specified
+    #pragma warning(disable: 4702) // unreachable code
+    #pragma warning(disable: 28251) // Inconsistent annotation for 'new': this instance has no annotations.
+#endif // !defined(__clang__)
+
+// MSVC doesn't have __int128_t.
+#define _LIBCPP_HAS_NO_INT128
+
+// MSVC has quick_exit() and at_quick_exit().
+#define _LIBCPP_HAS_QUICK_EXIT
+
+#ifndef _LIBCXX_IN_DEVCRT
+    // atomic_is_lock_free.pass.cpp needs this VS 2015 Update 2 fix.
+    #define _ENABLE_ATOMIC_ALIGNMENT_FIX
+
+    // Silence warnings about features that are deprecated in C++17 and C++20.
+    #define _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
+    #define _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS
+#endif // _LIBCXX_IN_DEVCRT
+
+#include <ciso646>
+
+#if _HAS_CXX20
+    #define TEST_STD_VER 99
+#elif _HAS_CXX17
+    #define TEST_STD_VER 17
+#else // !(_HAS_CXX20 || _HAS_CXX17)
+    #define TEST_STD_VER 14
+#endif
+
+#define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST
+
+#endif // SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_H

Removed: libcxx/trunk/test/support/msvc_stdlib_force_include.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/msvc_stdlib_force_include.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/msvc_stdlib_force_include.hpp (original)
+++ libcxx/trunk/test/support/msvc_stdlib_force_include.hpp (removed)
@@ -1,92 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_HPP
-#define SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_HPP
-
-// This header is force-included when running the libc++ tests against the
-// MSVC standard library.
-
-#ifndef _LIBCXX_IN_DEVCRT
-    // Silence warnings about CRT machinery.
-    #define _CRT_SECURE_NO_WARNINGS
-
-    // Avoid assertion dialogs.
-    #define _CRT_SECURE_INVALID_PARAMETER(EXPR) ::abort()
-#endif // _LIBCXX_IN_DEVCRT
-
-#include <crtdbg.h>
-#include <stdlib.h>
-
-#if defined(_LIBCPP_VERSION)
-    #error This header may not be used when targeting libc++
-#endif
-
-#ifndef _LIBCXX_IN_DEVCRT
-struct AssertionDialogAvoider {
-    AssertionDialogAvoider() {
-        _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
-        _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
-
-        _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
-        _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
-    }
-};
-
-const AssertionDialogAvoider assertion_dialog_avoider{};
-#endif // _LIBCXX_IN_DEVCRT
-
-// MSVC frontend only configurations
-#if !defined(__clang__)
-    // Simulate feature-test macros.
-    #define __has_feature(X) _MSVC_HAS_FEATURE_ ## X
-    #define _MSVC_HAS_FEATURE_cxx_exceptions    1
-    #define _MSVC_HAS_FEATURE_cxx_rtti          1
-    #define _MSVC_HAS_FEATURE_address_sanitizer 0
-    #define _MSVC_HAS_FEATURE_memory_sanitizer  0
-    #define _MSVC_HAS_FEATURE_thread_sanitizer  0
-
-    #define __has_attribute(X) _MSVC_HAS_ATTRIBUTE_ ## X
-    #define _MSVC_HAS_ATTRIBUTE_vector_size     0
-
-    // Silence compiler warnings.
-    #pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored
-    #pragma warning(disable: 4324) // structure was padded due to alignment specifier
-    #pragma warning(disable: 4521) // multiple copy constructors specified
-    #pragma warning(disable: 4702) // unreachable code
-    #pragma warning(disable: 28251) // Inconsistent annotation for 'new': this instance has no annotations.
-#endif // !defined(__clang__)
-
-// MSVC doesn't have __int128_t.
-#define _LIBCPP_HAS_NO_INT128
-
-// MSVC has quick_exit() and at_quick_exit().
-#define _LIBCPP_HAS_QUICK_EXIT
-
-#ifndef _LIBCXX_IN_DEVCRT
-    // atomic_is_lock_free.pass.cpp needs this VS 2015 Update 2 fix.
-    #define _ENABLE_ATOMIC_ALIGNMENT_FIX
-
-    // Silence warnings about features that are deprecated in C++17 and C++20.
-    #define _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
-    #define _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS
-#endif // _LIBCXX_IN_DEVCRT
-
-#include <ciso646>
-
-#if _HAS_CXX20
-    #define TEST_STD_VER 99
-#elif _HAS_CXX17
-    #define TEST_STD_VER 17
-#else // !(_HAS_CXX20 || _HAS_CXX17)
-    #define TEST_STD_VER 14
-#endif
-
-#define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST
-
-#endif // SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_HPP

Added: libcxx/trunk/test/support/nasty_containers.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/nasty_containers.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/nasty_containers.h (added)
+++ libcxx/trunk/test/support/nasty_containers.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,312 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef NASTY_CONTAINERS_H
+#define NASTY_CONTAINERS_H
+
+#include <cassert>
+#include <vector>
+#include <list>
+
+#include "test_macros.h"
+
+template <class T>
+class nasty_vector
+{
+public:
+    typedef typename std::vector<T>                           nested_container;
+    typedef typename nested_container::value_type             value_type;
+    typedef typename nested_container::reference              reference;
+    typedef typename nested_container::const_reference        const_reference;
+    typedef typename nested_container::iterator               iterator;
+    typedef typename nested_container::const_iterator         const_iterator;
+
+    typedef typename nested_container::size_type              size_type;
+    typedef typename nested_container::difference_type        difference_type;
+    typedef typename nested_container::pointer                pointer;
+    typedef typename nested_container::const_pointer          const_pointer;
+
+    typedef typename nested_container::reverse_iterator       reverse_iterator;
+    typedef typename nested_container::const_reverse_iterator const_reverse_iterator;
+
+    nasty_vector() : v_() {}
+    explicit nasty_vector(size_type n) : v_(n) {}
+    nasty_vector(size_type n, const value_type& value) : v_(n, value) {}
+    template <class InputIterator> nasty_vector(InputIterator first, InputIterator last) : v_(first, last) {}
+#if TEST_STD_VER >= 11
+    nasty_vector(std::initializer_list<value_type> il) : v_(il) {}
+#endif
+    ~nasty_vector() {}
+
+    template <class InputIterator>
+        void assign(InputIterator first, InputIterator last) { v_.assign(first, last); }
+    void assign(size_type n, const value_type& u) { v_.assign(n, u); }
+#if TEST_STD_VER >= 11
+    void assign(std::initializer_list<value_type> il)  { v_.assign(il); }
+#endif
+
+    iterator               begin() TEST_NOEXCEPT         { return v_.begin(); }
+    const_iterator         begin()   const TEST_NOEXCEPT { return v_.begin(); }
+    iterator               end() TEST_NOEXCEPT           { return v_.end(); }
+    const_iterator         end()     const TEST_NOEXCEPT { return v_.end(); }
+
+    reverse_iterator       rbegin() TEST_NOEXCEPT        { return v_.rbegin(); }
+    const_reverse_iterator rbegin()  const TEST_NOEXCEPT { return v_.rbegin(); }
+    reverse_iterator       rend() TEST_NOEXCEPT          { return v_.rend(); }
+    const_reverse_iterator rend()    const TEST_NOEXCEPT { return v_.rend(); }
+
+    const_iterator         cbegin()  const TEST_NOEXCEPT { return v_.cbegin(); }
+    const_iterator         cend()    const TEST_NOEXCEPT { return v_.cend(); }
+    const_reverse_iterator crbegin() const TEST_NOEXCEPT { return v_.crbegin(); }
+    const_reverse_iterator crend()   const TEST_NOEXCEPT { return v_.crend(); }
+
+    size_type size() const TEST_NOEXCEPT      { return v_.size(); }
+    size_type max_size() const TEST_NOEXCEPT  { return v_.max_size(); }
+    size_type capacity() const TEST_NOEXCEPT  { return v_.capacity(); }
+    bool empty() const TEST_NOEXCEPT          { return v_.empty(); }
+    void reserve(size_type n)             { v_.reserve(n); };
+    void shrink_to_fit() TEST_NOEXCEPT        { v_.shrink_to_fit(); }
+
+    reference       operator[](size_type n)       { return v_[n]; }
+    const_reference operator[](size_type n) const { return v_[n]; }
+    reference       at(size_type n)               { return v_.at(n); }
+    const_reference at(size_type n) const         { return v_.at(n); }
+
+    reference       front()       { return v_.front(); }
+    const_reference front() const { return v_.front(); }
+    reference       back()        { return v_.back(); }
+    const_reference back() const  { return v_.back(); }
+
+    value_type*       data() TEST_NOEXCEPT       { return v_.data(); }
+    const value_type* data() const TEST_NOEXCEPT { return v_.data(); }
+
+    void push_back(const value_type& x)     { v_.push_back(x); }
+#if TEST_STD_VER >= 11
+    void push_back(value_type&& x)          { v_.push_back(std::forward<value_type&&>(x)); }
+    template <class... Args>
+        void emplace_back(Args&&... args)   { v_.emplace_back(std::forward<Args>(args)...); }
+#endif
+    void pop_back()                         { v_.pop_back(); }
+
+#if TEST_STD_VER >= 11
+    template <class... Args> iterator emplace(const_iterator pos, Args&&... args)
+    { return v_.emplace(pos, std::forward<Args>(args)...); }
+#endif
+
+    iterator insert(const_iterator pos, const value_type& x) { return v_.insert(pos, x); }
+#if TEST_STD_VER >= 11
+    iterator insert(const_iterator pos, value_type&& x)      { return v_.insert(pos, std::forward<value_type>(x)); }
+#endif
+    iterator insert(const_iterator pos, size_type n, const value_type& x) { return v_.insert(pos, n, x); }
+    template <class InputIterator>
+        iterator insert(const_iterator pos, InputIterator first, InputIterator last)
+    { return v_.insert(pos, first, last); }
+
+#if TEST_STD_VER >= 11
+    iterator insert(const_iterator pos, std::initializer_list<value_type> il) { return v_.insert(pos, il); }
+#endif
+
+    iterator erase(const_iterator pos)                        { return v_.erase(pos); }
+    iterator erase(const_iterator first, const_iterator last) { return v_.erase(first, last); }
+
+    void clear() TEST_NOEXCEPT { v_.clear(); }
+
+    void resize(size_type sz)                      { v_.resize(sz); }
+    void resize(size_type sz, const value_type& c) { v_.resize(sz, c); }
+
+    void swap(nasty_vector &nv)
+#if TEST_STD_VER > 14
+    noexcept(std::is_nothrow_swappable<nested_container>::value)
+#elif defined(_LIBCPP_VERSION)
+    TEST_NOEXCEPT_COND(std::__is_nothrow_swappable<nested_container>::value)
+#endif
+    { v_.swap(nv.v_); }
+
+    nasty_vector *operator &()             { assert(false); return nullptr; }  // nasty
+    const nasty_vector *operator &() const { assert(false); return nullptr; }  // nasty
+
+    nested_container v_;
+};
+
+template <class T>
+bool operator==(const nasty_vector<T>& x, const nasty_vector<T>& y) { return x.v_ == y.v_; }
+
+template <class T>
+class nasty_list
+{
+public:
+
+    typedef typename std::list<T>                             nested_container;
+    typedef typename nested_container::value_type             value_type;
+    typedef typename nested_container::reference              reference;
+    typedef typename nested_container::const_reference        const_reference;
+    typedef typename nested_container::iterator               iterator;
+    typedef typename nested_container::const_iterator         const_iterator;
+
+    typedef typename nested_container::size_type              size_type;
+    typedef typename nested_container::difference_type        difference_type;
+    typedef typename nested_container::pointer                pointer;
+    typedef typename nested_container::const_pointer          const_pointer;
+
+    typedef typename nested_container::reverse_iterator       reverse_iterator;
+    typedef typename nested_container::const_reverse_iterator const_reverse_iterator;
+
+    nasty_list() : l_() {}
+    explicit nasty_list(size_type n)  : l_(n) {}
+    nasty_list(size_type n, const value_type& value)  : l_(n,value) {}
+    template <class Iter>
+        nasty_list(Iter first, Iter last)  : l_(first, last) {}
+#if TEST_STD_VER >= 11
+    nasty_list(std::initializer_list<value_type> il) : l_(il) {}
+#endif
+
+    ~nasty_list() {}
+
+#if TEST_STD_VER >= 11
+    nasty_list& operator=(std::initializer_list<value_type> il) { l_ = il; return *this; }
+#endif
+    template <class Iter>
+        void assign(Iter first, Iter last) { l_.assign(first, last); }
+    void assign(size_type n, const value_type& t) { l_.assign(n, t); }
+#if TEST_STD_VER >= 11
+    void assign(std::initializer_list<value_type> il) { l_.assign(il); }
+#endif
+
+
+    iterator               begin() TEST_NOEXCEPT         { return l_.begin(); }
+    const_iterator         begin()   const TEST_NOEXCEPT { return l_.begin(); }
+    iterator               end() TEST_NOEXCEPT           { return l_.end(); }
+    const_iterator         end()     const TEST_NOEXCEPT { return l_.end(); }
+
+    reverse_iterator       rbegin() TEST_NOEXCEPT        { return l_.rbegin(); }
+    const_reverse_iterator rbegin()  const TEST_NOEXCEPT { return l_.rbegin(); }
+    reverse_iterator       rend() TEST_NOEXCEPT          { return l_.rend(); }
+    const_reverse_iterator rend()    const TEST_NOEXCEPT { return l_.rend(); }
+
+    const_iterator         cbegin()  const TEST_NOEXCEPT { return l_.cbegin(); }
+    const_iterator         cend()    const TEST_NOEXCEPT { return l_.cend(); }
+    const_reverse_iterator crbegin() const TEST_NOEXCEPT { return l_.crbegin(); }
+    const_reverse_iterator crend()   const TEST_NOEXCEPT { return l_.crend(); }
+
+    reference       front()       { return l_.front(); }
+    const_reference front() const { return l_.front(); }
+    reference       back()        { return l_.back(); }
+    const_reference back() const  { return l_.back(); }
+
+    size_type size() const TEST_NOEXCEPT      { return l_.size(); }
+    size_type max_size() const TEST_NOEXCEPT  { return l_.max_size(); }
+    bool empty() const TEST_NOEXCEPT          { return l_.empty(); }
+
+    void push_front(const value_type& x)    { l_.push_front(x); }
+    void push_back(const value_type& x)     { l_.push_back(x); }
+#if TEST_STD_VER >= 11
+    void push_back(value_type&& x)          { l_.push_back(std::forward<value_type&&>(x)); }
+    void push_front(value_type&& x)         { l_.push_back(std::forward<value_type&&>(x)); }
+    template <class... Args>
+        void emplace_back(Args&&... args)   { l_.emplace_back(std::forward<Args>(args)...); }
+    template <class... Args>
+        void emplace_front(Args&&... args)  { l_.emplace_front(std::forward<Args>(args)...); }
+#endif
+    void pop_front()                        { l_.pop_front(); }
+    void pop_back()                         { l_.pop_back(); }
+
+#if TEST_STD_VER >= 11
+    template <class... Args> iterator emplace(const_iterator pos, Args&&... args)
+    { return l_.emplace(pos, std::forward<Args>(args)...); }
+#endif
+
+    iterator insert(const_iterator pos, const value_type& x) { return l_.insert(pos, x); }
+#if TEST_STD_VER >= 11
+    iterator insert(const_iterator pos, value_type&& x)      { return l_.insert(pos, std::forward<value_type>(x)); }
+#endif
+    iterator insert(const_iterator pos, size_type n, const value_type& x) { return l_.insert(pos, n, x); }
+    template <class InputIterator>
+        iterator insert(const_iterator pos, InputIterator first, InputIterator last)
+    { return l_.insert(pos, first, last); }
+
+#if TEST_STD_VER >= 11
+    iterator insert(const_iterator pos, std::initializer_list<value_type> il) { return l_.insert(pos, il); }
+#endif
+
+    iterator erase(const_iterator pos)                      { return l_.erase(pos); }
+    iterator erase(const_iterator pos, const_iterator last) { return l_.erase(pos, last); }
+
+    void resize(size_type)                      { l_.resize(); }
+    void resize(size_type, const value_type& c) { l_.resize(c); }
+
+    void swap(nasty_list &nl)
+#if TEST_STD_VER > 14
+    noexcept(std::is_nothrow_swappable<nested_container>::value)
+#elif defined(_LIBCPP_VERSION)
+    TEST_NOEXCEPT_COND(std::__is_nothrow_swappable<nested_container>::value)
+#endif
+    { l_.swap(nl.l_); }
+
+    void clear() TEST_NOEXCEPT { l_.clear(); }
+
+//     void splice(const_iterator position, list& x);
+//     void splice(const_iterator position, list&& x);
+//     void splice(const_iterator position, list& x, const_iterator i);
+//     void splice(const_iterator position, list&& x, const_iterator i);
+//     void splice(const_iterator position, list& x, const_iterator first,
+//                                                   const_iterator last);
+//     void splice(const_iterator position, list&& x, const_iterator first,
+//                                                   const_iterator last);
+//
+//     void remove(const value_type& value);
+//     template <class Pred> void remove_if(Pred pred);
+//     void unique();
+//     template <class BinaryPredicate>
+//         void unique(BinaryPredicate binary_pred);
+//     void merge(list& x);
+//     void merge(list&& x);
+//     template <class Compare>
+//         void merge(list& x, Compare comp);
+//     template <class Compare>
+//         void merge(list&& x, Compare comp);
+//     void sort();
+//     template <class Compare>
+//         void sort(Compare comp);
+//     void reverse() noexcept;
+
+    nasty_list *operator &()             { assert(false); return nullptr; }  // nasty
+    const nasty_list *operator &() const { assert(false); return nullptr; }  // nasty
+
+    nested_container l_;
+};
+
+template <class T>
+bool operator==(const nasty_list<T>& x, const nasty_list<T>& y) { return x.l_ == y.l_; }
+
+// Not really a mutex, but can play one in tests
+class nasty_mutex
+{
+public:
+     nasty_mutex() TEST_NOEXCEPT {}
+     ~nasty_mutex() {}
+
+    nasty_mutex *operator& ()   { assert(false); return nullptr; }
+    template <typename T>
+    void operator, (const T &) { assert(false); }
+
+private:
+    nasty_mutex(const nasty_mutex&)            { assert(false); }
+    nasty_mutex& operator=(const nasty_mutex&) { assert(false); return *this; }
+
+public:
+    void lock()               {}
+    bool try_lock() TEST_NOEXCEPT { return true; }
+    void unlock() TEST_NOEXCEPT   {}
+
+    // Shared ownership
+    void lock_shared()     {}
+    bool try_lock_shared() { return true; }
+    void unlock_shared()   {}
+};
+
+#endif

Removed: libcxx/trunk/test/support/nasty_containers.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/nasty_containers.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/nasty_containers.hpp (original)
+++ libcxx/trunk/test/support/nasty_containers.hpp (removed)
@@ -1,312 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef NASTY_CONTAINERS_H
-#define NASTY_CONTAINERS_H
-
-#include <cassert>
-#include <vector>
-#include <list>
-
-#include "test_macros.h"
-
-template <class T>
-class nasty_vector
-{
-public:
-    typedef typename std::vector<T>                           nested_container;
-    typedef typename nested_container::value_type             value_type;
-    typedef typename nested_container::reference              reference;
-    typedef typename nested_container::const_reference        const_reference;
-    typedef typename nested_container::iterator               iterator;
-    typedef typename nested_container::const_iterator         const_iterator;
-
-    typedef typename nested_container::size_type              size_type;
-    typedef typename nested_container::difference_type        difference_type;
-    typedef typename nested_container::pointer                pointer;
-    typedef typename nested_container::const_pointer          const_pointer;
-
-    typedef typename nested_container::reverse_iterator       reverse_iterator;
-    typedef typename nested_container::const_reverse_iterator const_reverse_iterator;
-
-    nasty_vector() : v_() {}
-    explicit nasty_vector(size_type n) : v_(n) {}
-    nasty_vector(size_type n, const value_type& value) : v_(n, value) {}
-    template <class InputIterator> nasty_vector(InputIterator first, InputIterator last) : v_(first, last) {}
-#if TEST_STD_VER >= 11
-    nasty_vector(std::initializer_list<value_type> il) : v_(il) {}
-#endif
-    ~nasty_vector() {}
-
-    template <class InputIterator>
-        void assign(InputIterator first, InputIterator last) { v_.assign(first, last); }
-    void assign(size_type n, const value_type& u) { v_.assign(n, u); }
-#if TEST_STD_VER >= 11
-    void assign(std::initializer_list<value_type> il)  { v_.assign(il); }
-#endif
-
-    iterator               begin() TEST_NOEXCEPT         { return v_.begin(); }
-    const_iterator         begin()   const TEST_NOEXCEPT { return v_.begin(); }
-    iterator               end() TEST_NOEXCEPT           { return v_.end(); }
-    const_iterator         end()     const TEST_NOEXCEPT { return v_.end(); }
-
-    reverse_iterator       rbegin() TEST_NOEXCEPT        { return v_.rbegin(); }
-    const_reverse_iterator rbegin()  const TEST_NOEXCEPT { return v_.rbegin(); }
-    reverse_iterator       rend() TEST_NOEXCEPT          { return v_.rend(); }
-    const_reverse_iterator rend()    const TEST_NOEXCEPT { return v_.rend(); }
-
-    const_iterator         cbegin()  const TEST_NOEXCEPT { return v_.cbegin(); }
-    const_iterator         cend()    const TEST_NOEXCEPT { return v_.cend(); }
-    const_reverse_iterator crbegin() const TEST_NOEXCEPT { return v_.crbegin(); }
-    const_reverse_iterator crend()   const TEST_NOEXCEPT { return v_.crend(); }
-
-    size_type size() const TEST_NOEXCEPT      { return v_.size(); }
-    size_type max_size() const TEST_NOEXCEPT  { return v_.max_size(); }
-    size_type capacity() const TEST_NOEXCEPT  { return v_.capacity(); }
-    bool empty() const TEST_NOEXCEPT          { return v_.empty(); }
-    void reserve(size_type n)             { v_.reserve(n); };
-    void shrink_to_fit() TEST_NOEXCEPT        { v_.shrink_to_fit(); }
-
-    reference       operator[](size_type n)       { return v_[n]; }
-    const_reference operator[](size_type n) const { return v_[n]; }
-    reference       at(size_type n)               { return v_.at(n); }
-    const_reference at(size_type n) const         { return v_.at(n); }
-
-    reference       front()       { return v_.front(); }
-    const_reference front() const { return v_.front(); }
-    reference       back()        { return v_.back(); }
-    const_reference back() const  { return v_.back(); }
-
-    value_type*       data() TEST_NOEXCEPT       { return v_.data(); }
-    const value_type* data() const TEST_NOEXCEPT { return v_.data(); }
-
-    void push_back(const value_type& x)     { v_.push_back(x); }
-#if TEST_STD_VER >= 11
-    void push_back(value_type&& x)          { v_.push_back(std::forward<value_type&&>(x)); }
-    template <class... Args>
-        void emplace_back(Args&&... args)   { v_.emplace_back(std::forward<Args>(args)...); }
-#endif
-    void pop_back()                         { v_.pop_back(); }
-
-#if TEST_STD_VER >= 11
-    template <class... Args> iterator emplace(const_iterator pos, Args&&... args)
-    { return v_.emplace(pos, std::forward<Args>(args)...); }
-#endif
-
-    iterator insert(const_iterator pos, const value_type& x) { return v_.insert(pos, x); }
-#if TEST_STD_VER >= 11
-    iterator insert(const_iterator pos, value_type&& x)      { return v_.insert(pos, std::forward<value_type>(x)); }
-#endif
-    iterator insert(const_iterator pos, size_type n, const value_type& x) { return v_.insert(pos, n, x); }
-    template <class InputIterator>
-        iterator insert(const_iterator pos, InputIterator first, InputIterator last)
-    { return v_.insert(pos, first, last); }
-
-#if TEST_STD_VER >= 11
-    iterator insert(const_iterator pos, std::initializer_list<value_type> il) { return v_.insert(pos, il); }
-#endif
-
-    iterator erase(const_iterator pos)                        { return v_.erase(pos); }
-    iterator erase(const_iterator first, const_iterator last) { return v_.erase(first, last); }
-
-    void clear() TEST_NOEXCEPT { v_.clear(); }
-
-    void resize(size_type sz)                      { v_.resize(sz); }
-    void resize(size_type sz, const value_type& c) { v_.resize(sz, c); }
-
-    void swap(nasty_vector &nv)
-#if TEST_STD_VER > 14
-    noexcept(std::is_nothrow_swappable<nested_container>::value)
-#elif defined(_LIBCPP_VERSION)
-    TEST_NOEXCEPT_COND(std::__is_nothrow_swappable<nested_container>::value)
-#endif
-    { v_.swap(nv.v_); }
-
-    nasty_vector *operator &()             { assert(false); return nullptr; }  // nasty
-    const nasty_vector *operator &() const { assert(false); return nullptr; }  // nasty
-
-    nested_container v_;
-};
-
-template <class T>
-bool operator==(const nasty_vector<T>& x, const nasty_vector<T>& y) { return x.v_ == y.v_; }
-
-template <class T>
-class nasty_list
-{
-public:
-
-    typedef typename std::list<T>                             nested_container;
-    typedef typename nested_container::value_type             value_type;
-    typedef typename nested_container::reference              reference;
-    typedef typename nested_container::const_reference        const_reference;
-    typedef typename nested_container::iterator               iterator;
-    typedef typename nested_container::const_iterator         const_iterator;
-
-    typedef typename nested_container::size_type              size_type;
-    typedef typename nested_container::difference_type        difference_type;
-    typedef typename nested_container::pointer                pointer;
-    typedef typename nested_container::const_pointer          const_pointer;
-
-    typedef typename nested_container::reverse_iterator       reverse_iterator;
-    typedef typename nested_container::const_reverse_iterator const_reverse_iterator;
-
-    nasty_list() : l_() {}
-    explicit nasty_list(size_type n)  : l_(n) {}
-    nasty_list(size_type n, const value_type& value)  : l_(n,value) {}
-    template <class Iter>
-        nasty_list(Iter first, Iter last)  : l_(first, last) {}
-#if TEST_STD_VER >= 11
-    nasty_list(std::initializer_list<value_type> il) : l_(il) {}
-#endif
-
-    ~nasty_list() {}
-
-#if TEST_STD_VER >= 11
-    nasty_list& operator=(std::initializer_list<value_type> il) { l_ = il; return *this; }
-#endif
-    template <class Iter>
-        void assign(Iter first, Iter last) { l_.assign(first, last); }
-    void assign(size_type n, const value_type& t) { l_.assign(n, t); }
-#if TEST_STD_VER >= 11
-    void assign(std::initializer_list<value_type> il) { l_.assign(il); }
-#endif
-
-
-    iterator               begin() TEST_NOEXCEPT         { return l_.begin(); }
-    const_iterator         begin()   const TEST_NOEXCEPT { return l_.begin(); }
-    iterator               end() TEST_NOEXCEPT           { return l_.end(); }
-    const_iterator         end()     const TEST_NOEXCEPT { return l_.end(); }
-
-    reverse_iterator       rbegin() TEST_NOEXCEPT        { return l_.rbegin(); }
-    const_reverse_iterator rbegin()  const TEST_NOEXCEPT { return l_.rbegin(); }
-    reverse_iterator       rend() TEST_NOEXCEPT          { return l_.rend(); }
-    const_reverse_iterator rend()    const TEST_NOEXCEPT { return l_.rend(); }
-
-    const_iterator         cbegin()  const TEST_NOEXCEPT { return l_.cbegin(); }
-    const_iterator         cend()    const TEST_NOEXCEPT { return l_.cend(); }
-    const_reverse_iterator crbegin() const TEST_NOEXCEPT { return l_.crbegin(); }
-    const_reverse_iterator crend()   const TEST_NOEXCEPT { return l_.crend(); }
-
-    reference       front()       { return l_.front(); }
-    const_reference front() const { return l_.front(); }
-    reference       back()        { return l_.back(); }
-    const_reference back() const  { return l_.back(); }
-
-    size_type size() const TEST_NOEXCEPT      { return l_.size(); }
-    size_type max_size() const TEST_NOEXCEPT  { return l_.max_size(); }
-    bool empty() const TEST_NOEXCEPT          { return l_.empty(); }
-
-    void push_front(const value_type& x)    { l_.push_front(x); }
-    void push_back(const value_type& x)     { l_.push_back(x); }
-#if TEST_STD_VER >= 11
-    void push_back(value_type&& x)          { l_.push_back(std::forward<value_type&&>(x)); }
-    void push_front(value_type&& x)         { l_.push_back(std::forward<value_type&&>(x)); }
-    template <class... Args>
-        void emplace_back(Args&&... args)   { l_.emplace_back(std::forward<Args>(args)...); }
-    template <class... Args>
-        void emplace_front(Args&&... args)  { l_.emplace_front(std::forward<Args>(args)...); }
-#endif
-    void pop_front()                        { l_.pop_front(); }
-    void pop_back()                         { l_.pop_back(); }
-
-#if TEST_STD_VER >= 11
-    template <class... Args> iterator emplace(const_iterator pos, Args&&... args)
-    { return l_.emplace(pos, std::forward<Args>(args)...); }
-#endif
-
-    iterator insert(const_iterator pos, const value_type& x) { return l_.insert(pos, x); }
-#if TEST_STD_VER >= 11
-    iterator insert(const_iterator pos, value_type&& x)      { return l_.insert(pos, std::forward<value_type>(x)); }
-#endif
-    iterator insert(const_iterator pos, size_type n, const value_type& x) { return l_.insert(pos, n, x); }
-    template <class InputIterator>
-        iterator insert(const_iterator pos, InputIterator first, InputIterator last)
-    { return l_.insert(pos, first, last); }
-
-#if TEST_STD_VER >= 11
-    iterator insert(const_iterator pos, std::initializer_list<value_type> il) { return l_.insert(pos, il); }
-#endif
-
-    iterator erase(const_iterator pos)                      { return l_.erase(pos); }
-    iterator erase(const_iterator pos, const_iterator last) { return l_.erase(pos, last); }
-
-    void resize(size_type)                      { l_.resize(); }
-    void resize(size_type, const value_type& c) { l_.resize(c); }
-
-    void swap(nasty_list &nl)
-#if TEST_STD_VER > 14
-    noexcept(std::is_nothrow_swappable<nested_container>::value)
-#elif defined(_LIBCPP_VERSION)
-    TEST_NOEXCEPT_COND(std::__is_nothrow_swappable<nested_container>::value)
-#endif
-    { l_.swap(nl.l_); }
-
-    void clear() TEST_NOEXCEPT { l_.clear(); }
-
-//     void splice(const_iterator position, list& x);
-//     void splice(const_iterator position, list&& x);
-//     void splice(const_iterator position, list& x, const_iterator i);
-//     void splice(const_iterator position, list&& x, const_iterator i);
-//     void splice(const_iterator position, list& x, const_iterator first,
-//                                                   const_iterator last);
-//     void splice(const_iterator position, list&& x, const_iterator first,
-//                                                   const_iterator last);
-//
-//     void remove(const value_type& value);
-//     template <class Pred> void remove_if(Pred pred);
-//     void unique();
-//     template <class BinaryPredicate>
-//         void unique(BinaryPredicate binary_pred);
-//     void merge(list& x);
-//     void merge(list&& x);
-//     template <class Compare>
-//         void merge(list& x, Compare comp);
-//     template <class Compare>
-//         void merge(list&& x, Compare comp);
-//     void sort();
-//     template <class Compare>
-//         void sort(Compare comp);
-//     void reverse() noexcept;
-
-    nasty_list *operator &()             { assert(false); return nullptr; }  // nasty
-    const nasty_list *operator &() const { assert(false); return nullptr; }  // nasty
-
-    nested_container l_;
-};
-
-template <class T>
-bool operator==(const nasty_list<T>& x, const nasty_list<T>& y) { return x.l_ == y.l_; }
-
-// Not really a mutex, but can play one in tests
-class nasty_mutex
-{
-public:
-     nasty_mutex() TEST_NOEXCEPT {}
-     ~nasty_mutex() {}
-
-    nasty_mutex *operator& ()   { assert(false); return nullptr; }
-    template <typename T>
-    void operator, (const T &) { assert(false); }
-
-private:
-    nasty_mutex(const nasty_mutex&)            { assert(false); }
-    nasty_mutex& operator=(const nasty_mutex&) { assert(false); return *this; }
-
-public:
-    void lock()               {}
-    bool try_lock() TEST_NOEXCEPT { return true; }
-    void unlock() TEST_NOEXCEPT   {}
-
-    // Shared ownership
-    void lock_shared()     {}
-    bool try_lock_shared() { return true; }
-    void unlock_shared()   {}
-};
-
-#endif

Added: libcxx/trunk/test/support/nasty_macros.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/nasty_macros.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/nasty_macros.h (added)
+++ libcxx/trunk/test/support/nasty_macros.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,68 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#ifndef SUPPORT_NASTY_MACROS_H
+#define SUPPORT_NASTY_MACROS_H
+
+#define NASTY_MACRO This should not be expanded!!!
+#define _A NASTY_MACRO
+#define _B NASTY_MACRO
+#define _C NASTY_MACRO
+#define _D NASTY_MACRO
+#define _E NASTY_MACRO
+#define _F NASTY_MACRO
+#define _G NASTY_MACRO
+#define _H NASTY_MACRO
+#define _I NASTY_MACRO
+#define _J NASTY_MACRO
+#define _K NASTY_MACRO
+#define _L NASTY_MACRO
+// Because FreeBSD uses _M in its <sys/types.h>, and it is hard to avoid
+// including that header, only define _M for other operating systems.
+#ifndef __FreeBSD__
+#define _M NASTY_MACRO
+#endif
+#define _N NASTY_MACRO
+#define _O NASTY_MACRO
+#define _P NASTY_MACRO
+#define _Q NASTY_MACRO
+#define _R NASTY_MACRO
+#define _S NASTY_MACRO
+#define _T NASTY_MACRO
+#define _U NASTY_MACRO
+#define _V NASTY_MACRO
+#define _W NASTY_MACRO
+#define _X NASTY_MACRO
+#define _Y NASTY_MACRO
+#define _Z NASTY_MACRO
+
+// tchar.h defines these macros on Windows.
+#define _UI   NASTY_MACRO
+#define _PUC  NASTY_MACRO
+#define _CPUC NASTY_MACRO
+#define _PC   NASTY_MACRO
+#define _CRPC NASTY_MACRO
+#define _CPC  NASTY_MACRO
+
+// yvals.h on MINGW defines this macro
+#define _C2 NASTY_MACRO
+
+// Test that libc++ doesn't use names reserved by WIN32 API Macros.
+// NOTE: Obviously we can only define these on non-windows platforms.
+#ifndef _WIN32
+#define __allocator NASTY_MACRO
+#define __deallocate NASTY_MACRO
+#define __out NASTY_MACRO
+#endif
+
+#define __output NASTY_MACRO
+#define __input NASTY_MACRO
+
+#define __acquire NASTY_MACRO
+#define __release NASTY_MACRO
+
+#endif // SUPPORT_NASTY_MACROS_H

Removed: libcxx/trunk/test/support/nasty_macros.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/nasty_macros.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/nasty_macros.hpp (original)
+++ libcxx/trunk/test/support/nasty_macros.hpp (removed)
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef SUPPORT_NASTY_MACROS_HPP
-#define SUPPORT_NASTY_MACROS_HPP
-
-#define NASTY_MACRO This should not be expanded!!!
-#define _A NASTY_MACRO
-#define _B NASTY_MACRO
-#define _C NASTY_MACRO
-#define _D NASTY_MACRO
-#define _E NASTY_MACRO
-#define _F NASTY_MACRO
-#define _G NASTY_MACRO
-#define _H NASTY_MACRO
-#define _I NASTY_MACRO
-#define _J NASTY_MACRO
-#define _K NASTY_MACRO
-#define _L NASTY_MACRO
-// Because FreeBSD uses _M in its <sys/types.h>, and it is hard to avoid
-// including that header, only define _M for other operating systems.
-#ifndef __FreeBSD__
-#define _M NASTY_MACRO
-#endif
-#define _N NASTY_MACRO
-#define _O NASTY_MACRO
-#define _P NASTY_MACRO
-#define _Q NASTY_MACRO
-#define _R NASTY_MACRO
-#define _S NASTY_MACRO
-#define _T NASTY_MACRO
-#define _U NASTY_MACRO
-#define _V NASTY_MACRO
-#define _W NASTY_MACRO
-#define _X NASTY_MACRO
-#define _Y NASTY_MACRO
-#define _Z NASTY_MACRO
-
-// tchar.h defines these macros on Windows.
-#define _UI   NASTY_MACRO
-#define _PUC  NASTY_MACRO
-#define _CPUC NASTY_MACRO
-#define _PC   NASTY_MACRO
-#define _CRPC NASTY_MACRO
-#define _CPC  NASTY_MACRO
-
-// yvals.h on MINGW defines this macro
-#define _C2 NASTY_MACRO
-
-// Test that libc++ doesn't use names reserved by WIN32 API Macros.
-// NOTE: Obviously we can only define these on non-windows platforms.
-#ifndef _WIN32
-#define __allocator NASTY_MACRO
-#define __deallocate NASTY_MACRO
-#define __out NASTY_MACRO
-#endif
-
-#define __output NASTY_MACRO
-#define __input NASTY_MACRO
-
-#define __acquire NASTY_MACRO
-#define __release NASTY_MACRO
-
-#endif // SUPPORT_NASTY_MACROS_HPP

Added: libcxx/trunk/test/support/poisoned_hash_helper.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/poisoned_hash_helper.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/poisoned_hash_helper.h (added)
+++ libcxx/trunk/test/support/poisoned_hash_helper.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,242 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#ifndef SUPPORT_POISONED_HASH_HELPER_H
+#define SUPPORT_POISONED_HASH_HELPER_H
+
+#include <type_traits>
+#include <cassert>
+
+#include "test_macros.h"
+#include "test_workarounds.h"
+
+#if TEST_STD_VER < 11
+#error this header may only be used in C++11 or newer
+#endif
+
+template <class ...Args> struct TypeList;
+
+// Test that the specified Hash meets the requirements of an enabled hash
+template <class Hash, class Key, class InputKey = Key>
+void test_hash_enabled(InputKey const& key = InputKey{});
+
+template <class T, class InputKey = T>
+void test_hash_enabled_for_type(InputKey const& key = InputKey{}) {
+  return test_hash_enabled<std::hash<T>, T, InputKey>(key);
+}
+
+// Test that the specified Hash meets the requirements of a disabled hash.
+template <class Hash, class Key>
+void test_hash_disabled();
+
+template <class T>
+void test_hash_disabled_for_type() {
+  return test_hash_disabled<std::hash<T>, T>();
+}
+
+namespace PoisonedHashDetail {
+  enum Enum {};
+  enum EnumClass : bool {};
+  struct Class {};
+}
+
+// Each header that declares the template hash provides enabled
+// specializations of hash for nullptr t and all cv-unqualified
+// arithmetic, enumeration, and pointer types.
+using LibraryHashTypes = TypeList<
+#if TEST_STD_VER > 14
+      decltype(nullptr),
+#endif
+      bool,
+      char,
+      signed char,
+      unsigned char,
+      wchar_t,
+#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
+      char16_t,
+      char32_t,
+#endif
+      short,
+      unsigned short,
+      int,
+      unsigned int,
+      long,
+      unsigned long,
+      long long,
+      unsigned long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+      __int128_t,
+      __uint128_t,
+#endif
+      float,
+      double,
+      long double,
+#if TEST_STD_VER >= 14
+      // Enum types
+      PoisonedHashDetail::Enum,
+      PoisonedHashDetail::EnumClass,
+#endif
+      // pointer types
+      void*,
+      void const*,
+      PoisonedHashDetail::Class*
+    >;
+
+
+// Test that each of the library hash specializations for  arithmetic types,
+// enum types, and pointer types are available and enabled.
+template <class Types = LibraryHashTypes>
+void test_library_hash_specializations_available(Types = Types{});
+
+
+namespace PoisonedHashDetail {
+
+template <class T, class = typename T::foo_bar_baz>
+constexpr bool instantiate(int) { return true; }
+template <class> constexpr bool instantiate(long) { return true; }
+template <class T> constexpr bool instantiate() { return instantiate<T>(0); }
+
+template <class To>
+struct ConvertibleToSimple {
+  operator To() const {
+    return To{};
+  }
+};
+
+template <class To>
+struct ConvertibleTo {
+  To to{};
+  operator To&() & { return to; }
+  operator To const&() const & { return to; }
+  operator To&&() && { return std::move(to); }
+  operator To const&&() const && { return std::move(to); }
+};
+
+template <class HashExpr,
+         class Res = typename std::result_of<HashExpr>::type>
+constexpr bool can_hash(int) {
+  return std::is_same<Res, size_t>::value;
+}
+template <class> constexpr bool can_hash(long) { return false; }
+template <class T> constexpr bool can_hash() { return can_hash<T>(0); }
+
+} // namespace PoisonedHashDetail
+
+template <class Hash, class Key, class InputKey>
+void test_hash_enabled(InputKey const& key) {
+  using namespace PoisonedHashDetail;
+
+  static_assert(std::is_destructible<Hash>::value, "");
+  // Enabled hash requirements
+  static_assert(std::is_default_constructible<Hash>::value, "");
+  static_assert(std::is_copy_constructible<Hash>::value, "");
+  static_assert(std::is_move_constructible<Hash>::value, "");
+  static_assert(std::is_copy_assignable<Hash>::value, "");
+  static_assert(std::is_move_assignable<Hash>::value, "");
+
+#if TEST_STD_VER > 14
+  static_assert(std::is_swappable<Hash>::value, "");
+#elif defined(_LIBCPP_VERSION)
+  static_assert(std::__is_swappable<Hash>::value, "");
+#endif
+
+  // Hashable requirements
+  static_assert(can_hash<Hash(Key&)>(), "");
+  static_assert(can_hash<Hash(Key const&)>(), "");
+  static_assert(can_hash<Hash(Key&&)>(), "");
+  static_assert(can_hash<Hash const&(Key&)>(), "");
+  static_assert(can_hash<Hash const&(Key const&)>(), "");
+  static_assert(can_hash<Hash const&(Key&&)>(), "");
+
+  static_assert(can_hash<Hash(ConvertibleToSimple<Key>&)>(), "");
+  static_assert(can_hash<Hash(ConvertibleToSimple<Key> const&)>(), "");
+  static_assert(can_hash<Hash(ConvertibleToSimple<Key>&&)>(), "");
+
+  static_assert(can_hash<Hash(ConvertibleTo<Key>&)>(), "");
+  static_assert(can_hash<Hash(ConvertibleTo<Key> const&)>(), "");
+  static_assert(can_hash<Hash(ConvertibleTo<Key> &&)>(), "");
+  static_assert(can_hash<Hash(ConvertibleTo<Key> const&&)>(), "");
+
+  const Hash h{};
+  assert(h(key) == h(key));
+
+}
+
+template <class Hash, class Key>
+void test_hash_disabled() {
+  using namespace PoisonedHashDetail;
+
+  // Disabled hash requirements
+  static_assert(!std::is_default_constructible<Hash>::value, "");
+  static_assert(!std::is_copy_constructible<Hash>::value, "");
+  static_assert(!std::is_move_constructible<Hash>::value, "");
+  static_assert(!std::is_copy_assignable<Hash>::value, "");
+  static_assert(!std::is_move_assignable<Hash>::value, "");
+
+  static_assert(!std::is_function<
+      typename std::remove_pointer<
+          typename std::remove_reference<Hash>::type
+      >::type
+    >::value, "");
+
+  // Hashable requirements
+  static_assert(!can_hash<Hash(Key&)>(), "");
+  static_assert(!can_hash<Hash(Key const&)>(), "");
+  static_assert(!can_hash<Hash(Key&&)>(), "");
+  static_assert(!can_hash<Hash const&(Key&)>(), "");
+  static_assert(!can_hash<Hash const&(Key const&)>(), "");
+  static_assert(!can_hash<Hash const&(Key&&)>(), "");
+
+  static_assert(!can_hash<Hash(ConvertibleToSimple<Key>&)>(), "");
+  static_assert(!can_hash<Hash(ConvertibleToSimple<Key> const&)>(), "");
+  static_assert(!can_hash<Hash(ConvertibleToSimple<Key>&&)>(), "");
+
+  static_assert(!can_hash<Hash(ConvertibleTo<Key>&)>(), "");
+  static_assert(!can_hash<Hash(ConvertibleTo<Key> const&)>(), "");
+  static_assert(!can_hash<Hash(ConvertibleTo<Key> &&)>(), "");
+  static_assert(!can_hash<Hash(ConvertibleTo<Key> const&&)>(), "");
+}
+
+
+template <class First, class ...Rest>
+struct TypeList<First, Rest...> {
+  template <template <class> class Trait, bool Expect = true>
+  static constexpr bool assertTrait() {
+    static_assert(Trait<First>::value == Expect, "");
+    return TypeList<Rest...>::template assertTrait<Trait, Expect>();
+  }
+
+  template <class Trait>
+  static void applyTrait() {
+    Trait::template apply<First>();
+    TypeList<Rest...>::template applyTrait<Trait>();
+  }
+};
+
+template <>
+struct TypeList<> {
+  template <template <class> class Trait, bool Expect = true>
+  static constexpr bool assertTrait() {
+    return true;
+  }
+  template <class Trait>
+  static void applyTrait() {}
+};
+
+
+struct TestLibraryTrait {
+    template <class Type>
+    static void apply() { test_hash_enabled<std::hash<Type>, Type>(); }
+};
+
+template <class Types>
+void test_library_hash_specializations_available(Types) {
+  Types::template applyTrait<TestLibraryTrait >();
+}
+
+#endif // SUPPORT_POISONED_HASH_HELPER_H

Removed: libcxx/trunk/test/support/poisoned_hash_helper.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/poisoned_hash_helper.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/poisoned_hash_helper.hpp (original)
+++ libcxx/trunk/test/support/poisoned_hash_helper.hpp (removed)
@@ -1,242 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef SUPPORT_POISONED_HASH_HELPER_HPP
-#define SUPPORT_POISONED_HASH_HELPER_HPP
-
-#include <type_traits>
-#include <cassert>
-
-#include "test_macros.h"
-#include "test_workarounds.h"
-
-#if TEST_STD_VER < 11
-#error this header may only be used in C++11 or newer
-#endif
-
-template <class ...Args> struct TypeList;
-
-// Test that the specified Hash meets the requirements of an enabled hash
-template <class Hash, class Key, class InputKey = Key>
-void test_hash_enabled(InputKey const& key = InputKey{});
-
-template <class T, class InputKey = T>
-void test_hash_enabled_for_type(InputKey const& key = InputKey{}) {
-  return test_hash_enabled<std::hash<T>, T, InputKey>(key);
-}
-
-// Test that the specified Hash meets the requirements of a disabled hash.
-template <class Hash, class Key>
-void test_hash_disabled();
-
-template <class T>
-void test_hash_disabled_for_type() {
-  return test_hash_disabled<std::hash<T>, T>();
-}
-
-namespace PoisonedHashDetail {
-  enum Enum {};
-  enum EnumClass : bool {};
-  struct Class {};
-}
-
-// Each header that declares the template hash provides enabled
-// specializations of hash for nullptr t and all cv-unqualified
-// arithmetic, enumeration, and pointer types.
-using LibraryHashTypes = TypeList<
-#if TEST_STD_VER > 14
-      decltype(nullptr),
-#endif
-      bool,
-      char,
-      signed char,
-      unsigned char,
-      wchar_t,
-#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
-      char16_t,
-      char32_t,
-#endif
-      short,
-      unsigned short,
-      int,
-      unsigned int,
-      long,
-      unsigned long,
-      long long,
-      unsigned long long,
-#ifndef _LIBCPP_HAS_NO_INT128
-      __int128_t,
-      __uint128_t,
-#endif
-      float,
-      double,
-      long double,
-#if TEST_STD_VER >= 14
-      // Enum types
-      PoisonedHashDetail::Enum,
-      PoisonedHashDetail::EnumClass,
-#endif
-      // pointer types
-      void*,
-      void const*,
-      PoisonedHashDetail::Class*
-    >;
-
-
-// Test that each of the library hash specializations for  arithmetic types,
-// enum types, and pointer types are available and enabled.
-template <class Types = LibraryHashTypes>
-void test_library_hash_specializations_available(Types = Types{});
-
-
-namespace PoisonedHashDetail {
-
-template <class T, class = typename T::foo_bar_baz>
-constexpr bool instantiate(int) { return true; }
-template <class> constexpr bool instantiate(long) { return true; }
-template <class T> constexpr bool instantiate() { return instantiate<T>(0); }
-
-template <class To>
-struct ConvertibleToSimple {
-  operator To() const {
-    return To{};
-  }
-};
-
-template <class To>
-struct ConvertibleTo {
-  To to{};
-  operator To&() & { return to; }
-  operator To const&() const & { return to; }
-  operator To&&() && { return std::move(to); }
-  operator To const&&() const && { return std::move(to); }
-};
-
-template <class HashExpr,
-         class Res = typename std::result_of<HashExpr>::type>
-constexpr bool can_hash(int) {
-  return std::is_same<Res, size_t>::value;
-}
-template <class> constexpr bool can_hash(long) { return false; }
-template <class T> constexpr bool can_hash() { return can_hash<T>(0); }
-
-} // namespace PoisonedHashDetail
-
-template <class Hash, class Key, class InputKey>
-void test_hash_enabled(InputKey const& key) {
-  using namespace PoisonedHashDetail;
-
-  static_assert(std::is_destructible<Hash>::value, "");
-  // Enabled hash requirements
-  static_assert(std::is_default_constructible<Hash>::value, "");
-  static_assert(std::is_copy_constructible<Hash>::value, "");
-  static_assert(std::is_move_constructible<Hash>::value, "");
-  static_assert(std::is_copy_assignable<Hash>::value, "");
-  static_assert(std::is_move_assignable<Hash>::value, "");
-
-#if TEST_STD_VER > 14
-  static_assert(std::is_swappable<Hash>::value, "");
-#elif defined(_LIBCPP_VERSION)
-  static_assert(std::__is_swappable<Hash>::value, "");
-#endif
-
-  // Hashable requirements
-  static_assert(can_hash<Hash(Key&)>(), "");
-  static_assert(can_hash<Hash(Key const&)>(), "");
-  static_assert(can_hash<Hash(Key&&)>(), "");
-  static_assert(can_hash<Hash const&(Key&)>(), "");
-  static_assert(can_hash<Hash const&(Key const&)>(), "");
-  static_assert(can_hash<Hash const&(Key&&)>(), "");
-
-  static_assert(can_hash<Hash(ConvertibleToSimple<Key>&)>(), "");
-  static_assert(can_hash<Hash(ConvertibleToSimple<Key> const&)>(), "");
-  static_assert(can_hash<Hash(ConvertibleToSimple<Key>&&)>(), "");
-
-  static_assert(can_hash<Hash(ConvertibleTo<Key>&)>(), "");
-  static_assert(can_hash<Hash(ConvertibleTo<Key> const&)>(), "");
-  static_assert(can_hash<Hash(ConvertibleTo<Key> &&)>(), "");
-  static_assert(can_hash<Hash(ConvertibleTo<Key> const&&)>(), "");
-
-  const Hash h{};
-  assert(h(key) == h(key));
-
-}
-
-template <class Hash, class Key>
-void test_hash_disabled() {
-  using namespace PoisonedHashDetail;
-
-  // Disabled hash requirements
-  static_assert(!std::is_default_constructible<Hash>::value, "");
-  static_assert(!std::is_copy_constructible<Hash>::value, "");
-  static_assert(!std::is_move_constructible<Hash>::value, "");
-  static_assert(!std::is_copy_assignable<Hash>::value, "");
-  static_assert(!std::is_move_assignable<Hash>::value, "");
-
-  static_assert(!std::is_function<
-      typename std::remove_pointer<
-          typename std::remove_reference<Hash>::type
-      >::type
-    >::value, "");
-
-  // Hashable requirements
-  static_assert(!can_hash<Hash(Key&)>(), "");
-  static_assert(!can_hash<Hash(Key const&)>(), "");
-  static_assert(!can_hash<Hash(Key&&)>(), "");
-  static_assert(!can_hash<Hash const&(Key&)>(), "");
-  static_assert(!can_hash<Hash const&(Key const&)>(), "");
-  static_assert(!can_hash<Hash const&(Key&&)>(), "");
-
-  static_assert(!can_hash<Hash(ConvertibleToSimple<Key>&)>(), "");
-  static_assert(!can_hash<Hash(ConvertibleToSimple<Key> const&)>(), "");
-  static_assert(!can_hash<Hash(ConvertibleToSimple<Key>&&)>(), "");
-
-  static_assert(!can_hash<Hash(ConvertibleTo<Key>&)>(), "");
-  static_assert(!can_hash<Hash(ConvertibleTo<Key> const&)>(), "");
-  static_assert(!can_hash<Hash(ConvertibleTo<Key> &&)>(), "");
-  static_assert(!can_hash<Hash(ConvertibleTo<Key> const&&)>(), "");
-}
-
-
-template <class First, class ...Rest>
-struct TypeList<First, Rest...> {
-  template <template <class> class Trait, bool Expect = true>
-  static constexpr bool assertTrait() {
-    static_assert(Trait<First>::value == Expect, "");
-    return TypeList<Rest...>::template assertTrait<Trait, Expect>();
-  }
-
-  template <class Trait>
-  static void applyTrait() {
-    Trait::template apply<First>();
-    TypeList<Rest...>::template applyTrait<Trait>();
-  }
-};
-
-template <>
-struct TypeList<> {
-  template <template <class> class Trait, bool Expect = true>
-  static constexpr bool assertTrait() {
-    return true;
-  }
-  template <class Trait>
-  static void applyTrait() {}
-};
-
-
-struct TestLibraryTrait {
-    template <class Type>
-    static void apply() { test_hash_enabled<std::hash<Type>, Type>(); }
-};
-
-template <class Types>
-void test_library_hash_specializations_available(Types) {
-  Types::template applyTrait<TestLibraryTrait >();
-}
-
-#endif // SUPPORT_POISONED_HASH_HELPER_HPP

Added: libcxx/trunk/test/support/private_constructor.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/private_constructor.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/private_constructor.h (added)
+++ libcxx/trunk/test/support/private_constructor.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,30 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef __PRIVATE_CONSTRUCTOR__H
+#define __PRIVATE_CONSTRUCTOR__H
+
+#include <iostream>
+
+struct PrivateConstructor {
+
+    PrivateConstructor static make ( int v ) { return PrivateConstructor(v); }
+    int get () const { return val; }
+private:
+    PrivateConstructor ( int v ) : val(v) {}
+    int val;
+    };
+
+bool operator < ( const PrivateConstructor &lhs, const PrivateConstructor &rhs ) { return lhs.get() < rhs.get(); }
+
+bool operator < ( const PrivateConstructor &lhs, int rhs ) { return lhs.get() < rhs; }
+bool operator < ( int lhs, const PrivateConstructor &rhs ) { return lhs < rhs.get(); }
+
+std::ostream & operator << ( std::ostream &os, const PrivateConstructor &foo ) { return os << foo.get (); }
+
+#endif

Removed: libcxx/trunk/test/support/private_constructor.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/private_constructor.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/private_constructor.hpp (original)
+++ libcxx/trunk/test/support/private_constructor.hpp (removed)
@@ -1,30 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef __PRIVATE_CONSTRUCTOR__H
-#define __PRIVATE_CONSTRUCTOR__H
-
-#include <iostream>
-
-struct PrivateConstructor {
-
-    PrivateConstructor static make ( int v ) { return PrivateConstructor(v); }
-    int get () const { return val; }
-private:
-    PrivateConstructor ( int v ) : val(v) {}
-    int val;
-    };
-
-bool operator < ( const PrivateConstructor &lhs, const PrivateConstructor &rhs ) { return lhs.get() < rhs.get(); }
-
-bool operator < ( const PrivateConstructor &lhs, int rhs ) { return lhs.get() < rhs; }
-bool operator < ( int lhs, const PrivateConstructor &rhs ) { return lhs < rhs.get(); }
-
-std::ostream & operator << ( std::ostream &os, const PrivateConstructor &foo ) { return os << foo.get (); }
-
-#endif

Added: libcxx/trunk/test/support/rapid-cxx-test.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/rapid-cxx-test.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/rapid-cxx-test.h (added)
+++ libcxx/trunk/test/support/rapid-cxx-test.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,866 @@
+#ifndef RAPID_CXX_TEST_H
+#define RAPID_CXX_TEST_H
+
+# include <cstddef>
+# include <cstdlib>
+# include <cstdio>
+# include <cstring>
+# include <cassert>
+
+#include "test_macros.h"
+
+#if !defined(RAPID_CXX_TEST_NO_SYSTEM_HEADER) || !defined(__GNUC__)
+#pragma GCC system_header
+#endif
+
+# define RAPID_CXX_TEST_PP_CAT(x, y) RAPID_CXX_TEST_PP_CAT_2(x, y)
+# define RAPID_CXX_TEST_PP_CAT_2(x, y) x##y
+
+# define RAPID_CXX_TEST_PP_STR(...) RAPID_CXX_TEST_PP_STR_2(__VA_ARGS__)
+# define RAPID_CXX_TEST_PP_STR_2(...) #__VA_ARGS__
+
+# if defined(__GNUC__)
+#   define TEST_FUNC_NAME() __PRETTY_FUNCTION__
+#   define RAPID_CXX_TEST_UNUSED __attribute__((unused))
+# else
+#   define TEST_FUNC_NAME() __func__
+#   define RAPID_CXX_TEST_UNUSED
+# endif
+
+////////////////////////////////////////////////////////////////////////////////
+//                          TEST_SUITE
+////////////////////////////////////////////////////////////////////////////////
+# define TEST_SUITE(Name)                                           \
+namespace Name                                                      \
+{                                                                   \
+    inline ::rapid_cxx_test::test_suite & get_test_suite()          \
+    {                                                               \
+        static ::rapid_cxx_test::test_suite m_suite(#Name);         \
+        return m_suite;                                             \
+    }                                                               \
+                                                                    \
+    inline int unit_test_main(int, char**)                          \
+    {                                                               \
+        ::rapid_cxx_test::test_runner runner(get_test_suite());     \
+        return runner.run();                                        \
+    }                                                               \
+}                                                                   \
+int main(int argc, char **argv)                                     \
+{                                                                   \
+    return Name::unit_test_main(argc, argv);                        \
+}                                                                   \
+namespace Name                                                      \
+{ /* namespace closed in TEST_SUITE_END */
+#
+
+////////////////////////////////////////////////////////////////////////////////
+//                         TEST_SUITE_END
+////////////////////////////////////////////////////////////////////////////////
+# define TEST_SUITE_END()                                       \
+} /* namespace opened in TEST_SUITE(...) */
+#
+
+////////////////////////////////////////////////////////////////////////////////
+//                          TEST_CASE
+////////////////////////////////////////////////////////////////////////////////
+
+# if !defined(__clang__)
+#
+# define TEST_CASE(Name)                                                                                \
+    void Name();                                                                                        \
+    static void RAPID_CXX_TEST_PP_CAT(Name, _invoker)()                                                 \
+    {                                                                                                   \
+        Name();                                                                                         \
+    }                                                                                                   \
+    static ::rapid_cxx_test::registrar                                                                  \
+    RAPID_CXX_TEST_PP_CAT(rapid_cxx_test_registrar_, Name)(                                         \
+        get_test_suite()                                                                                \
+      , ::rapid_cxx_test::test_case(__FILE__, #Name, __LINE__, & RAPID_CXX_TEST_PP_CAT(Name, _invoker)) \
+      );                                                                                                \
+    void Name()
+#
+# else /* __clang__ */
+#
+# define TEST_CASE(Name)                                                                                \
+    void Name();                                                                                        \
+    static void RAPID_CXX_TEST_PP_CAT(Name, _invoker)()                                                 \
+    {                                                                                                   \
+        Name();                                                                                         \
+    }                                                                                                   \
+    _Pragma("clang diagnostic push")                                                                    \
+    _Pragma("clang diagnostic ignored \"-Wglobal-constructors\"")                                       \
+    static ::rapid_cxx_test::registrar                                                                  \
+    RAPID_CXX_TEST_PP_CAT(rapid_cxx_test_registrar_, Name)(                                         \
+        get_test_suite()                                                                                \
+      , ::rapid_cxx_test::test_case(__FILE__, #Name, __LINE__, & RAPID_CXX_TEST_PP_CAT(Name, _invoker)) \
+      );                                                                                                \
+    _Pragma("clang diagnostic pop")                                                                     \
+    void Name()
+#
+# endif /* !defined(__clang__) */
+
+
+# define TEST_SET_CHECKPOINT() ::rapid_cxx_test::set_checkpoint(__FILE__, TEST_FUNC_NAME(), __LINE__)
+
+#define RAPID_CXX_TEST_OUTCOME()
+
+////////////////////////////////////////////////////////////////////////////////
+//                              TEST_UNSUPPORTED
+////////////////////////////////////////////////////////////////////////////////
+# define TEST_UNSUPPORTED()                                                                 \
+    do {                                                                                    \
+        TEST_SET_CHECKPOINT();                                                              \
+        ::rapid_cxx_test::test_outcome m_f(                                                 \
+          ::rapid_cxx_test::failure_type::unsupported, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+          , "", ""                                                                          \
+        );                                                                                  \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                       \
+        return;                                                                             \
+    } while (false)
+#
+
+
+////////////////////////////////////////////////////////////////////////////////
+//                            BASIC ASSERTIONS
+////////////////////////////////////////////////////////////////////////////////
+# define TEST_WARN(...)                                                                \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_WARN(" #__VA_ARGS__ ")", ""                                        \
+            );                                                                         \
+        if (not (__VA_ARGS__)) {                                                       \
+            m_f.type = ::rapid_cxx_test::failure_type::warn;                           \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+# define TEST_CHECK(...)                                                               \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_CHECK(" #__VA_ARGS__ ")", ""                                       \
+            );                                                                         \
+        if (not (__VA_ARGS__)) {                                                       \
+            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+# define TEST_REQUIRE(...)                                                             \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_REQUIRE(" #__VA_ARGS__ ")", ""                                     \
+            );                                                                         \
+        if (not (__VA_ARGS__)) {                                                       \
+            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            return;                                                                    \
+        }                                                                              \
+    } while (false)
+#
+
+# define TEST_ASSERT(...)                                                              \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_ASSERT(" #__VA_ARGS__ ")", ""                                      \
+            );                                                                         \
+        if (not (__VA_ARGS__)) {                                                       \
+            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            std::abort();                                                              \
+        }                                                                              \
+    } while (false)
+#
+
+////////////////////////////////////////////////////////////////////////////////
+//                    TEST_CHECK_NO_THROW / TEST_CHECK_THROW
+////////////////////////////////////////////////////////////////////////////////
+#ifndef TEST_HAS_NO_EXCEPTIONS
+
+# define TEST_CHECK_NO_THROW(...)                                                      \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_CHECK_NO_THROW(" #__VA_ARGS__ ")", ""                              \
+            );                                                                         \
+        try {                                                                          \
+            (static_cast<void>(__VA_ARGS__));                                          \
+        } catch (...) {                                                                \
+            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+# define TEST_CHECK_THROW(Except, ...)                                                 \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_CHECK_THROW(" #Except "," #__VA_ARGS__ ")", ""                     \
+            );                                                                         \
+        try {                                                                          \
+            (static_cast<void>(__VA_ARGS__));                                          \
+            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
+        } catch (Except const &) {}                                                    \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+#define TEST_CHECK_THROW_RESULT(Except, Checker, ...)                          \
+  do {                                                                         \
+    TEST_SET_CHECKPOINT();                                                     \
+    ::rapid_cxx_test::test_outcome m_f(::rapid_cxx_test::failure_type::none,   \
+                                       __FILE__, TEST_FUNC_NAME(), __LINE__,   \
+                                       "TEST_CHECK_THROW_RESULT(" #Except      \
+                                       "," #Checker "," #__VA_ARGS__ ")",      \
+                                       "");                                    \
+    try {                                                                      \
+      (static_cast<void>(__VA_ARGS__));                                        \
+      m_f.type = ::rapid_cxx_test::failure_type::check;                        \
+    } catch (Except const& Caught) {                                           \
+      Checker(Caught);                                                         \
+    }                                                                          \
+    ::rapid_cxx_test::get_reporter().report(m_f);                              \
+  } while (false)
+#
+
+#else // TEST_HAS_NO_EXCEPTIONS
+
+# define TEST_CHECK_NO_THROW(...)                                                      \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_CHECK_NO_THROW(" #__VA_ARGS__ ")", ""                              \
+            );                                                                         \
+        (static_cast<void>(__VA_ARGS__));                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+#define TEST_CHECK_THROW(Except, ...) ((void)0)
+#define TEST_CHECK_THROW_RESULT(Except, Checker, ...) ((void)0)
+
+#endif // TEST_HAS_NO_EXCEPTIONS
+
+
+////////////////////////////////////////////////////////////////////////////////
+//                    TEST_REQUIRE_NO_THROW / TEST_REQUIRE_THROWs
+////////////////////////////////////////////////////////////////////////////////
+#ifndef TEST_HAS_NO_EXCEPTIONS
+
+# define TEST_REQUIRE_NO_THROW(...)                                                    \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_REQUIRE_NO_THROW(" #__VA_ARGS__ ")", ""                            \
+            );                                                                         \
+        try {                                                                          \
+            (static_cast<void>(__VA_ARGS__));                                          \
+        } catch (...) {                                                                \
+            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            return;                                                                    \
+        }                                                                              \
+    } while (false)
+#
+
+# define TEST_REQUIRE_THROW(Except, ...)                                               \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_REQUIRE_THROW(" #Except "," #__VA_ARGS__ ")", ""                   \
+            );                                                                         \
+        try {                                                                          \
+            (static_cast<void>(__VA_ARGS__));                                          \
+            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
+        } catch (Except const &) {}                                                    \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            return;                                                                    \
+        }                                                                              \
+    } while (false)
+#
+
+#else // TEST_HAS_NO_EXCEPTIONS
+
+# define TEST_REQUIRE_NO_THROW(...)                                                    \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_REQUIRE_NO_THROW(" #__VA_ARGS__ ")", ""                            \
+            );                                                                         \
+        (static_cast<void>(__VA_ARGS__));                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+#define TEST_REQUIRE_THROW(Except, ...) ((void)0)
+
+#endif // TEST_HAS_NO_EXCEPTIONS
+
+////////////////////////////////////////////////////////////////////////////////
+//                    TEST_ASSERT_NO_THROW / TEST_ASSERT_THROW
+////////////////////////////////////////////////////////////////////////////////
+#ifndef TEST_HAS_NO_EXCEPTIONS
+
+# define TEST_ASSERT_NO_THROW(...)                                                     \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_ASSERT_NO_THROW(" #__VA_ARGS__ ")", ""                             \
+            );                                                                         \
+        try {                                                                          \
+            (static_cast<void>(__VA_ARGS__));                                          \
+        } catch (...) {                                                                \
+            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            std::abort();                                                              \
+        }                                                                              \
+    } while (false)
+#
+
+# define TEST_ASSERT_THROW(Except, ...)                                                \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_ASSERT_THROW(" #Except "," #__VA_ARGS__ ")", ""                    \
+            );                                                                         \
+        try {                                                                          \
+            (static_cast<void>(__VA_ARGS__));                                          \
+            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
+        } catch (Except const &) {}                                                    \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            std::abort();                                                              \
+        }                                                                              \
+    } while (false)
+#
+
+#else // TEST_HAS_NO_EXCEPTIONS
+
+# define TEST_ASSERT_NO_THROW(...)                                                     \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
+            , "TEST_ASSERT_NO_THROW(" #__VA_ARGS__ ")", ""                             \
+            );                                                                         \
+        (static_cast<void>(__VA_ARGS__));                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+#define TEST_ASSERT_THROW(Except, ...) ((void)0)
+
+#endif // TEST_HAS_NO_EXCEPTIONS
+
+////////////////////////////////////////////////////////////////////////////////
+//
+////////////////////////////////////////////////////////////////////////////////
+
+# define TEST_WARN_EQUAL_COLLECTIONS(...)                                              \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
+          , "TEST_WARN_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                        \
+        );                                                                             \
+        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
+            m_f.type = ::rapid_cxx_test::failure_type::warn;                           \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+# define TEST_CHECK_EQUAL_COLLECTIONS(...)                                             \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
+          , "TEST_CHECK_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                       \
+        );                                                                             \
+        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
+            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+    } while (false)
+#
+
+# define TEST_REQUIRE_EQUAL_COLLECTIONS(...)                                           \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
+          , "TEST_REQUIRE_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                     \
+        );                                                                             \
+        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
+            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+            return;                                                                    \
+        }                                                                              \
+    } while (false)
+#
+
+# define TEST_ASSERT_EQUAL_COLLECTIONS(...)                                            \
+    do {                                                                               \
+        TEST_SET_CHECKPOINT();                                                         \
+        ::rapid_cxx_test::test_outcome m_f(                                            \
+          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
+          , "TEST_ASSERT_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                      \
+        );                                                                             \
+        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
+            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
+        }                                                                              \
+        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
+        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
+          ::std::abort();                                                              \
+        }                                                                              \
+    } while (false)
+#
+
+namespace rapid_cxx_test
+{
+    typedef void (*invoker_t)();
+
+    ////////////////////////////////////////////////////////////////////////////
+    struct test_case
+    {
+        test_case()
+            : file(""), func(""), line(0), invoke(NULL)
+        {}
+
+        test_case(const char* file1, const char* func1, std::size_t line1,
+                  invoker_t invoke1)
+            : file(file1), func(func1), line(line1), invoke(invoke1)
+        {}
+
+        const char *file;
+        const char *func;
+        std::size_t line;
+        invoker_t invoke;
+    };
+
+    ////////////////////////////////////////////////////////////////////////////
+    struct failure_type
+    {
+        enum enum_type {
+            none,
+            unsupported,
+            warn,
+            check,
+            require,
+            assert,
+            uncaught_exception
+        };
+    };
+
+    typedef failure_type::enum_type failure_type_t;
+
+    ////////////////////////////////////////////////////////////////////////////
+    struct test_outcome
+    {
+        test_outcome()
+            : type(failure_type::none),
+              file(""), func(""), line(0),
+              expression(""), message("")
+        {}
+
+        test_outcome(failure_type_t type1, const char* file1, const char* func1,
+                     std::size_t line1, const char* expression1,
+                     const char* message1)
+            : type(type1), file(file1), func(func1), line(line1),
+              expression(expression1), message(message1)
+        {
+            trim_func_string();
+        }
+
+        failure_type_t type;
+        const char *file;
+        const char *func;
+        std::size_t line;
+        const char *expression;
+        const char *message;
+
+    private:
+        void trim_file_string() {
+            const char* f_start  = file;
+            const char* prev_start = f_start;
+            const char* last_start = f_start;
+            char last;
+            while ((last = *f_start) != '\0') {
+                ++f_start;
+                if (last == '/' && *f_start) {
+                    prev_start = last_start;
+                    last_start = f_start;
+                }
+            }
+            file = prev_start;
+        }
+      void trim_func_string() {
+          const char* void_loc = ::strstr(func, "void ");
+          if (void_loc == func) {
+              func += strlen("void ");
+          }
+          const char* namespace_loc = ::strstr(func, "::");
+          if (namespace_loc) {
+              func = namespace_loc + 2;
+          }
+      }
+    };
+
+    ////////////////////////////////////////////////////////////////////////////
+    struct checkpoint
+    {
+        const char *file;
+        const char *func;
+        std::size_t line;
+    };
+
+    namespace detail
+    {
+        inline checkpoint & global_checkpoint()
+        {
+            static checkpoint cp = {"", "", 0};
+            return cp;
+        }
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    inline void set_checkpoint(const char* file, const char* func, std::size_t line)
+    {
+        checkpoint& cp = detail::global_checkpoint();
+        cp.file = file;
+        cp.func = func;
+        cp.line = line;
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    inline checkpoint const & get_checkpoint()
+    {
+        return detail::global_checkpoint();
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    class test_suite
+    {
+    public:
+        typedef test_case const* iterator;
+        typedef iterator const_iterator;
+
+    public:
+        test_suite(const char *xname)
+          : m_name(xname), m_tests(), m_size(0)
+        {
+            assert(xname);
+        }
+
+    public:
+        const char *name() const { return m_name; }
+
+        std::size_t size() const { return m_size; }
+
+        test_case const & operator[](std::size_t i) const
+        {
+            assert(i < m_size);
+            return m_tests[i];
+        }
+
+        const_iterator begin() const
+        { return m_tests; }
+
+        const_iterator end() const
+        {
+            return m_tests + m_size;
+        }
+
+    public:
+        std::size_t register_test(test_case tc)
+        {
+            static std::size_t test_case_max = sizeof(m_tests) / sizeof(test_case);
+            assert(m_size < test_case_max);
+            m_tests[m_size] = tc;
+            return m_size++;
+        }
+
+    private:
+        test_suite(test_suite const &);
+        test_suite & operator=(test_suite const &);
+
+    private:
+        const char* m_name;
+        // Since fast compile times in a priority, we use simple containers
+        // with hard limits.
+        test_case m_tests[256];
+        std::size_t m_size;
+    };
+
+    ////////////////////////////////////////////////////////////////////////////
+    class registrar
+    {
+    public:
+        registrar(test_suite & st, test_case tc)
+        {
+            st.register_test(tc);
+        }
+    };
+
+    ////////////////////////////////////////////////////////////////////////////
+    class test_reporter
+    {
+    public:
+        test_reporter()
+            : m_testcases(0), m_testcase_failures(0), m_unsupported(0),
+              m_assertions(0), m_warning_failures(0), m_check_failures(0),
+              m_require_failures(0), m_uncaught_exceptions(0), m_failure()
+        {
+        }
+
+        void test_case_begin()
+        {
+            ++m_testcases;
+            clear_failure();
+        }
+
+        void test_case_end()
+        {
+            if (m_failure.type != failure_type::none
+                && m_failure.type !=  failure_type::unsupported) {
+                ++m_testcase_failures;
+            }
+        }
+
+# if defined(__GNUC__)
+#   pragma GCC diagnostic push
+#   pragma GCC diagnostic ignored "-Wswitch-default"
+# endif
+        // Each assertion and failure is reported through this function.
+        void report(test_outcome o)
+        {
+            ++m_assertions;
+            switch (o.type)
+            {
+            case failure_type::none:
+                break;
+            case failure_type::unsupported:
+                ++m_unsupported;
+                m_failure = o;
+                break;
+            case failure_type::warn:
+                ++m_warning_failures;
+                report_error(o);
+                break;
+            case failure_type::check:
+                ++m_check_failures;
+                report_error(o);
+                m_failure = o;
+                break;
+            case failure_type::require:
+                ++m_require_failures;
+                report_error(o);
+                m_failure = o;
+                break;
+            case failure_type::assert:
+                report_error(o);
+                break;
+            case failure_type::uncaught_exception:
+                ++m_uncaught_exceptions;
+                std::fprintf(stderr
+                    , "Test case FAILED with uncaught exception:\n"
+                      "    last checkpoint near %s::%lu %s\n\n"
+                    , o.file, o.line, o.func
+                    );
+                m_failure = o;
+                break;
+            }
+        }
+# if defined(__GNUC__)
+#   pragma GCC diagnostic pop
+# endif
+
+        test_outcome current_failure() const
+        {
+            return m_failure;
+        }
+
+        void clear_failure()
+        {
+            m_failure.type = failure_type::none;
+            m_failure.file = "";
+            m_failure.func = "";
+            m_failure.line = 0;
+            m_failure.expression = "";
+            m_failure.message = "";
+        }
+
+        std::size_t test_case_count() const
+        { return m_testcases; }
+
+        std::size_t test_case_failure_count() const
+        { return m_testcase_failures; }
+
+        std::size_t unsupported_count() const
+        { return m_unsupported; }
+
+        std::size_t assertion_count() const
+        { return m_assertions; }
+
+        std::size_t warning_failure_count() const
+        { return m_warning_failures; }
+
+        std::size_t check_failure_count() const
+        { return m_check_failures; }
+
+        std::size_t require_failure_count() const
+        { return m_require_failures; }
+
+        std::size_t failure_count() const
+        { return m_check_failures + m_require_failures + m_uncaught_exceptions; }
+
+        // Print a summary of what was run and the outcome.
+        void print_summary(const char* suitename) const
+        {
+            FILE* out = failure_count() ? stderr : stdout;
+            std::size_t testcases_run = m_testcases - m_unsupported;
+            std::fprintf(out, "Summary for testsuite %s:\n", suitename);
+            std::fprintf(out, "    %lu of %lu test cases passed.\n", testcases_run - m_testcase_failures, testcases_run);
+            std::fprintf(out, "    %lu of %lu assertions passed.\n", m_assertions - (m_warning_failures + m_check_failures + m_require_failures), m_assertions);
+            std::fprintf(out, "    %lu unsupported test case%s.\n", m_unsupported, (m_unsupported != 1 ? "s" : ""));
+        }
+
+    private:
+        test_reporter(test_reporter const &);
+        test_reporter const & operator=(test_reporter const &);
+
+        void report_error(test_outcome o) const
+        {
+            std::fprintf(stderr, "In %s:%lu Assertion %s failed.\n    in file: %s\n    %s\n"
+                , o.func, o.line, o.expression, o.file,  o.message ? o.message : ""
+              );
+        }
+
+    private:
+        // counts of testcases, failed testcases, and unsupported testcases.
+        std::size_t m_testcases;
+        std::size_t m_testcase_failures;
+        std::size_t m_unsupported;
+
+        // counts of assertions and assertion failures.
+        std::size_t m_assertions;
+        std::size_t m_warning_failures;
+        std::size_t m_check_failures;
+        std::size_t m_require_failures;
+        std::size_t m_uncaught_exceptions;
+
+        // The last failure. This is cleared between testcases.
+        test_outcome m_failure;
+    };
+
+    ////////////////////////////////////////////////////////////////////////////
+    inline test_reporter & get_reporter()
+    {
+        static test_reporter o;
+        return o;
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    class test_runner
+    {
+    public:
+        test_runner(test_suite & ts)
+          : m_ts(ts)
+        {}
+
+    public:
+        int run()
+        {
+            // for each testcase
+            for (test_suite::const_iterator b = m_ts.begin(), e = m_ts.end();
+                 b != e; ++b)
+            {
+                test_case const& tc = *b;
+                set_checkpoint(tc.file, tc.func, tc.line);
+                get_reporter().test_case_begin();
+#ifndef TEST_HAS_NO_EXCEPTIONS
+                try {
+#endif
+                    tc.invoke();
+#ifndef TEST_HAS_NO_EXCEPTIONS
+                } catch (...) {
+                    test_outcome o;
+                    o.type = failure_type::uncaught_exception;
+                    o.file = get_checkpoint().file;
+                    o.func = get_checkpoint().func;
+                    o.line = get_checkpoint().line;
+                    o.expression = "";
+                    o.message = "";
+                    get_reporter().report(o);
+                }
+#endif
+                get_reporter().test_case_end();
+            }
+            auto exit_code = get_reporter().failure_count() ? EXIT_FAILURE : EXIT_SUCCESS;
+            if (exit_code == EXIT_FAILURE || get_reporter().unsupported_count())
+              get_reporter().print_summary(m_ts.name());
+            return exit_code;
+        }
+
+    private:
+        test_runner(test_runner const &);
+        test_runner operator=(test_runner const &);
+
+        test_suite & m_ts;
+    };
+
+    namespace detail
+    {
+        template <class Iter1, class Iter2>
+        bool check_equal_collections_impl(
+            Iter1 start1, Iter1 const end1
+          , Iter2 start2, Iter2 const end2
+          )
+        {
+            while (start1 != end1 && start2 != end2) {
+                if (*start1 != *start2) {
+                    return false;
+                }
+                ++start1; ++start2;
+            }
+            return (start1 == end1 && start2 == end2);
+        }
+    }                                                       // namespace detail
+
+}                                                    // namespace rapid_cxx_test
+
+
+# if defined(__GNUC__)
+#   pragma GCC diagnostic pop
+# endif
+
+#endif /* RAPID_CXX_TEST_H */

Removed: libcxx/trunk/test/support/rapid-cxx-test.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/rapid-cxx-test.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/rapid-cxx-test.hpp (original)
+++ libcxx/trunk/test/support/rapid-cxx-test.hpp (removed)
@@ -1,866 +0,0 @@
-#ifndef RAPID_CXX_TEST_HPP
-#define RAPID_CXX_TEST_HPP
-
-# include <cstddef>
-# include <cstdlib>
-# include <cstdio>
-# include <cstring>
-# include <cassert>
-
-#include "test_macros.h"
-
-#if !defined(RAPID_CXX_TEST_NO_SYSTEM_HEADER) || !defined(__GNUC__)
-#pragma GCC system_header
-#endif
-
-# define RAPID_CXX_TEST_PP_CAT(x, y) RAPID_CXX_TEST_PP_CAT_2(x, y)
-# define RAPID_CXX_TEST_PP_CAT_2(x, y) x##y
-
-# define RAPID_CXX_TEST_PP_STR(...) RAPID_CXX_TEST_PP_STR_2(__VA_ARGS__)
-# define RAPID_CXX_TEST_PP_STR_2(...) #__VA_ARGS__
-
-# if defined(__GNUC__)
-#   define TEST_FUNC_NAME() __PRETTY_FUNCTION__
-#   define RAPID_CXX_TEST_UNUSED __attribute__((unused))
-# else
-#   define TEST_FUNC_NAME() __func__
-#   define RAPID_CXX_TEST_UNUSED
-# endif
-
-////////////////////////////////////////////////////////////////////////////////
-//                          TEST_SUITE
-////////////////////////////////////////////////////////////////////////////////
-# define TEST_SUITE(Name)                                           \
-namespace Name                                                      \
-{                                                                   \
-    inline ::rapid_cxx_test::test_suite & get_test_suite()          \
-    {                                                               \
-        static ::rapid_cxx_test::test_suite m_suite(#Name);         \
-        return m_suite;                                             \
-    }                                                               \
-                                                                    \
-    inline int unit_test_main(int, char**)                          \
-    {                                                               \
-        ::rapid_cxx_test::test_runner runner(get_test_suite());     \
-        return runner.run();                                        \
-    }                                                               \
-}                                                                   \
-int main(int argc, char **argv)                                     \
-{                                                                   \
-    return Name::unit_test_main(argc, argv);                        \
-}                                                                   \
-namespace Name                                                      \
-{ /* namespace closed in TEST_SUITE_END */
-#
-
-////////////////////////////////////////////////////////////////////////////////
-//                         TEST_SUITE_END
-////////////////////////////////////////////////////////////////////////////////
-# define TEST_SUITE_END()                                       \
-} /* namespace opened in TEST_SUITE(...) */
-#
-
-////////////////////////////////////////////////////////////////////////////////
-//                          TEST_CASE
-////////////////////////////////////////////////////////////////////////////////
-
-# if !defined(__clang__)
-#
-# define TEST_CASE(Name)                                                                                \
-    void Name();                                                                                        \
-    static void RAPID_CXX_TEST_PP_CAT(Name, _invoker)()                                                 \
-    {                                                                                                   \
-        Name();                                                                                         \
-    }                                                                                                   \
-    static ::rapid_cxx_test::registrar                                                                  \
-    RAPID_CXX_TEST_PP_CAT(rapid_cxx_test_registrar_, Name)(                                         \
-        get_test_suite()                                                                                \
-      , ::rapid_cxx_test::test_case(__FILE__, #Name, __LINE__, & RAPID_CXX_TEST_PP_CAT(Name, _invoker)) \
-      );                                                                                                \
-    void Name()
-#
-# else /* __clang__ */
-#
-# define TEST_CASE(Name)                                                                                \
-    void Name();                                                                                        \
-    static void RAPID_CXX_TEST_PP_CAT(Name, _invoker)()                                                 \
-    {                                                                                                   \
-        Name();                                                                                         \
-    }                                                                                                   \
-    _Pragma("clang diagnostic push")                                                                    \
-    _Pragma("clang diagnostic ignored \"-Wglobal-constructors\"")                                       \
-    static ::rapid_cxx_test::registrar                                                                  \
-    RAPID_CXX_TEST_PP_CAT(rapid_cxx_test_registrar_, Name)(                                         \
-        get_test_suite()                                                                                \
-      , ::rapid_cxx_test::test_case(__FILE__, #Name, __LINE__, & RAPID_CXX_TEST_PP_CAT(Name, _invoker)) \
-      );                                                                                                \
-    _Pragma("clang diagnostic pop")                                                                     \
-    void Name()
-#
-# endif /* !defined(__clang__) */
-
-
-# define TEST_SET_CHECKPOINT() ::rapid_cxx_test::set_checkpoint(__FILE__, TEST_FUNC_NAME(), __LINE__)
-
-#define RAPID_CXX_TEST_OUTCOME()
-
-////////////////////////////////////////////////////////////////////////////////
-//                              TEST_UNSUPPORTED
-////////////////////////////////////////////////////////////////////////////////
-# define TEST_UNSUPPORTED()                                                                 \
-    do {                                                                                    \
-        TEST_SET_CHECKPOINT();                                                              \
-        ::rapid_cxx_test::test_outcome m_f(                                                 \
-          ::rapid_cxx_test::failure_type::unsupported, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-          , "", ""                                                                          \
-        );                                                                                  \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                       \
-        return;                                                                             \
-    } while (false)
-#
-
-
-////////////////////////////////////////////////////////////////////////////////
-//                            BASIC ASSERTIONS
-////////////////////////////////////////////////////////////////////////////////
-# define TEST_WARN(...)                                                                \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_WARN(" #__VA_ARGS__ ")", ""                                        \
-            );                                                                         \
-        if (not (__VA_ARGS__)) {                                                       \
-            m_f.type = ::rapid_cxx_test::failure_type::warn;                           \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-# define TEST_CHECK(...)                                                               \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_CHECK(" #__VA_ARGS__ ")", ""                                       \
-            );                                                                         \
-        if (not (__VA_ARGS__)) {                                                       \
-            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-# define TEST_REQUIRE(...)                                                             \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_REQUIRE(" #__VA_ARGS__ ")", ""                                     \
-            );                                                                         \
-        if (not (__VA_ARGS__)) {                                                       \
-            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            return;                                                                    \
-        }                                                                              \
-    } while (false)
-#
-
-# define TEST_ASSERT(...)                                                              \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_ASSERT(" #__VA_ARGS__ ")", ""                                      \
-            );                                                                         \
-        if (not (__VA_ARGS__)) {                                                       \
-            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            std::abort();                                                              \
-        }                                                                              \
-    } while (false)
-#
-
-////////////////////////////////////////////////////////////////////////////////
-//                    TEST_CHECK_NO_THROW / TEST_CHECK_THROW
-////////////////////////////////////////////////////////////////////////////////
-#ifndef TEST_HAS_NO_EXCEPTIONS
-
-# define TEST_CHECK_NO_THROW(...)                                                      \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_CHECK_NO_THROW(" #__VA_ARGS__ ")", ""                              \
-            );                                                                         \
-        try {                                                                          \
-            (static_cast<void>(__VA_ARGS__));                                          \
-        } catch (...) {                                                                \
-            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-# define TEST_CHECK_THROW(Except, ...)                                                 \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_CHECK_THROW(" #Except "," #__VA_ARGS__ ")", ""                     \
-            );                                                                         \
-        try {                                                                          \
-            (static_cast<void>(__VA_ARGS__));                                          \
-            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
-        } catch (Except const &) {}                                                    \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-#define TEST_CHECK_THROW_RESULT(Except, Checker, ...)                          \
-  do {                                                                         \
-    TEST_SET_CHECKPOINT();                                                     \
-    ::rapid_cxx_test::test_outcome m_f(::rapid_cxx_test::failure_type::none,   \
-                                       __FILE__, TEST_FUNC_NAME(), __LINE__,   \
-                                       "TEST_CHECK_THROW_RESULT(" #Except      \
-                                       "," #Checker "," #__VA_ARGS__ ")",      \
-                                       "");                                    \
-    try {                                                                      \
-      (static_cast<void>(__VA_ARGS__));                                        \
-      m_f.type = ::rapid_cxx_test::failure_type::check;                        \
-    } catch (Except const& Caught) {                                           \
-      Checker(Caught);                                                         \
-    }                                                                          \
-    ::rapid_cxx_test::get_reporter().report(m_f);                              \
-  } while (false)
-#
-
-#else // TEST_HAS_NO_EXCEPTIONS
-
-# define TEST_CHECK_NO_THROW(...)                                                      \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_CHECK_NO_THROW(" #__VA_ARGS__ ")", ""                              \
-            );                                                                         \
-        (static_cast<void>(__VA_ARGS__));                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-#define TEST_CHECK_THROW(Except, ...) ((void)0)
-#define TEST_CHECK_THROW_RESULT(Except, Checker, ...) ((void)0)
-
-#endif // TEST_HAS_NO_EXCEPTIONS
-
-
-////////////////////////////////////////////////////////////////////////////////
-//                    TEST_REQUIRE_NO_THROW / TEST_REQUIRE_THROWs
-////////////////////////////////////////////////////////////////////////////////
-#ifndef TEST_HAS_NO_EXCEPTIONS
-
-# define TEST_REQUIRE_NO_THROW(...)                                                    \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_REQUIRE_NO_THROW(" #__VA_ARGS__ ")", ""                            \
-            );                                                                         \
-        try {                                                                          \
-            (static_cast<void>(__VA_ARGS__));                                          \
-        } catch (...) {                                                                \
-            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            return;                                                                    \
-        }                                                                              \
-    } while (false)
-#
-
-# define TEST_REQUIRE_THROW(Except, ...)                                               \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_REQUIRE_THROW(" #Except "," #__VA_ARGS__ ")", ""                   \
-            );                                                                         \
-        try {                                                                          \
-            (static_cast<void>(__VA_ARGS__));                                          \
-            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
-        } catch (Except const &) {}                                                    \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            return;                                                                    \
-        }                                                                              \
-    } while (false)
-#
-
-#else // TEST_HAS_NO_EXCEPTIONS
-
-# define TEST_REQUIRE_NO_THROW(...)                                                    \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_REQUIRE_NO_THROW(" #__VA_ARGS__ ")", ""                            \
-            );                                                                         \
-        (static_cast<void>(__VA_ARGS__));                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-#define TEST_REQUIRE_THROW(Except, ...) ((void)0)
-
-#endif // TEST_HAS_NO_EXCEPTIONS
-
-////////////////////////////////////////////////////////////////////////////////
-//                    TEST_ASSERT_NO_THROW / TEST_ASSERT_THROW
-////////////////////////////////////////////////////////////////////////////////
-#ifndef TEST_HAS_NO_EXCEPTIONS
-
-# define TEST_ASSERT_NO_THROW(...)                                                     \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_ASSERT_NO_THROW(" #__VA_ARGS__ ")", ""                             \
-            );                                                                         \
-        try {                                                                          \
-            (static_cast<void>(__VA_ARGS__));                                          \
-        } catch (...) {                                                                \
-            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            std::abort();                                                              \
-        }                                                                              \
-    } while (false)
-#
-
-# define TEST_ASSERT_THROW(Except, ...)                                                \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_ASSERT_THROW(" #Except "," #__VA_ARGS__ ")", ""                    \
-            );                                                                         \
-        try {                                                                          \
-            (static_cast<void>(__VA_ARGS__));                                          \
-            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
-        } catch (Except const &) {}                                                    \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            std::abort();                                                              \
-        }                                                                              \
-    } while (false)
-#
-
-#else // TEST_HAS_NO_EXCEPTIONS
-
-# define TEST_ASSERT_NO_THROW(...)                                                     \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-            ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__ \
-            , "TEST_ASSERT_NO_THROW(" #__VA_ARGS__ ")", ""                             \
-            );                                                                         \
-        (static_cast<void>(__VA_ARGS__));                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-#define TEST_ASSERT_THROW(Except, ...) ((void)0)
-
-#endif // TEST_HAS_NO_EXCEPTIONS
-
-////////////////////////////////////////////////////////////////////////////////
-//
-////////////////////////////////////////////////////////////////////////////////
-
-# define TEST_WARN_EQUAL_COLLECTIONS(...)                                              \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
-          , "TEST_WARN_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                        \
-        );                                                                             \
-        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
-            m_f.type = ::rapid_cxx_test::failure_type::warn;                           \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-# define TEST_CHECK_EQUAL_COLLECTIONS(...)                                             \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
-          , "TEST_CHECK_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                       \
-        );                                                                             \
-        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
-            m_f.type = ::rapid_cxx_test::failure_type::check;                          \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-    } while (false)
-#
-
-# define TEST_REQUIRE_EQUAL_COLLECTIONS(...)                                           \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
-          , "TEST_REQUIRE_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                     \
-        );                                                                             \
-        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
-            m_f.type = ::rapid_cxx_test::failure_type::require;                        \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-            return;                                                                    \
-        }                                                                              \
-    } while (false)
-#
-
-# define TEST_ASSERT_EQUAL_COLLECTIONS(...)                                            \
-    do {                                                                               \
-        TEST_SET_CHECKPOINT();                                                         \
-        ::rapid_cxx_test::test_outcome m_f(                                            \
-          ::rapid_cxx_test::failure_type::none, __FILE__, TEST_FUNC_NAME(), __LINE__   \
-          , "TEST_ASSERT_EQUAL_COLLECTIONS(" #__VA_ARGS__ ")", ""                      \
-        );                                                                             \
-        if (not ::rapid_cxx_test::detail::check_equal_collections_impl(__VA_ARGS__)) { \
-            m_f.type = ::rapid_cxx_test::failure_type::assert;                         \
-        }                                                                              \
-        ::rapid_cxx_test::get_reporter().report(m_f);                                  \
-        if (m_f.type != ::rapid_cxx_test::failure_type::none) {                        \
-          ::std::abort();                                                              \
-        }                                                                              \
-    } while (false)
-#
-
-namespace rapid_cxx_test
-{
-    typedef void (*invoker_t)();
-
-    ////////////////////////////////////////////////////////////////////////////
-    struct test_case
-    {
-        test_case()
-            : file(""), func(""), line(0), invoke(NULL)
-        {}
-
-        test_case(const char* file1, const char* func1, std::size_t line1,
-                  invoker_t invoke1)
-            : file(file1), func(func1), line(line1), invoke(invoke1)
-        {}
-
-        const char *file;
-        const char *func;
-        std::size_t line;
-        invoker_t invoke;
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    struct failure_type
-    {
-        enum enum_type {
-            none,
-            unsupported,
-            warn,
-            check,
-            require,
-            assert,
-            uncaught_exception
-        };
-    };
-
-    typedef failure_type::enum_type failure_type_t;
-
-    ////////////////////////////////////////////////////////////////////////////
-    struct test_outcome
-    {
-        test_outcome()
-            : type(failure_type::none),
-              file(""), func(""), line(0),
-              expression(""), message("")
-        {}
-
-        test_outcome(failure_type_t type1, const char* file1, const char* func1,
-                     std::size_t line1, const char* expression1,
-                     const char* message1)
-            : type(type1), file(file1), func(func1), line(line1),
-              expression(expression1), message(message1)
-        {
-            trim_func_string();
-        }
-
-        failure_type_t type;
-        const char *file;
-        const char *func;
-        std::size_t line;
-        const char *expression;
-        const char *message;
-
-    private:
-        void trim_file_string() {
-            const char* f_start  = file;
-            const char* prev_start = f_start;
-            const char* last_start = f_start;
-            char last;
-            while ((last = *f_start) != '\0') {
-                ++f_start;
-                if (last == '/' && *f_start) {
-                    prev_start = last_start;
-                    last_start = f_start;
-                }
-            }
-            file = prev_start;
-        }
-      void trim_func_string() {
-          const char* void_loc = ::strstr(func, "void ");
-          if (void_loc == func) {
-              func += strlen("void ");
-          }
-          const char* namespace_loc = ::strstr(func, "::");
-          if (namespace_loc) {
-              func = namespace_loc + 2;
-          }
-      }
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    struct checkpoint
-    {
-        const char *file;
-        const char *func;
-        std::size_t line;
-    };
-
-    namespace detail
-    {
-        inline checkpoint & global_checkpoint()
-        {
-            static checkpoint cp = {"", "", 0};
-            return cp;
-        }
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    inline void set_checkpoint(const char* file, const char* func, std::size_t line)
-    {
-        checkpoint& cp = detail::global_checkpoint();
-        cp.file = file;
-        cp.func = func;
-        cp.line = line;
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    inline checkpoint const & get_checkpoint()
-    {
-        return detail::global_checkpoint();
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    class test_suite
-    {
-    public:
-        typedef test_case const* iterator;
-        typedef iterator const_iterator;
-
-    public:
-        test_suite(const char *xname)
-          : m_name(xname), m_tests(), m_size(0)
-        {
-            assert(xname);
-        }
-
-    public:
-        const char *name() const { return m_name; }
-
-        std::size_t size() const { return m_size; }
-
-        test_case const & operator[](std::size_t i) const
-        {
-            assert(i < m_size);
-            return m_tests[i];
-        }
-
-        const_iterator begin() const
-        { return m_tests; }
-
-        const_iterator end() const
-        {
-            return m_tests + m_size;
-        }
-
-    public:
-        std::size_t register_test(test_case tc)
-        {
-            static std::size_t test_case_max = sizeof(m_tests) / sizeof(test_case);
-            assert(m_size < test_case_max);
-            m_tests[m_size] = tc;
-            return m_size++;
-        }
-
-    private:
-        test_suite(test_suite const &);
-        test_suite & operator=(test_suite const &);
-
-    private:
-        const char* m_name;
-        // Since fast compile times in a priority, we use simple containers
-        // with hard limits.
-        test_case m_tests[256];
-        std::size_t m_size;
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    class registrar
-    {
-    public:
-        registrar(test_suite & st, test_case tc)
-        {
-            st.register_test(tc);
-        }
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    class test_reporter
-    {
-    public:
-        test_reporter()
-            : m_testcases(0), m_testcase_failures(0), m_unsupported(0),
-              m_assertions(0), m_warning_failures(0), m_check_failures(0),
-              m_require_failures(0), m_uncaught_exceptions(0), m_failure()
-        {
-        }
-
-        void test_case_begin()
-        {
-            ++m_testcases;
-            clear_failure();
-        }
-
-        void test_case_end()
-        {
-            if (m_failure.type != failure_type::none
-                && m_failure.type !=  failure_type::unsupported) {
-                ++m_testcase_failures;
-            }
-        }
-
-# if defined(__GNUC__)
-#   pragma GCC diagnostic push
-#   pragma GCC diagnostic ignored "-Wswitch-default"
-# endif
-        // Each assertion and failure is reported through this function.
-        void report(test_outcome o)
-        {
-            ++m_assertions;
-            switch (o.type)
-            {
-            case failure_type::none:
-                break;
-            case failure_type::unsupported:
-                ++m_unsupported;
-                m_failure = o;
-                break;
-            case failure_type::warn:
-                ++m_warning_failures;
-                report_error(o);
-                break;
-            case failure_type::check:
-                ++m_check_failures;
-                report_error(o);
-                m_failure = o;
-                break;
-            case failure_type::require:
-                ++m_require_failures;
-                report_error(o);
-                m_failure = o;
-                break;
-            case failure_type::assert:
-                report_error(o);
-                break;
-            case failure_type::uncaught_exception:
-                ++m_uncaught_exceptions;
-                std::fprintf(stderr
-                    , "Test case FAILED with uncaught exception:\n"
-                      "    last checkpoint near %s::%lu %s\n\n"
-                    , o.file, o.line, o.func
-                    );
-                m_failure = o;
-                break;
-            }
-        }
-# if defined(__GNUC__)
-#   pragma GCC diagnostic pop
-# endif
-
-        test_outcome current_failure() const
-        {
-            return m_failure;
-        }
-
-        void clear_failure()
-        {
-            m_failure.type = failure_type::none;
-            m_failure.file = "";
-            m_failure.func = "";
-            m_failure.line = 0;
-            m_failure.expression = "";
-            m_failure.message = "";
-        }
-
-        std::size_t test_case_count() const
-        { return m_testcases; }
-
-        std::size_t test_case_failure_count() const
-        { return m_testcase_failures; }
-
-        std::size_t unsupported_count() const
-        { return m_unsupported; }
-
-        std::size_t assertion_count() const
-        { return m_assertions; }
-
-        std::size_t warning_failure_count() const
-        { return m_warning_failures; }
-
-        std::size_t check_failure_count() const
-        { return m_check_failures; }
-
-        std::size_t require_failure_count() const
-        { return m_require_failures; }
-
-        std::size_t failure_count() const
-        { return m_check_failures + m_require_failures + m_uncaught_exceptions; }
-
-        // Print a summary of what was run and the outcome.
-        void print_summary(const char* suitename) const
-        {
-            FILE* out = failure_count() ? stderr : stdout;
-            std::size_t testcases_run = m_testcases - m_unsupported;
-            std::fprintf(out, "Summary for testsuite %s:\n", suitename);
-            std::fprintf(out, "    %lu of %lu test cases passed.\n", testcases_run - m_testcase_failures, testcases_run);
-            std::fprintf(out, "    %lu of %lu assertions passed.\n", m_assertions - (m_warning_failures + m_check_failures + m_require_failures), m_assertions);
-            std::fprintf(out, "    %lu unsupported test case%s.\n", m_unsupported, (m_unsupported != 1 ? "s" : ""));
-        }
-
-    private:
-        test_reporter(test_reporter const &);
-        test_reporter const & operator=(test_reporter const &);
-
-        void report_error(test_outcome o) const
-        {
-            std::fprintf(stderr, "In %s:%lu Assertion %s failed.\n    in file: %s\n    %s\n"
-                , o.func, o.line, o.expression, o.file,  o.message ? o.message : ""
-              );
-        }
-
-    private:
-        // counts of testcases, failed testcases, and unsupported testcases.
-        std::size_t m_testcases;
-        std::size_t m_testcase_failures;
-        std::size_t m_unsupported;
-
-        // counts of assertions and assertion failures.
-        std::size_t m_assertions;
-        std::size_t m_warning_failures;
-        std::size_t m_check_failures;
-        std::size_t m_require_failures;
-        std::size_t m_uncaught_exceptions;
-
-        // The last failure. This is cleared between testcases.
-        test_outcome m_failure;
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    inline test_reporter & get_reporter()
-    {
-        static test_reporter o;
-        return o;
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    class test_runner
-    {
-    public:
-        test_runner(test_suite & ts)
-          : m_ts(ts)
-        {}
-
-    public:
-        int run()
-        {
-            // for each testcase
-            for (test_suite::const_iterator b = m_ts.begin(), e = m_ts.end();
-                 b != e; ++b)
-            {
-                test_case const& tc = *b;
-                set_checkpoint(tc.file, tc.func, tc.line);
-                get_reporter().test_case_begin();
-#ifndef TEST_HAS_NO_EXCEPTIONS
-                try {
-#endif
-                    tc.invoke();
-#ifndef TEST_HAS_NO_EXCEPTIONS
-                } catch (...) {
-                    test_outcome o;
-                    o.type = failure_type::uncaught_exception;
-                    o.file = get_checkpoint().file;
-                    o.func = get_checkpoint().func;
-                    o.line = get_checkpoint().line;
-                    o.expression = "";
-                    o.message = "";
-                    get_reporter().report(o);
-                }
-#endif
-                get_reporter().test_case_end();
-            }
-            auto exit_code = get_reporter().failure_count() ? EXIT_FAILURE : EXIT_SUCCESS;
-            if (exit_code == EXIT_FAILURE || get_reporter().unsupported_count())
-              get_reporter().print_summary(m_ts.name());
-            return exit_code;
-        }
-
-    private:
-        test_runner(test_runner const &);
-        test_runner operator=(test_runner const &);
-
-        test_suite & m_ts;
-    };
-
-    namespace detail
-    {
-        template <class Iter1, class Iter2>
-        bool check_equal_collections_impl(
-            Iter1 start1, Iter1 const end1
-          , Iter2 start2, Iter2 const end2
-          )
-        {
-            while (start1 != end1 && start2 != end2) {
-                if (*start1 != *start2) {
-                    return false;
-                }
-                ++start1; ++start2;
-            }
-            return (start1 == end1 && start2 == end2);
-        }
-    }                                                       // namespace detail
-
-}                                                    // namespace rapid_cxx_test
-
-
-# if defined(__GNUC__)
-#   pragma GCC diagnostic pop
-# endif
-
-#endif /* RAPID_CXX_TEST_HPP */

Modified: libcxx/trunk/test/support/test.support/test_convertible_header.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test.support/test_convertible_header.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/support/test.support/test_convertible_header.pass.cpp (original)
+++ libcxx/trunk/test/support/test.support/test_convertible_header.pass.cpp Tue Aug 20 17:14:12 2019
@@ -8,9 +8,9 @@
 
 // UNSUPPORTED: c++98, c++03
 
-// "support/test_convertible.hpp"
+// "support/test_convertible.h"
 
-#include "test_convertible.hpp"
+#include "test_convertible.h"
 
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/support/test.support/test_poisoned_hash_helper.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test.support/test_poisoned_hash_helper.pass.cpp?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/test/support/test.support/test_poisoned_hash_helper.pass.cpp (original)
+++ libcxx/trunk/test/support/test.support/test_poisoned_hash_helper.pass.cpp Tue Aug 20 17:14:12 2019
@@ -8,12 +8,12 @@
 
 // UNSUPPORTED: c++98, c++03
 
-// Test that the header `poisoned_hash_helper.hpp` doesn't include any
+// Test that the header `poisoned_hash_helper.h` doesn't include any
 // headers that provide hash<T> specializations. This is required so that the
 // 'test_library_hash_specializations_available()' function returns false
 // by default, unless a STL header providing hash has already been included.
 
-#include "poisoned_hash_helper.hpp"
+#include "poisoned_hash_helper.h"
 
 #include "test_macros.h"
 

Added: libcxx/trunk/test/support/test_convertible.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test_convertible.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/test_convertible.h (added)
+++ libcxx/trunk/test/support/test_convertible.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,41 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SUPPORT_TEST_CONVERTIBLE_H
+#define SUPPORT_TEST_CONVERTIBLE_H
+
+// "test_convertible<Tp, Args...>()" is a metafunction used to check if 'Tp'
+// is implicitly convertible from 'Args...' for any number of arguments,
+// Unlike 'std::is_convertible' which only allows checking for single argument
+// conversions.
+
+#include <type_traits>
+
+#include "test_macros.h"
+
+#if TEST_STD_VER < 11
+#error test_convertible.h requires C++11 or newer
+#endif
+
+namespace detail {
+    template <class Tp> void eat_type(Tp);
+
+    template <class Tp, class ...Args>
+    constexpr auto test_convertible_imp(int)
+        -> decltype(eat_type<Tp>({std::declval<Args>()...}), true)
+    { return true; }
+
+    template <class Tp, class ...Args>
+    constexpr auto test_convertible_imp(long) -> bool { return false; }
+}
+
+template <class Tp, class ...Args>
+constexpr bool test_convertible()
+{ return detail::test_convertible_imp<Tp, Args...>(0); }
+
+#endif // SUPPORT_TEST_CONVERTIBLE_H

Removed: libcxx/trunk/test/support/test_convertible.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test_convertible.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/test_convertible.hpp (original)
+++ libcxx/trunk/test/support/test_convertible.hpp (removed)
@@ -1,41 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SUPPORT_TEST_CONVERTIBLE_HPP
-#define SUPPORT_TEST_CONVERTIBLE_HPP
-
-// "test_convertible<Tp, Args...>()" is a metafunction used to check if 'Tp'
-// is implicitly convertible from 'Args...' for any number of arguments,
-// Unlike 'std::is_convertible' which only allows checking for single argument
-// conversions.
-
-#include <type_traits>
-
-#include "test_macros.h"
-
-#if TEST_STD_VER < 11
-#error test_convertible.hpp requires C++11 or newer
-#endif
-
-namespace detail {
-    template <class Tp> void eat_type(Tp);
-
-    template <class Tp, class ...Args>
-    constexpr auto test_convertible_imp(int)
-        -> decltype(eat_type<Tp>({std::declval<Args>()...}), true)
-    { return true; }
-
-    template <class Tp, class ...Args>
-    constexpr auto test_convertible_imp(long) -> bool { return false; }
-}
-
-template <class Tp, class ...Args>
-constexpr bool test_convertible()
-{ return detail::test_convertible_imp<Tp, Args...>(0); }
-
-#endif // SUPPORT_TEST_CONVERTIBLE_HPP

Added: libcxx/trunk/test/support/test_memory_resource.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test_memory_resource.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/test_memory_resource.h (added)
+++ libcxx/trunk/test/support/test_memory_resource.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,170 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SUPPORT_TEST_MEMORY_RESOURCE_H
+#define SUPPORT_TEST_MEMORY_RESOURCE_H
+
+#include <experimental/memory_resource>
+#include <experimental/utility>
+#include <memory>
+#include <type_traits>
+#include <cstddef>
+#include <cstdlib>
+#include <cstring>
+#include <cstdint>
+#include <cassert>
+#include "test_macros.h"
+#include "controlled_allocators.h"
+#include "uses_alloc_types.h"
+
+// FIXME: This is a hack to allow uses_allocator_types.hpp to work with
+// erased_type. However we can't define that behavior directly in the header
+// because it can't include <experimental/memory_resource>
+template <>
+struct TransformErasedTypeAlloc<std::experimental::erased_type> {
+  using type = std::experimental::pmr::polymorphic_allocator<int>;
+};
+
+template <class ProviderT, int = 0>
+class TestResourceImp : public std::experimental::pmr::memory_resource
+{
+public:
+    static int resource_alive;
+    static int resource_constructed;
+    static int resource_destructed;
+
+    static void resetStatics() {
+        assert(resource_alive == 0);
+        resource_alive = 0;
+        resource_constructed = 0;
+        resource_destructed = 0;
+    }
+
+    using memory_resource = std::experimental::pmr::memory_resource;
+    using Provider = ProviderT;
+
+    int value;
+
+    explicit TestResourceImp(int val = 0) : value(val) {
+        ++resource_alive;
+        ++resource_constructed;
+    }
+
+    ~TestResourceImp() noexcept {
+        --resource_alive;
+        ++resource_destructed;
+    }
+
+    void reset() { C.reset(); P.reset(); }
+    AllocController& getController() { return C; }
+
+    bool checkAlloc(void* p, std::size_t s, std::size_t a) const
+      { return C.checkAlloc(p, s, a); }
+
+    bool checkDealloc(void* p, std::size_t s, std::size_t a) const
+      { return C.checkDealloc(p, s, a); }
+
+    bool checkIsEqualCalledEq(int n) const { return C.checkIsEqualCalledEq(n); }
+
+protected:
+    virtual void * do_allocate(std::size_t s, std::size_t a) {
+        if (C.throw_on_alloc) {
+#ifndef TEST_HAS_NO_EXCEPTIONS
+            throw TestException{};
+#else
+            assert(false);
+#endif
+        }
+        void* ret = P.allocate(s, a);
+        C.countAlloc(ret, s, a);
+        return ret;
+    }
+
+    virtual void do_deallocate(void * p, std::size_t s, std::size_t a) {
+        C.countDealloc(p, s, a);
+        P.deallocate(p, s, a);
+    }
+
+    virtual bool do_is_equal(memory_resource const & other) const noexcept {
+        C.countIsEqual();
+        TestResourceImp const * o = dynamic_cast<TestResourceImp const *>(&other);
+        return o && o->value == value;
+    }
+private:
+    mutable AllocController C;
+    mutable Provider P;
+    DISALLOW_COPY(TestResourceImp);
+};
+
+template <class Provider, int N>
+int TestResourceImp<Provider, N>::resource_alive = 0;
+
+template <class Provider, int N>
+int TestResourceImp<Provider, N>::resource_constructed = 0;
+
+template <class Provider, int N>
+int TestResourceImp<Provider, N>::resource_destructed = 0;
+
+
+struct NullProvider {
+    NullProvider() {}
+    void* allocate(size_t, size_t) { return nullptr; }
+    void deallocate(void*, size_t, size_t) {}
+    void reset() {}
+private:
+    DISALLOW_COPY(NullProvider);
+};
+
+struct NewDeleteProvider {
+    NewDeleteProvider() {}
+    void* allocate(size_t s, size_t) { return ::operator new(s); }
+    void deallocate(void* p, size_t, size_t) { ::operator delete(p); }
+    void reset() {}
+private:
+    DISALLOW_COPY(NewDeleteProvider);
+};
+
+template <size_t Size = 4096 * 10> // 10 pages worth of memory.
+struct BufferProvider {
+    char buffer[Size];
+    void* next = &buffer;
+    size_t space = Size;
+
+    BufferProvider() {}
+
+    void* allocate(size_t s, size_t a) {
+        void* ret = std::align(s, a, next, space);
+        if (ret == nullptr) {
+#ifndef TEST_HAS_NO_EXCEPTIONS
+            throw std::bad_alloc();
+#else
+            assert(false);
+#endif
+        }
+
+        return ret;
+    }
+
+    void deallocate(void*, size_t, size_t) {}
+
+    void reset() {
+        next = &buffer;
+        space = Size;
+    }
+private:
+    DISALLOW_COPY(BufferProvider);
+};
+
+using NullResource = TestResourceImp<NullProvider, 0>;
+using NewDeleteResource = TestResourceImp<NewDeleteProvider, 0>;
+using TestResource  = TestResourceImp<BufferProvider<>, 0>;
+using TestResource1 = TestResourceImp<BufferProvider<>, 1>;
+using TestResource2 = TestResourceImp<BufferProvider<>, 2>;
+
+
+#endif /* SUPPORT_TEST_MEMORY_RESOURCE_H */

Removed: libcxx/trunk/test/support/test_memory_resource.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test_memory_resource.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/test_memory_resource.hpp (original)
+++ libcxx/trunk/test/support/test_memory_resource.hpp (removed)
@@ -1,170 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SUPPORT_TEST_MEMORY_RESOURCE_HPP
-#define SUPPORT_TEST_MEMORY_RESOURCE_HPP
-
-#include <experimental/memory_resource>
-#include <experimental/utility>
-#include <memory>
-#include <type_traits>
-#include <cstddef>
-#include <cstdlib>
-#include <cstring>
-#include <cstdint>
-#include <cassert>
-#include "test_macros.h"
-#include "controlled_allocators.hpp"
-#include "uses_alloc_types.hpp"
-
-// FIXME: This is a hack to allow uses_allocator_types.hpp to work with
-// erased_type. However we can't define that behavior directly in the header
-// because it can't include <experimental/memory_resource>
-template <>
-struct TransformErasedTypeAlloc<std::experimental::erased_type> {
-  using type = std::experimental::pmr::polymorphic_allocator<int>;
-};
-
-template <class ProviderT, int = 0>
-class TestResourceImp : public std::experimental::pmr::memory_resource
-{
-public:
-    static int resource_alive;
-    static int resource_constructed;
-    static int resource_destructed;
-
-    static void resetStatics() {
-        assert(resource_alive == 0);
-        resource_alive = 0;
-        resource_constructed = 0;
-        resource_destructed = 0;
-    }
-
-    using memory_resource = std::experimental::pmr::memory_resource;
-    using Provider = ProviderT;
-
-    int value;
-
-    explicit TestResourceImp(int val = 0) : value(val) {
-        ++resource_alive;
-        ++resource_constructed;
-    }
-
-    ~TestResourceImp() noexcept {
-        --resource_alive;
-        ++resource_destructed;
-    }
-
-    void reset() { C.reset(); P.reset(); }
-    AllocController& getController() { return C; }
-
-    bool checkAlloc(void* p, std::size_t s, std::size_t a) const
-      { return C.checkAlloc(p, s, a); }
-
-    bool checkDealloc(void* p, std::size_t s, std::size_t a) const
-      { return C.checkDealloc(p, s, a); }
-
-    bool checkIsEqualCalledEq(int n) const { return C.checkIsEqualCalledEq(n); }
-
-protected:
-    virtual void * do_allocate(std::size_t s, std::size_t a) {
-        if (C.throw_on_alloc) {
-#ifndef TEST_HAS_NO_EXCEPTIONS
-            throw TestException{};
-#else
-            assert(false);
-#endif
-        }
-        void* ret = P.allocate(s, a);
-        C.countAlloc(ret, s, a);
-        return ret;
-    }
-
-    virtual void do_deallocate(void * p, std::size_t s, std::size_t a) {
-        C.countDealloc(p, s, a);
-        P.deallocate(p, s, a);
-    }
-
-    virtual bool do_is_equal(memory_resource const & other) const noexcept {
-        C.countIsEqual();
-        TestResourceImp const * o = dynamic_cast<TestResourceImp const *>(&other);
-        return o && o->value == value;
-    }
-private:
-    mutable AllocController C;
-    mutable Provider P;
-    DISALLOW_COPY(TestResourceImp);
-};
-
-template <class Provider, int N>
-int TestResourceImp<Provider, N>::resource_alive = 0;
-
-template <class Provider, int N>
-int TestResourceImp<Provider, N>::resource_constructed = 0;
-
-template <class Provider, int N>
-int TestResourceImp<Provider, N>::resource_destructed = 0;
-
-
-struct NullProvider {
-    NullProvider() {}
-    void* allocate(size_t, size_t) { return nullptr; }
-    void deallocate(void*, size_t, size_t) {}
-    void reset() {}
-private:
-    DISALLOW_COPY(NullProvider);
-};
-
-struct NewDeleteProvider {
-    NewDeleteProvider() {}
-    void* allocate(size_t s, size_t) { return ::operator new(s); }
-    void deallocate(void* p, size_t, size_t) { ::operator delete(p); }
-    void reset() {}
-private:
-    DISALLOW_COPY(NewDeleteProvider);
-};
-
-template <size_t Size = 4096 * 10> // 10 pages worth of memory.
-struct BufferProvider {
-    char buffer[Size];
-    void* next = &buffer;
-    size_t space = Size;
-
-    BufferProvider() {}
-
-    void* allocate(size_t s, size_t a) {
-        void* ret = std::align(s, a, next, space);
-        if (ret == nullptr) {
-#ifndef TEST_HAS_NO_EXCEPTIONS
-            throw std::bad_alloc();
-#else
-            assert(false);
-#endif
-        }
-
-        return ret;
-    }
-
-    void deallocate(void*, size_t, size_t) {}
-
-    void reset() {
-        next = &buffer;
-        space = Size;
-    }
-private:
-    DISALLOW_COPY(BufferProvider);
-};
-
-using NullResource = TestResourceImp<NullProvider, 0>;
-using NewDeleteResource = TestResourceImp<NewDeleteProvider, 0>;
-using TestResource  = TestResourceImp<BufferProvider<>, 0>;
-using TestResource1 = TestResourceImp<BufferProvider<>, 1>;
-using TestResource2 = TestResourceImp<BufferProvider<>, 2>;
-
-
-#endif /* SUPPORT_TEST_MEMORY_RESOURCE_HPP */

Added: libcxx/trunk/test/support/user_defined_integral.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/user_defined_integral.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/user_defined_integral.h (added)
+++ libcxx/trunk/test/support/user_defined_integral.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,51 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#ifndef SUPPORT_USER_DEFINED_INTEGRAL_H
+#define SUPPORT_USER_DEFINED_INTEGRAL_H
+
+template <class T>
+struct UserDefinedIntegral
+{
+    UserDefinedIntegral() : value(0) {}
+    UserDefinedIntegral(T v) : value(v) {}
+    operator T() const { return value; }
+    T value;
+};
+
+// Poison the arithmetic and comparison operations
+template <class T, class U>
+void operator+(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator-(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator*(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator/(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator==(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator!=(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator<(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator>(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator<=(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+template <class T, class U>
+void operator>=(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
+
+#endif // SUPPORT_USER_DEFINED_INTEGRAL_H

Removed: libcxx/trunk/test/support/user_defined_integral.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/user_defined_integral.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/user_defined_integral.hpp (original)
+++ libcxx/trunk/test/support/user_defined_integral.hpp (removed)
@@ -1,51 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef SUPPORT_USER_DEFINED_INTEGRAL_HPP
-#define SUPPORT_USER_DEFINED_INTEGRAL_HPP
-
-template <class T>
-struct UserDefinedIntegral
-{
-    UserDefinedIntegral() : value(0) {}
-    UserDefinedIntegral(T v) : value(v) {}
-    operator T() const { return value; }
-    T value;
-};
-
-// Poison the arithmetic and comparison operations
-template <class T, class U>
-void operator+(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator-(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator*(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator/(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator==(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator!=(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator<(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator>(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator<=(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-template <class T, class U>
-void operator>=(UserDefinedIntegral<T>, UserDefinedIntegral<U>);
-
-#endif // SUPPORT_USER_DEFINED_INTEGRAL_HPP

Added: libcxx/trunk/test/support/uses_alloc_types.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/uses_alloc_types.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/uses_alloc_types.h (added)
+++ libcxx/trunk/test/support/uses_alloc_types.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,390 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef USES_ALLOC_TYPES_H
+#define USES_ALLOC_TYPES_H
+
+# include <memory>
+# include <cassert>
+#include <cstdlib>
+
+#include "test_macros.h"
+#include "test_workarounds.h"
+#include "type_id.h"
+
+// There are two forms of uses-allocator construction:
+//   (1) UA_AllocArg: 'T(allocator_arg_t, Alloc const&, Args&&...)'
+//   (2) UA_AllocLast: 'T(Args&&..., Alloc const&)'
+// 'UA_None' represents non-uses allocator construction.
+enum class UsesAllocatorType {
+  UA_None = 0,
+  UA_AllocArg = 2,
+  UA_AllocLast = 4
+};
+constexpr UsesAllocatorType UA_None = UsesAllocatorType::UA_None;
+constexpr UsesAllocatorType UA_AllocArg = UsesAllocatorType::UA_AllocArg;
+constexpr UsesAllocatorType UA_AllocLast = UsesAllocatorType::UA_AllocLast;
+
+inline const char* toString(UsesAllocatorType UA) {
+    switch (UA) {
+    case UA_None:
+        return "UA_None";
+    case UA_AllocArg:
+        return "UA_AllocArg";
+    case UA_AllocLast:
+        return "UA_AllocLast";
+    default:
+    std::abort();
+    }
+}
+
+#define COMPARE_ALLOC_TYPE(LHS, RHS) CompareVerbose(#LHS, LHS, #RHS, RHS)
+
+inline bool CompareVerbose(const char* LHSString, UsesAllocatorType LHS,
+                           const char* RHSString, UsesAllocatorType RHS) {
+    if (LHS == RHS)
+        return true;
+    std::printf("UsesAllocatorType's don't match:\n%s %s\n----------\n%s %s\n",
+                LHSString, toString(LHS), RHSString, toString(RHS));
+    return false;
+}
+
+template <class Alloc, std::size_t N>
+class UsesAllocatorV1;
+    // Implements form (1) of uses-allocator construction from the specified
+    // 'Alloc' type and exactly 'N' additional arguments. It also provides
+    // non-uses allocator construction from 'N' arguments. This test type
+    // blows up when form (2) of uses-allocator is even considered.
+
+template <class Alloc, std::size_t N>
+class UsesAllocatorV2;
+    // Implements form (2) of uses-allocator construction from the specified
+    // 'Alloc' type and exactly 'N' additional arguments. It also provides
+    // non-uses allocator construction from 'N' arguments.
+
+template <class Alloc, std::size_t N>
+class UsesAllocatorV3;
+    // Implements both form (1) and (2) of uses-allocator construction from
+    // the specified 'Alloc' type and exactly 'N' additional arguments. It also
+    // provides non-uses allocator construction from 'N' arguments.
+
+template <class Alloc, std::size_t>
+class NotUsesAllocator;
+    // Implements both form (1) and (2) of uses-allocator construction from
+    // the specified 'Alloc' type and exactly 'N' additional arguments. It also
+    // provides non-uses allocator construction from 'N' arguments. However
+    // 'NotUsesAllocator' never provides a 'allocator_type' typedef so it is
+    // never automatically uses-allocator constructed.
+
+
+template <class ...ArgTypes, class TestType>
+bool checkConstruct(TestType& value, UsesAllocatorType form,
+                    typename TestType::CtorAlloc const& alloc)
+    // Check that 'value' was constructed using the specified 'form' of
+    // construction and with the specified 'ArgTypes...'. Additionally
+    // check that 'value' was constructed using the specified 'alloc'.
+{
+    if (form == UA_None) {
+        return value.template checkConstruct<ArgTypes&&...>(form);
+    } else {
+        return value.template checkConstruct<ArgTypes&&...>(form, alloc);
+    }
+}
+
+
+template <class ...ArgTypes, class TestType>
+bool checkConstruct(TestType& value, UsesAllocatorType form) {
+    return value.template checkConstruct<ArgTypes&&...>(form);
+}
+
+template <class TestType>
+bool checkConstructionEquiv(TestType& T, TestType& U)
+    // check that 'T' and 'U' where initialized in the exact same manner.
+{
+    return T.checkConstructEquiv(U);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+namespace detail {
+
+template <bool IsZero, size_t N, class ArgList, class ...Args>
+struct TakeNImp;
+
+template <class ArgList, class ...Args>
+struct TakeNImp<true, 0, ArgList, Args...> {
+  typedef ArgList type;
+};
+
+template <size_t N, class ...A1, class F, class ...R>
+struct TakeNImp<false, N, ArgumentListID<A1...>, F, R...>
+    : TakeNImp<N-1 == 0, N - 1, ArgumentListID<A1..., F>, R...> {};
+
+template <size_t N, class ...Args>
+struct TakeNArgs : TakeNImp<N == 0, N, ArgumentListID<>, Args...> {};
+
+template <class T>
+struct Identity { typedef T type; };
+
+template <class T>
+using IdentityT = typename Identity<T>::type;
+
+template <bool Value>
+using EnableIfB = typename std::enable_if<Value, bool>::type;
+
+} // end namespace detail
+
+// FIXME: UsesAllocatorTestBase needs some special logic to deal with
+// polymorphic allocators. However we don't want to include
+// <experimental/memory_resource> in this header. Therefore in order
+// to inject this behavior later we use a trait.
+// See test_memory_resource.h for more info.
+template <class Alloc>
+struct TransformErasedTypeAlloc {
+  using type = Alloc;
+};
+
+using detail::EnableIfB;
+
+struct AllocLastTag {};
+
+template <class Alloc, bool = std::is_default_constructible<Alloc>::value>
+struct UsesAllocatorTestBaseStorage {
+    Alloc allocator;
+    UsesAllocatorTestBaseStorage() = default;
+    UsesAllocatorTestBaseStorage(Alloc const& a) : allocator(a) {}
+    const Alloc* get_allocator() const { return &allocator; }
+};
+
+template <class Alloc>
+struct UsesAllocatorTestBaseStorage<Alloc, false> {
+  union {
+    char dummy;
+    Alloc alloc;
+  };
+  bool has_alloc = false;
+
+  UsesAllocatorTestBaseStorage() : dummy(), has_alloc(false) {}
+  UsesAllocatorTestBaseStorage(Alloc const& a) : alloc(a), has_alloc(true) {}
+  ~UsesAllocatorTestBaseStorage() {
+      if (has_alloc)
+          alloc.~Alloc();
+  }
+
+  Alloc const* get_allocator() const {
+      if (!has_alloc)
+          return nullptr;
+      return &alloc;
+  }
+};
+
+template <class Self, class Alloc>
+struct UsesAllocatorTestBase {
+public:
+    using CtorAlloc = typename TransformErasedTypeAlloc<Alloc>::type;
+
+    template <class ...ArgTypes>
+    bool checkConstruct(UsesAllocatorType expectType) const {
+        auto expectArgs = &makeArgumentID<ArgTypes...>();
+        return COMPARE_ALLOC_TYPE(expectType, constructor_called) &&
+               COMPARE_TYPEID(args_id, expectArgs);
+    }
+
+    template <class ...ArgTypes>
+    bool checkConstruct(UsesAllocatorType expectType,
+                        CtorAlloc const& expectAlloc) const {
+        auto ExpectID = &makeArgumentID<ArgTypes...>() ;
+        return COMPARE_ALLOC_TYPE(expectType, constructor_called) &&
+               COMPARE_TYPEID(args_id, ExpectID) &&
+               has_alloc() && expectAlloc == *get_alloc();
+
+    }
+
+    bool checkConstructEquiv(UsesAllocatorTestBase& O) const {
+        if (has_alloc() != O.has_alloc())
+            return false;
+        return COMPARE_ALLOC_TYPE(constructor_called, O.constructor_called)
+            && COMPARE_TYPEID(args_id, O.args_id)
+            && (!has_alloc() || *get_alloc() == *O.get_alloc());
+    }
+
+protected:
+    explicit UsesAllocatorTestBase(const TypeID* aid)
+        : args_id(aid), constructor_called(UA_None), alloc_store()
+    {}
+
+    UsesAllocatorTestBase(UsesAllocatorTestBase const&)
+        : args_id(&makeArgumentID<Self const&>()), constructor_called(UA_None),
+          alloc_store()
+    {}
+
+    UsesAllocatorTestBase(UsesAllocatorTestBase&&)
+        : args_id(&makeArgumentID<Self&&>()), constructor_called(UA_None),
+          alloc_store()
+    {}
+
+    template <class ...Args>
+    UsesAllocatorTestBase(std::allocator_arg_t, CtorAlloc const& a, Args&&...)
+        : args_id(&makeArgumentID<Args&&...>()),
+          constructor_called(UA_AllocArg),
+          alloc_store(a)
+    {}
+
+    template <class ...Args, class ArgsIDL = detail::TakeNArgs<sizeof...(Args) - 1, Args&&...>>
+    UsesAllocatorTestBase(AllocLastTag, Args&&... args)
+        : args_id(&makeTypeIDImp<typename ArgsIDL::type>()),
+          constructor_called(UA_AllocLast),
+          alloc_store(UsesAllocatorTestBase::getAllocatorFromPack(
+            typename ArgsIDL::type{},
+            std::forward<Args>(args)...))
+    {
+    }
+
+private:
+    template <class ...LArgs, class ...Args>
+    static CtorAlloc getAllocatorFromPack(ArgumentListID<LArgs...>, Args&&... args) {
+        return UsesAllocatorTestBase::getAllocatorFromPackImp<LArgs const&...>(args...);
+    }
+
+    template <class ...LArgs>
+    static CtorAlloc getAllocatorFromPackImp(
+        typename detail::Identity<LArgs>::type..., CtorAlloc const& alloc) {
+        return alloc;
+    }
+
+    bool has_alloc() const { return alloc_store.get_allocator() != nullptr; }
+    const CtorAlloc *get_alloc() const { return alloc_store.get_allocator(); }
+public:
+    const TypeID* args_id;
+    UsesAllocatorType constructor_called = UA_None;
+    UsesAllocatorTestBaseStorage<CtorAlloc> alloc_store;
+};
+
+template <class Alloc, size_t Arity>
+class UsesAllocatorV1 : public UsesAllocatorTestBase<UsesAllocatorV1<Alloc, Arity>, Alloc>
+{
+public:
+    typedef Alloc allocator_type;
+
+    using Base = UsesAllocatorTestBase<UsesAllocatorV1, Alloc>;
+    using CtorAlloc = typename Base::CtorAlloc;
+
+    UsesAllocatorV1() : Base(&makeArgumentID<>()) {}
+
+    UsesAllocatorV1(UsesAllocatorV1 const&)
+        : Base(&makeArgumentID<UsesAllocatorV1 const&>()) {}
+    UsesAllocatorV1(UsesAllocatorV1 &&)
+        : Base(&makeArgumentID<UsesAllocatorV1 &&>()) {}
+    // Non-Uses Allocator Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
+    UsesAllocatorV1(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
+
+    // Uses Allocator Arg Ctor
+    template <class ...Args>
+    UsesAllocatorV1(std::allocator_arg_t tag, CtorAlloc const & a, Args&&... args)
+        : Base(tag, a, std::forward<Args>(args)...)
+    { }
+
+    // BLOWS UP: Uses Allocator Last Ctor
+    template <class First, class ...Args, EnableIfB<sizeof...(Args) == Arity> Dummy = false>
+    constexpr UsesAllocatorV1(First&&, Args&&...)
+    {
+        static_assert(!std::is_same<First, First>::value, "");
+    }
+};
+
+
+template <class Alloc, size_t Arity>
+class UsesAllocatorV2 : public UsesAllocatorTestBase<UsesAllocatorV2<Alloc, Arity>, Alloc>
+{
+public:
+    typedef Alloc allocator_type;
+
+    using Base = UsesAllocatorTestBase<UsesAllocatorV2, Alloc>;
+    using CtorAlloc = typename Base::CtorAlloc;
+
+    UsesAllocatorV2() : Base(&makeArgumentID<>()) {}
+    UsesAllocatorV2(UsesAllocatorV2 const&)
+        : Base(&makeArgumentID<UsesAllocatorV2 const&>()) {}
+    UsesAllocatorV2(UsesAllocatorV2 &&)
+        : Base(&makeArgumentID<UsesAllocatorV2 &&>()) {}
+
+    // Non-Uses Allocator Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
+    UsesAllocatorV2(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
+
+    // Uses Allocator Last Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity + 1> = false>
+    UsesAllocatorV2(Args&&... args)
+        : Base(AllocLastTag{}, std::forward<Args>(args)...)
+    {}
+};
+
+template <class Alloc, size_t Arity>
+class UsesAllocatorV3 : public UsesAllocatorTestBase<UsesAllocatorV3<Alloc, Arity>, Alloc>
+{
+public:
+    typedef Alloc allocator_type;
+
+    using Base = UsesAllocatorTestBase<UsesAllocatorV3, Alloc>;
+    using CtorAlloc = typename Base::CtorAlloc;
+
+    UsesAllocatorV3() : Base(&makeArgumentID<>()) {}
+    UsesAllocatorV3(UsesAllocatorV3 const&)
+        : Base(&makeArgumentID<UsesAllocatorV3 const&>()) {}
+    UsesAllocatorV3(UsesAllocatorV3 &&)
+        : Base(&makeArgumentID<UsesAllocatorV3 &&>()) {}
+
+    // Non-Uses Allocator Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
+    UsesAllocatorV3(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
+
+    // Uses Allocator Arg Ctor
+    template <class ...Args>
+    UsesAllocatorV3(std::allocator_arg_t tag, CtorAlloc const& alloc, Args&&... args)
+        : Base(tag, alloc, std::forward<Args>(args)...)
+    {}
+
+    // Uses Allocator Last Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity + 1> = false>
+    UsesAllocatorV3(Args&&... args)
+        : Base(AllocLastTag{}, std::forward<Args>(args)...)
+    {}
+};
+
+template <class Alloc, size_t Arity>
+class NotUsesAllocator : public UsesAllocatorTestBase<NotUsesAllocator<Alloc, Arity>, Alloc>
+{
+public:
+    // no allocator_type typedef provided
+
+    using Base = UsesAllocatorTestBase<NotUsesAllocator, Alloc>;
+    using CtorAlloc = typename Base::CtorAlloc;
+
+    NotUsesAllocator() : Base(&makeArgumentID<>()) {}
+    NotUsesAllocator(NotUsesAllocator const&)
+        : Base(&makeArgumentID<NotUsesAllocator const&>()) {}
+    NotUsesAllocator(NotUsesAllocator &&)
+        : Base(&makeArgumentID<NotUsesAllocator &&>()) {}
+    // Non-Uses Allocator Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
+    NotUsesAllocator(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
+
+    // Uses Allocator Arg Ctor
+    template <class ...Args>
+    NotUsesAllocator(std::allocator_arg_t tag, CtorAlloc const& alloc, Args&&... args)
+        : Base(tag, alloc, std::forward<Args>(args)...)
+    {}
+
+    // Uses Allocator Last Ctor
+    template <class ...Args, EnableIfB<sizeof...(Args) == Arity + 1> = false>
+    NotUsesAllocator(Args&&... args)
+        : Base(AllocLastTag{}, std::forward<Args>(args)...)
+    {}
+};
+
+#endif /* USES_ALLOC_TYPES_H */

Removed: libcxx/trunk/test/support/uses_alloc_types.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/uses_alloc_types.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/uses_alloc_types.hpp (original)
+++ libcxx/trunk/test/support/uses_alloc_types.hpp (removed)
@@ -1,390 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef USES_ALLOC_TYPES_HPP
-#define USES_ALLOC_TYPES_HPP
-
-# include <memory>
-# include <cassert>
-#include <cstdlib>
-
-#include "test_macros.h"
-#include "test_workarounds.h"
-#include "type_id.h"
-
-// There are two forms of uses-allocator construction:
-//   (1) UA_AllocArg: 'T(allocator_arg_t, Alloc const&, Args&&...)'
-//   (2) UA_AllocLast: 'T(Args&&..., Alloc const&)'
-// 'UA_None' represents non-uses allocator construction.
-enum class UsesAllocatorType {
-  UA_None = 0,
-  UA_AllocArg = 2,
-  UA_AllocLast = 4
-};
-constexpr UsesAllocatorType UA_None = UsesAllocatorType::UA_None;
-constexpr UsesAllocatorType UA_AllocArg = UsesAllocatorType::UA_AllocArg;
-constexpr UsesAllocatorType UA_AllocLast = UsesAllocatorType::UA_AllocLast;
-
-inline const char* toString(UsesAllocatorType UA) {
-    switch (UA) {
-    case UA_None:
-        return "UA_None";
-    case UA_AllocArg:
-        return "UA_AllocArg";
-    case UA_AllocLast:
-        return "UA_AllocLast";
-    default:
-    std::abort();
-    }
-}
-
-#define COMPARE_ALLOC_TYPE(LHS, RHS) CompareVerbose(#LHS, LHS, #RHS, RHS)
-
-inline bool CompareVerbose(const char* LHSString, UsesAllocatorType LHS,
-                           const char* RHSString, UsesAllocatorType RHS) {
-    if (LHS == RHS)
-        return true;
-    std::printf("UsesAllocatorType's don't match:\n%s %s\n----------\n%s %s\n",
-                LHSString, toString(LHS), RHSString, toString(RHS));
-    return false;
-}
-
-template <class Alloc, std::size_t N>
-class UsesAllocatorV1;
-    // Implements form (1) of uses-allocator construction from the specified
-    // 'Alloc' type and exactly 'N' additional arguments. It also provides
-    // non-uses allocator construction from 'N' arguments. This test type
-    // blows up when form (2) of uses-allocator is even considered.
-
-template <class Alloc, std::size_t N>
-class UsesAllocatorV2;
-    // Implements form (2) of uses-allocator construction from the specified
-    // 'Alloc' type and exactly 'N' additional arguments. It also provides
-    // non-uses allocator construction from 'N' arguments.
-
-template <class Alloc, std::size_t N>
-class UsesAllocatorV3;
-    // Implements both form (1) and (2) of uses-allocator construction from
-    // the specified 'Alloc' type and exactly 'N' additional arguments. It also
-    // provides non-uses allocator construction from 'N' arguments.
-
-template <class Alloc, std::size_t>
-class NotUsesAllocator;
-    // Implements both form (1) and (2) of uses-allocator construction from
-    // the specified 'Alloc' type and exactly 'N' additional arguments. It also
-    // provides non-uses allocator construction from 'N' arguments. However
-    // 'NotUsesAllocator' never provides a 'allocator_type' typedef so it is
-    // never automatically uses-allocator constructed.
-
-
-template <class ...ArgTypes, class TestType>
-bool checkConstruct(TestType& value, UsesAllocatorType form,
-                    typename TestType::CtorAlloc const& alloc)
-    // Check that 'value' was constructed using the specified 'form' of
-    // construction and with the specified 'ArgTypes...'. Additionally
-    // check that 'value' was constructed using the specified 'alloc'.
-{
-    if (form == UA_None) {
-        return value.template checkConstruct<ArgTypes&&...>(form);
-    } else {
-        return value.template checkConstruct<ArgTypes&&...>(form, alloc);
-    }
-}
-
-
-template <class ...ArgTypes, class TestType>
-bool checkConstruct(TestType& value, UsesAllocatorType form) {
-    return value.template checkConstruct<ArgTypes&&...>(form);
-}
-
-template <class TestType>
-bool checkConstructionEquiv(TestType& T, TestType& U)
-    // check that 'T' and 'U' where initialized in the exact same manner.
-{
-    return T.checkConstructEquiv(U);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-namespace detail {
-
-template <bool IsZero, size_t N, class ArgList, class ...Args>
-struct TakeNImp;
-
-template <class ArgList, class ...Args>
-struct TakeNImp<true, 0, ArgList, Args...> {
-  typedef ArgList type;
-};
-
-template <size_t N, class ...A1, class F, class ...R>
-struct TakeNImp<false, N, ArgumentListID<A1...>, F, R...>
-    : TakeNImp<N-1 == 0, N - 1, ArgumentListID<A1..., F>, R...> {};
-
-template <size_t N, class ...Args>
-struct TakeNArgs : TakeNImp<N == 0, N, ArgumentListID<>, Args...> {};
-
-template <class T>
-struct Identity { typedef T type; };
-
-template <class T>
-using IdentityT = typename Identity<T>::type;
-
-template <bool Value>
-using EnableIfB = typename std::enable_if<Value, bool>::type;
-
-} // end namespace detail
-
-// FIXME: UsesAllocatorTestBase needs some special logic to deal with
-// polymorphic allocators. However we don't want to include
-// <experimental/memory_resource> in this header. Therefore in order
-// to inject this behavior later we use a trait.
-// See test_memory_resource.hpp for more info.
-template <class Alloc>
-struct TransformErasedTypeAlloc {
-  using type = Alloc;
-};
-
-using detail::EnableIfB;
-
-struct AllocLastTag {};
-
-template <class Alloc, bool = std::is_default_constructible<Alloc>::value>
-struct UsesAllocatorTestBaseStorage {
-    Alloc allocator;
-    UsesAllocatorTestBaseStorage() = default;
-    UsesAllocatorTestBaseStorage(Alloc const& a) : allocator(a) {}
-    const Alloc* get_allocator() const { return &allocator; }
-};
-
-template <class Alloc>
-struct UsesAllocatorTestBaseStorage<Alloc, false> {
-  union {
-    char dummy;
-    Alloc alloc;
-  };
-  bool has_alloc = false;
-
-  UsesAllocatorTestBaseStorage() : dummy(), has_alloc(false) {}
-  UsesAllocatorTestBaseStorage(Alloc const& a) : alloc(a), has_alloc(true) {}
-  ~UsesAllocatorTestBaseStorage() {
-      if (has_alloc)
-          alloc.~Alloc();
-  }
-
-  Alloc const* get_allocator() const {
-      if (!has_alloc)
-          return nullptr;
-      return &alloc;
-  }
-};
-
-template <class Self, class Alloc>
-struct UsesAllocatorTestBase {
-public:
-    using CtorAlloc = typename TransformErasedTypeAlloc<Alloc>::type;
-
-    template <class ...ArgTypes>
-    bool checkConstruct(UsesAllocatorType expectType) const {
-        auto expectArgs = &makeArgumentID<ArgTypes...>();
-        return COMPARE_ALLOC_TYPE(expectType, constructor_called) &&
-               COMPARE_TYPEID(args_id, expectArgs);
-    }
-
-    template <class ...ArgTypes>
-    bool checkConstruct(UsesAllocatorType expectType,
-                        CtorAlloc const& expectAlloc) const {
-        auto ExpectID = &makeArgumentID<ArgTypes...>() ;
-        return COMPARE_ALLOC_TYPE(expectType, constructor_called) &&
-               COMPARE_TYPEID(args_id, ExpectID) &&
-               has_alloc() && expectAlloc == *get_alloc();
-
-    }
-
-    bool checkConstructEquiv(UsesAllocatorTestBase& O) const {
-        if (has_alloc() != O.has_alloc())
-            return false;
-        return COMPARE_ALLOC_TYPE(constructor_called, O.constructor_called)
-            && COMPARE_TYPEID(args_id, O.args_id)
-            && (!has_alloc() || *get_alloc() == *O.get_alloc());
-    }
-
-protected:
-    explicit UsesAllocatorTestBase(const TypeID* aid)
-        : args_id(aid), constructor_called(UA_None), alloc_store()
-    {}
-
-    UsesAllocatorTestBase(UsesAllocatorTestBase const&)
-        : args_id(&makeArgumentID<Self const&>()), constructor_called(UA_None),
-          alloc_store()
-    {}
-
-    UsesAllocatorTestBase(UsesAllocatorTestBase&&)
-        : args_id(&makeArgumentID<Self&&>()), constructor_called(UA_None),
-          alloc_store()
-    {}
-
-    template <class ...Args>
-    UsesAllocatorTestBase(std::allocator_arg_t, CtorAlloc const& a, Args&&...)
-        : args_id(&makeArgumentID<Args&&...>()),
-          constructor_called(UA_AllocArg),
-          alloc_store(a)
-    {}
-
-    template <class ...Args, class ArgsIDL = detail::TakeNArgs<sizeof...(Args) - 1, Args&&...>>
-    UsesAllocatorTestBase(AllocLastTag, Args&&... args)
-        : args_id(&makeTypeIDImp<typename ArgsIDL::type>()),
-          constructor_called(UA_AllocLast),
-          alloc_store(UsesAllocatorTestBase::getAllocatorFromPack(
-            typename ArgsIDL::type{},
-            std::forward<Args>(args)...))
-    {
-    }
-
-private:
-    template <class ...LArgs, class ...Args>
-    static CtorAlloc getAllocatorFromPack(ArgumentListID<LArgs...>, Args&&... args) {
-        return UsesAllocatorTestBase::getAllocatorFromPackImp<LArgs const&...>(args...);
-    }
-
-    template <class ...LArgs>
-    static CtorAlloc getAllocatorFromPackImp(
-        typename detail::Identity<LArgs>::type..., CtorAlloc const& alloc) {
-        return alloc;
-    }
-
-    bool has_alloc() const { return alloc_store.get_allocator() != nullptr; }
-    const CtorAlloc *get_alloc() const { return alloc_store.get_allocator(); }
-public:
-    const TypeID* args_id;
-    UsesAllocatorType constructor_called = UA_None;
-    UsesAllocatorTestBaseStorage<CtorAlloc> alloc_store;
-};
-
-template <class Alloc, size_t Arity>
-class UsesAllocatorV1 : public UsesAllocatorTestBase<UsesAllocatorV1<Alloc, Arity>, Alloc>
-{
-public:
-    typedef Alloc allocator_type;
-
-    using Base = UsesAllocatorTestBase<UsesAllocatorV1, Alloc>;
-    using CtorAlloc = typename Base::CtorAlloc;
-
-    UsesAllocatorV1() : Base(&makeArgumentID<>()) {}
-
-    UsesAllocatorV1(UsesAllocatorV1 const&)
-        : Base(&makeArgumentID<UsesAllocatorV1 const&>()) {}
-    UsesAllocatorV1(UsesAllocatorV1 &&)
-        : Base(&makeArgumentID<UsesAllocatorV1 &&>()) {}
-    // Non-Uses Allocator Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
-    UsesAllocatorV1(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
-
-    // Uses Allocator Arg Ctor
-    template <class ...Args>
-    UsesAllocatorV1(std::allocator_arg_t tag, CtorAlloc const & a, Args&&... args)
-        : Base(tag, a, std::forward<Args>(args)...)
-    { }
-
-    // BLOWS UP: Uses Allocator Last Ctor
-    template <class First, class ...Args, EnableIfB<sizeof...(Args) == Arity> Dummy = false>
-    constexpr UsesAllocatorV1(First&&, Args&&...)
-    {
-        static_assert(!std::is_same<First, First>::value, "");
-    }
-};
-
-
-template <class Alloc, size_t Arity>
-class UsesAllocatorV2 : public UsesAllocatorTestBase<UsesAllocatorV2<Alloc, Arity>, Alloc>
-{
-public:
-    typedef Alloc allocator_type;
-
-    using Base = UsesAllocatorTestBase<UsesAllocatorV2, Alloc>;
-    using CtorAlloc = typename Base::CtorAlloc;
-
-    UsesAllocatorV2() : Base(&makeArgumentID<>()) {}
-    UsesAllocatorV2(UsesAllocatorV2 const&)
-        : Base(&makeArgumentID<UsesAllocatorV2 const&>()) {}
-    UsesAllocatorV2(UsesAllocatorV2 &&)
-        : Base(&makeArgumentID<UsesAllocatorV2 &&>()) {}
-
-    // Non-Uses Allocator Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
-    UsesAllocatorV2(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
-
-    // Uses Allocator Last Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity + 1> = false>
-    UsesAllocatorV2(Args&&... args)
-        : Base(AllocLastTag{}, std::forward<Args>(args)...)
-    {}
-};
-
-template <class Alloc, size_t Arity>
-class UsesAllocatorV3 : public UsesAllocatorTestBase<UsesAllocatorV3<Alloc, Arity>, Alloc>
-{
-public:
-    typedef Alloc allocator_type;
-
-    using Base = UsesAllocatorTestBase<UsesAllocatorV3, Alloc>;
-    using CtorAlloc = typename Base::CtorAlloc;
-
-    UsesAllocatorV3() : Base(&makeArgumentID<>()) {}
-    UsesAllocatorV3(UsesAllocatorV3 const&)
-        : Base(&makeArgumentID<UsesAllocatorV3 const&>()) {}
-    UsesAllocatorV3(UsesAllocatorV3 &&)
-        : Base(&makeArgumentID<UsesAllocatorV3 &&>()) {}
-
-    // Non-Uses Allocator Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
-    UsesAllocatorV3(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
-
-    // Uses Allocator Arg Ctor
-    template <class ...Args>
-    UsesAllocatorV3(std::allocator_arg_t tag, CtorAlloc const& alloc, Args&&... args)
-        : Base(tag, alloc, std::forward<Args>(args)...)
-    {}
-
-    // Uses Allocator Last Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity + 1> = false>
-    UsesAllocatorV3(Args&&... args)
-        : Base(AllocLastTag{}, std::forward<Args>(args)...)
-    {}
-};
-
-template <class Alloc, size_t Arity>
-class NotUsesAllocator : public UsesAllocatorTestBase<NotUsesAllocator<Alloc, Arity>, Alloc>
-{
-public:
-    // no allocator_type typedef provided
-
-    using Base = UsesAllocatorTestBase<NotUsesAllocator, Alloc>;
-    using CtorAlloc = typename Base::CtorAlloc;
-
-    NotUsesAllocator() : Base(&makeArgumentID<>()) {}
-    NotUsesAllocator(NotUsesAllocator const&)
-        : Base(&makeArgumentID<NotUsesAllocator const&>()) {}
-    NotUsesAllocator(NotUsesAllocator &&)
-        : Base(&makeArgumentID<NotUsesAllocator &&>()) {}
-    // Non-Uses Allocator Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity> = false>
-    NotUsesAllocator(Args&&...) : Base(&makeArgumentID<Args&&...>()) {}
-
-    // Uses Allocator Arg Ctor
-    template <class ...Args>
-    NotUsesAllocator(std::allocator_arg_t tag, CtorAlloc const& alloc, Args&&... args)
-        : Base(tag, alloc, std::forward<Args>(args)...)
-    {}
-
-    // Uses Allocator Last Ctor
-    template <class ...Args, EnableIfB<sizeof...(Args) == Arity + 1> = false>
-    NotUsesAllocator(Args&&... args)
-        : Base(AllocLastTag{}, std::forward<Args>(args)...)
-    {}
-};
-
-#endif /* USES_ALLOC_TYPES_HPP */

Added: libcxx/trunk/test/support/variant_test_helpers.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/variant_test_helpers.h?rev=369481&view=auto
==============================================================================
--- libcxx/trunk/test/support/variant_test_helpers.h (added)
+++ libcxx/trunk/test/support/variant_test_helpers.h Tue Aug 20 17:14:12 2019
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#ifndef SUPPORT_VARIANT_TEST_HELPERS_H
+#define SUPPORT_VARIANT_TEST_HELPERS_H
+
+#include <type_traits>
+#include <utility>
+#include <cassert>
+
+#include "test_macros.h"
+
+#if TEST_STD_VER <= 14
+#error This file requires C++17
+#endif
+
+// FIXME: Currently the variant<T&> tests are disabled using this macro.
+#define TEST_VARIANT_HAS_NO_REFERENCES
+#ifdef _LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT
+# define TEST_VARIANT_ALLOWS_NARROWING_CONVERSIONS
+#endif
+
+#ifdef TEST_VARIANT_ALLOWS_NARROWING_CONVERSIONS
+constexpr bool VariantAllowsNarrowingConversions = true;
+#else
+constexpr bool VariantAllowsNarrowingConversions = false;
+#endif
+
+#ifndef TEST_HAS_NO_EXCEPTIONS
+struct CopyThrows {
+  CopyThrows() = default;
+  CopyThrows(CopyThrows const&) { throw 42; }
+  CopyThrows& operator=(CopyThrows const&) { throw 42; }
+};
+
+struct MoveThrows {
+  static int alive;
+  MoveThrows() { ++alive; }
+  MoveThrows(MoveThrows const&) {++alive;}
+  MoveThrows(MoveThrows&&) {  throw 42; }
+  MoveThrows& operator=(MoveThrows const&) { return *this; }
+  MoveThrows& operator=(MoveThrows&&) { throw 42; }
+  ~MoveThrows() { --alive; }
+};
+
+int MoveThrows::alive = 0;
+
+struct MakeEmptyT {
+  static int alive;
+  MakeEmptyT() { ++alive; }
+  MakeEmptyT(MakeEmptyT const&) {
+      ++alive;
+      // Don't throw from the copy constructor since variant's assignment
+      // operator performs a copy before committing to the assignment.
+  }
+  MakeEmptyT(MakeEmptyT &&) {
+      throw 42;
+  }
+  MakeEmptyT& operator=(MakeEmptyT const&) {
+      throw 42;
+  }
+  MakeEmptyT& operator=(MakeEmptyT&&) {
+      throw 42;
+  }
+   ~MakeEmptyT() { --alive; }
+};
+static_assert(std::is_swappable_v<MakeEmptyT>, ""); // required for test
+
+int MakeEmptyT::alive = 0;
+
+template <class Variant>
+void makeEmpty(Variant& v) {
+    Variant v2(std::in_place_type<MakeEmptyT>);
+    try {
+        v = std::move(v2);
+        assert(false);
+    } catch (...) {
+        assert(v.valueless_by_exception());
+    }
+}
+#endif // TEST_HAS_NO_EXCEPTIONS
+
+
+#endif // SUPPORT_VARIANT_TEST_HELPERS_H

Removed: libcxx/trunk/test/support/variant_test_helpers.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/variant_test_helpers.hpp?rev=369480&view=auto
==============================================================================
--- libcxx/trunk/test/support/variant_test_helpers.hpp (original)
+++ libcxx/trunk/test/support/variant_test_helpers.hpp (removed)
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef SUPPORT_VARIANT_TEST_HELPERS_HPP
-#define SUPPORT_VARIANT_TEST_HELPERS_HPP
-
-#include <type_traits>
-#include <utility>
-#include <cassert>
-
-#include "test_macros.h"
-
-#if TEST_STD_VER <= 14
-#error This file requires C++17
-#endif
-
-// FIXME: Currently the variant<T&> tests are disabled using this macro.
-#define TEST_VARIANT_HAS_NO_REFERENCES
-#ifdef _LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT
-# define TEST_VARIANT_ALLOWS_NARROWING_CONVERSIONS
-#endif
-
-#ifdef TEST_VARIANT_ALLOWS_NARROWING_CONVERSIONS
-constexpr bool VariantAllowsNarrowingConversions = true;
-#else
-constexpr bool VariantAllowsNarrowingConversions = false;
-#endif
-
-#ifndef TEST_HAS_NO_EXCEPTIONS
-struct CopyThrows {
-  CopyThrows() = default;
-  CopyThrows(CopyThrows const&) { throw 42; }
-  CopyThrows& operator=(CopyThrows const&) { throw 42; }
-};
-
-struct MoveThrows {
-  static int alive;
-  MoveThrows() { ++alive; }
-  MoveThrows(MoveThrows const&) {++alive;}
-  MoveThrows(MoveThrows&&) {  throw 42; }
-  MoveThrows& operator=(MoveThrows const&) { return *this; }
-  MoveThrows& operator=(MoveThrows&&) { throw 42; }
-  ~MoveThrows() { --alive; }
-};
-
-int MoveThrows::alive = 0;
-
-struct MakeEmptyT {
-  static int alive;
-  MakeEmptyT() { ++alive; }
-  MakeEmptyT(MakeEmptyT const&) {
-      ++alive;
-      // Don't throw from the copy constructor since variant's assignment
-      // operator performs a copy before committing to the assignment.
-  }
-  MakeEmptyT(MakeEmptyT &&) {
-      throw 42;
-  }
-  MakeEmptyT& operator=(MakeEmptyT const&) {
-      throw 42;
-  }
-  MakeEmptyT& operator=(MakeEmptyT&&) {
-      throw 42;
-  }
-   ~MakeEmptyT() { --alive; }
-};
-static_assert(std::is_swappable_v<MakeEmptyT>, ""); // required for test
-
-int MakeEmptyT::alive = 0;
-
-template <class Variant>
-void makeEmpty(Variant& v) {
-    Variant v2(std::in_place_type<MakeEmptyT>);
-    try {
-        v = std::move(v2);
-        assert(false);
-    } catch (...) {
-        assert(v.valueless_by_exception());
-    }
-}
-#endif // TEST_HAS_NO_EXCEPTIONS
-
-
-#endif // SUPPORT_VARIANT_TEST_HELPERS_HPP

Modified: libcxx/trunk/utils/libcxx/test/config.py
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/libcxx/test/config.py?rev=369481&r1=369480&r2=369481&view=diff
==============================================================================
--- libcxx/trunk/utils/libcxx/test/config.py (original)
+++ libcxx/trunk/utils/libcxx/test/config.py Tue Aug 20 17:14:12 2019
@@ -602,11 +602,11 @@ class Configuration(object):
         if self.cxx_stdlib_under_test != 'libstdc++' and \
            not self.is_windows:
             self.cxx.compile_flags += [
-                '-include', os.path.join(support_path, 'nasty_macros.hpp')]
+                '-include', os.path.join(support_path, 'nasty_macros.h')]
         if self.cxx_stdlib_under_test == 'msvc':
             self.cxx.compile_flags += [
                 '-include', os.path.join(support_path,
-                                         'msvc_stdlib_force_include.hpp')]
+                                         'msvc_stdlib_force_include.h')]
             pass
         if self.is_windows and self.debug_build and \
                 self.cxx_stdlib_under_test != 'msvc':




More information about the libcxx-commits mailing list