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.nonmember/path.io.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.nonmember/path.io.pass.cpp')
-rw-r--r-- | libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp b/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp deleted file mode 100644 index 31eea925a5d..00000000000 --- a/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp +++ /dev/null @@ -1,99 +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 charT, class traits> -// basic_ostream<charT, traits>& -// operator<<(basic_ostream<charT, traits>& os, const path& p); -// -// template <class charT, class traits> -// basic_istream<charT, traits>& -// operator>>(basic_istream<charT, traits>& is, path& p) -// - -#include "filesystem_include.hpp" -#include <type_traits> -#include <sstream> -#include <cassert> -#include <iostream> - -#include "test_macros.h" -#include "test_iterators.h" -#include "count_new.hpp" -#include "filesystem_test_helper.hpp" - -MultiStringType InStr = MKSTR("abcdefg/\"hijklmnop\"/qrstuvwxyz/123456789"); -MultiStringType OutStr = MKSTR("\"abcdefg/\\\"hijklmnop\\\"/qrstuvwxyz/123456789\""); - - - -template <class CharT> -void doIOTest() { - using namespace fs; - using Ptr = const CharT*; - using StrStream = std::basic_stringstream<CharT>; - const Ptr E = OutStr; - const path p((const char*)InStr); - StrStream ss; - { // test output - auto& ret = (ss << p); - assert(ss.str() == E); - assert(&ret == &ss); - } - { // test input - path p_in; - auto& ret = ss >> p_in; - assert(p_in.native() == (const char*)InStr); - assert(&ret == &ss); - } -} - -namespace impl { -using namespace fs; - -template <class Stream, class Tp, class = decltype(std::declval<Stream&>() << std::declval<Tp&>())> -std::true_type is_ostreamable_imp(int); - -template <class Stream, class Tp> -std::false_type is_ostreamable_imp(long); - -template <class Stream, class Tp, class = decltype(std::declval<Stream&>() >> std::declval<Tp&>())> -std::true_type is_istreamable_imp(int); - -template <class Stream, class Tp> -std::false_type is_istreamable_imp(long); - - -} // namespace impl - -template <class Stream, class Tp> -struct is_ostreamable : decltype(impl::is_ostreamable_imp<Stream, Tp>(0)) {}; -template <class Stream, class Tp> -struct is_istreamable : decltype(impl::is_istreamable_imp<Stream, Tp>(0)) {}; - -void test_LWG2989() { - static_assert(!is_ostreamable<decltype(std::cout), std::wstring>::value, ""); - static_assert(!is_ostreamable<decltype(std::wcout), std::string>::value, ""); - static_assert(!is_istreamable<decltype(std::cin), std::wstring>::value, ""); - static_assert(!is_istreamable<decltype(std::wcin), std::string>::value, ""); -} - -int main(int, char**) { - doIOTest<char>(); - doIOTest<wchar_t>(); - //doIOTest<char16_t>(); - //doIOTest<char32_t>(); - test_LWG2989(); - - return 0; -} |