llvm-project/libcxx/test/support
Eric Fiselier 998a5c8831 Implement <filesystem>
This patch implements the <filesystem> header and uses that
to provide <experimental/filesystem>.

Unlike other standard headers, the symbols needed for <filesystem>
have not yet been placed in libc++.so. Instead they live in the
new libc++fs.a library. Users of filesystem are required to link this
library. (Also note that libc++experimental no longer contains the
definition of <experimental/filesystem>, which now requires linking libc++fs).

The reason for keeping <filesystem> out of the dylib for now is that
it's still somewhat experimental, and the possibility of requiring an
ABI breaking change is very real. In the future the symbols will likely
be moved into the dylib, or the dylib will be made to link libc++fs automagically).

Note that moving the symbols out of libc++experimental may break user builds
until they update to -lc++fs. This should be OK, because the experimental
library provides no stability guarantees. However, I plan on looking into
ways we can force libc++experimental to automagically link libc++fs.

In order to use a single implementation and set of tests for <filesystem>, it
has been placed in a special `__fs` namespace. This namespace is inline in
C++17 onward, but not before that. As such implementation is available
in C++11 onward, but no filesystem namespace is present "directly", and
as such name conflicts shouldn't occur in C++11 or C++14.

llvm-svn: 338093
2018-07-27 03:07:09 +00:00
..
test.support Implement P0513R0 - "Poisoning the Hash" 2017-01-21 00:02:12 +00:00
test.workarounds [test] Remove workaround for C1XX empty parameter pack bug 2017-06-05 19:59:17 +00:00
Counter.h [libcxx] [test] Avoid unary_function. 2018-04-12 23:56:10 +00:00
DefaultOnly.h
MoveOnly.h Move + and * operators of MoveOnly into MoveOnly.h. 2018-01-05 01:32:00 +00:00
allocators.h Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit 2017-06-14 20:00:36 +00:00
any_helpers.h [libcxx] [test] Rename _Tp to T. NFCI. 2017-08-11 20:53:53 +00:00
archetypes.hpp [test] support machinery changes for EDG & C1XX /Za 2017-05-10 19:10:49 +00:00
archetypes.ipp [test] support machinery changes for EDG & C1XX /Za 2017-05-10 19:10:49 +00:00
asan_testing.h Remove trailing whitespace in test suite. Approved by Marshall Clow. 2016-06-01 21:35:39 +00:00
assert_checkpoint.h Add checkpoint diagnostics to help diagnose buildbot failures. 2016-07-18 03:00:09 +00:00
cmpxchg_loop.h
constexpr_char_traits.hpp [libc++] Fix PR 31938 - std::basic_string constructors use non-deductible parameter types. 2017-02-17 01:17:10 +00:00
container_test_types.h [libcxx] [test] Fix MSVC warnings, null pointer deref. 2017-12-13 00:51:27 +00:00
controlled_allocators.hpp [libcxx] [test] Fix comment typos, strip trailing whitespace. 2017-01-18 20:10:25 +00:00
coroutine_types.h [coroutines] Add end-to-end tests within libc++ 2017-05-28 19:38:21 +00:00
count_new.hpp Fix PR22634 - std::allocator doesn't respect over-aligned types. 2018-03-22 04:42:56 +00:00
counting_predicates.hpp [libcxx] [test] Update for C++17 feature removals. 2017-08-24 21:24:08 +00:00
debug_mode_helper.h Get more std::string _LIBCPP_DEBUG tests passing 2017-01-18 05:34:42 +00:00
deleter_types.h Overhaul unique_ptr - Implement LWG 2801, 2905, 2520. 2017-04-16 01:51:04 +00:00
demangle.h Fix demangle helper after r286788 2017-01-20 00:00:31 +00:00
disable_missing_braces_warning.h Get all tuple tests passing on Windows 2017-01-07 00:10:42 +00:00
emplace_constructible.h fix shadowing warnings in new tests, try 2 2017-10-17 16:06:42 +00:00
experimental_any_helpers.h [libcxx] [test] Rename _Tp to T. NFCI. 2017-08-11 20:53:53 +00:00
external_threads.cpp [libc++] Cleanup and document <__threading_support> 2017-01-06 20:05:40 +00:00
filesystem_dynamic_test_helper.py Fix misspelling of environment throughout libc++ 2017-05-09 23:47:20 +00:00
filesystem_include.hpp Implement <filesystem> 2018-07-27 03:07:09 +00:00
filesystem_test_helper.hpp Implement filesystem_error::what() and improve reporting. 2018-07-23 02:00:52 +00:00
format_string.hpp Fix missing includes in format_string.hpp helper 2018-07-25 04:21:59 +00:00
hexfloat.h Don't use std::__clz in 'test/support/hexfloat.h'. 2016-05-03 02:04:26 +00:00
is_transparent.h Fix bug 33389 - __is_transparent check requires too much 2017-06-13 14:34:58 +00:00
min_allocator.h Implement P0513R0 - "Poisoning the Hash" 2017-01-21 00:02:12 +00:00
msvc_stdlib_force_include.hpp [libcxx] [test] Update msvc_stdlib_force_include.hpp. 2018-06-14 00:12:14 +00:00
nasty_containers.hpp [libcxx] [test] Untabify, NFC. 2017-07-29 00:55:10 +00:00
nasty_macros.hpp Rename identifiers named `__output` 2017-11-14 11:14:25 +00:00
nothing_to_do.pass.cpp
platform_support.h libcxx: Provide overloads for basic_filebuf::open() et al that take wchar_t* filenames on Windows. 2018-01-23 02:07:27 +00:00
poisoned_hash_helper.hpp [test] Remove workaround for C1XX conversion-to-nullptr bug 2017-05-25 17:42:21 +00:00
private_constructor.hpp
propagate_const_helpers.h Implement std::experimental::propagate_const from LFTS v2 2016-06-19 19:34:13 +00:00
rapid-cxx-test.hpp Implement a better copy_file. 2018-07-22 02:00:53 +00:00
set_windows_crt_report_mode.h [libc++][CMake] Use debug MSVC runtimes when libc++ is built in debug mode 2017-01-14 07:54:39 +00:00
test_allocator.h Fix PR37694 - std::vector doesn't correctly move construct allocators. 2018-06-05 22:32:52 +00:00
test_comparisons.h New test support for comparisons. Reviewed as https://reviews.llvm.org/D49773 2018-07-25 04:21:21 +00:00
test_convertible.hpp [libcxx] [test] Make files consistently end with newlines, NFC. 2017-07-29 00:55:22 +00:00
test_iterators.h Make next/prev/advance/distance operations on iterators be constexpr. I missed this when I implemented the rest of P0031R0 2017-05-17 18:51:36 +00:00
test_macros.h Stop wrapping __has_include in another macro 2018-07-24 12:40:56 +00:00
test_memory_resource.hpp LWG 2969 "polymorphic_allocator::construct() shouldn't pass resource()" 2018-05-29 00:08:47 +00:00
test_workarounds.h [test] Remove workaround for C1XX empty parameter pack bug 2017-06-05 19:59:17 +00:00
tracked_value.h Cleanup _LIBCPP_HAS_NO_<c++11-feature> in support headers and final tests 2017-04-19 01:02:49 +00:00
type_id.h Refactor uses_allocator test types for upcoming fixes 2016-12-09 09:51:09 +00:00
unique_ptr_test_helper.h Simplify test helper 2017-04-15 12:05:11 +00:00
user_defined_integral.hpp
uses_alloc_types.hpp [test] Remove workaround for C1XX empty parameter pack bug 2017-06-05 19:59:17 +00:00
variant_test_helpers.hpp [test] Test changes to accommodate LWG 2904 "Make variant move-assignment more exception safe" 2017-06-07 00:06:04 +00:00
verbose_assert.h Implement filesystem NB comments, relative paths, and related issues. 2018-04-02 23:03:41 +00:00