diff options
author | Louis Dionne <ldionne@apple.com> | 2019-03-19 19:09:33 +0000 |
---|---|---|
committer | Louis Dionne <ldionne@apple.com> | 2019-03-19 19:09:33 +0000 |
commit | 72122d058b170eafc643ec659a9298b3b103cdfd (patch) | |
tree | 5375a5ed86a44a060638330aa825b1a5bc3c4b23 /libcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp | |
parent | c2e35a6f3258d102b731c77de9530714c4d02802 (diff) | |
download | bcm5719-llvm-72122d058b170eafc643ec659a9298b3b103cdfd.tar.gz bcm5719-llvm-72122d058b170eafc643ec659a9298b3b103cdfd.zip |
[libc++] Build <filesystem> support as part of the dylib
Summary:
This patch treats <filesystem> as a first-class citizen of the dylib,
like all other sub-libraries (e.g. <chrono>). As such, it also removes
all special handling for installing the filesystem library separately
or disabling part of the test suite from the lit command line.
Reviewers: mclow.lists, EricWF, serge-sans-paille
Subscribers: mgorny, christof, jkorous, dexonsmith, jfb, jdoerfert, libcxx-commits
Differential Revision: https://reviews.llvm.org/D59152
llvm-svn: 356500
Diffstat (limited to 'libcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp')
-rw-r--r-- | libcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/libcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp b/libcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp deleted file mode 100644 index 558206d7082..00000000000 --- a/libcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp +++ /dev/null @@ -1,106 +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 -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++98, c++03 - -// <filesystem> - -// class path - -// template <class Source> -// path(const Source& source); -// template <class InputIterator> -// path(InputIterator first, InputIterator last); - - -#include "filesystem_include.hpp" -#include <iterator> -#include <type_traits> -#include <cassert> - -#include "test_macros.h" -#include "filesystem_test_helper.hpp" - - - -template <class It> -std::reverse_iterator<It> mkRev(It it) { - return std::reverse_iterator<It>(it); -} - -void checkIteratorConcepts() { - using namespace fs; - using It = path::iterator; - using Traits = std::iterator_traits<It>; - ASSERT_SAME_TYPE(Traits::iterator_category, std::bidirectional_iterator_tag); - ASSERT_SAME_TYPE(Traits::value_type, path); - ASSERT_SAME_TYPE(Traits::pointer, path const*); - ASSERT_SAME_TYPE(Traits::reference, path const&); - { - It it; - ASSERT_SAME_TYPE(It&, decltype(++it)); - ASSERT_SAME_TYPE(It, decltype(it++)); - ASSERT_SAME_TYPE(It&, decltype(--it)); - ASSERT_SAME_TYPE(It, decltype(it--)); - ASSERT_SAME_TYPE(Traits::reference, decltype(*it)); - ASSERT_SAME_TYPE(Traits::pointer, decltype(it.operator->())); - ASSERT_SAME_TYPE(std::string const&, decltype(it->native())); - ASSERT_SAME_TYPE(bool, decltype(it == it)); - ASSERT_SAME_TYPE(bool, decltype(it != it)); - } - { - path const p; - ASSERT_SAME_TYPE(It, decltype(p.begin())); - ASSERT_SAME_TYPE(It, decltype(p.end())); - assert(p.begin() == p.end()); - } -} - -void checkBeginEndBasic() { - using namespace fs; - using It = path::iterator; - { - path const p; - ASSERT_SAME_TYPE(It, decltype(p.begin())); - ASSERT_SAME_TYPE(It, decltype(p.end())); - assert(p.begin() == p.end()); - } - { - path const p("foo"); - It default_constructed; - default_constructed = p.begin(); - assert(default_constructed == p.begin()); - assert(default_constructed != p.end()); - default_constructed = p.end(); - assert(default_constructed == p.end()); - assert(default_constructed != p.begin()); - } - { - path p("//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", ""}; - assert(checkCollectionsEqual(p.begin(), p.end(), std::begin(expect), std::end(expect))); - assert(checkCollectionsEqualBackwards(p.begin(), p.end(), std::begin(expect), std::end(expect))); - - } - -} - -int main(int, char**) { - using namespace fs; - checkIteratorConcepts(); - checkBeginEndBasic(); // See path.decompose.pass.cpp for more tests. - - return 0; -} |