diff options
author | Eric Fiselier <eric@efcs.ca> | 2018-04-02 23:03:41 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2018-04-02 23:03:41 +0000 |
commit | d7fae181c3954886257fb33d0a57b954b26da745 (patch) | |
tree | 841df55a810bc7446cf7afdd6811b3f1d79a3fc8 /libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp | |
parent | 298ffc609bf5c67079dbeb77e3f75e5bc18fde7a (diff) | |
download | bcm5719-llvm-d7fae181c3954886257fb33d0a57b954b26da745.tar.gz bcm5719-llvm-d7fae181c3954886257fb33d0a57b954b26da745.zip |
Implement filesystem NB comments, relative paths, and related issues.
This is a fairly large patch that implements all of the filesystem NB comments
and the relative paths changes (ex. adding weakly_canonical). These issues
and papers are all interrelated so their implementation couldn't be split up
nicely.
This patch upgrades <experimental/filesystem> to match the C++17 spec and not
the published experimental TS spec. Some of the changes in this patch are both
API and ABI breaking, however libc++ makes no guarantee about stability for
experimental implementations.
The major changes in this patch are:
* Implement NB comments for filesystem (P0492R2), including:
* Implement `perm_options` enum as part of NB comments, and update the
`permissions` function to match.
* Implement changes to `remove_filename` and `replace_filename`
* Implement changes to `path::stem()` and `path::extension()` which support
splitting examples like `.profile`.
* Change path iteration to return an empty path instead of '.' for trailing
separators.
* Change `operator/=` to handle absolute paths on the RHS.
* Change `absolute` to no longer accept a current path argument.
* Implement relative paths according to NB comments (P0219r1)
* Combine `path.cpp` and `operations.cpp` since some path functions require
access to the operations internals, and some fs operations require access
to the path parser.
llvm-svn: 329028
Diffstat (limited to 'libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp')
-rw-r--r-- | libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp b/libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp index e5b3c848255..0ea672bdf1e 100644 --- a/libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp +++ b/libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp @@ -83,14 +83,14 @@ void checkBeginEndBasic() { } { path p("//root_name//first_dir////second_dir"); - const path expect[] = {"//root_name", "/", "first_dir", "second_dir"}; + const path expect[] = {"/", "root_name", "first_dir", "second_dir"}; assert(checkCollectionsEqual(p.begin(), p.end(), std::begin(expect), std::end(expect))); assert(checkCollectionsEqualBackwards(p.begin(), p.end(), std::begin(expect), std::end(expect))); } { path p("////foo/bar/baz///"); - const path expect[] = {"/", "foo", "bar", "baz", "."}; + const path expect[] = {"/", "foo", "bar", "baz", ""}; assert(checkCollectionsEqual(p.begin(), p.end(), std::begin(expect), std::end(expect))); assert(checkCollectionsEqualBackwards(p.begin(), p.end(), std::begin(expect), std::end(expect))); |