mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-26 17:57:07 +00:00
[libc++] Mark <filesystem> tests as failing when the dylib doesn't support filesystem
This fixes CI for back-deployment testers on platforms that don't have <filesystem> support in the dylib. This is effectively half of https://reviews.llvm.org/D59224. The other half requires fixes in Clang. llvm-svn: 356558
This commit is contained in:
parent
7bb785cbc3
commit
b38c08ac02
@ -1354,6 +1354,11 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container(
|
||||
# define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR \
|
||||
__attribute__((availability(macosx,strict,introduced=10.9))) \
|
||||
__attribute__((availability(ios,strict,introduced=7.0)))
|
||||
# define _LIBCPP_AVAILABILITY_FILESYSTEM \
|
||||
__attribute__((availability(macosx,strict,unavailable))) \
|
||||
__attribute__((availability(ios,strict,unavailable))) \
|
||||
__attribute__((availability(tvos,strict,unavailable))) \
|
||||
__attribute__((availability(watchos,strict,unavailable)))
|
||||
#else
|
||||
# define _LIBCPP_AVAILABILITY_SHARED_MUTEX
|
||||
# define _LIBCPP_AVAILABILITY_BAD_VARIANT_ACCESS
|
||||
@ -1365,6 +1370,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container(
|
||||
# define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE
|
||||
# define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY
|
||||
# define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR
|
||||
# define _LIBCPP_AVAILABILITY_FILESYSTEM
|
||||
#endif
|
||||
|
||||
// Define availability that depends on _LIBCPP_NO_EXCEPTIONS.
|
||||
|
@ -235,7 +235,7 @@ public:
|
||||
basic_filebuf* open(const string& __s, ios_base::openmode __mode);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
basic_filebuf* open(const _VSTD_FS::path& __p, ios_base::openmode __mode) {
|
||||
return open(__p.c_str(), __mode);
|
||||
}
|
||||
@ -757,7 +757,7 @@ basic_filebuf<_CharT, _Traits>::underflow()
|
||||
this->eback() + __ibs_, __inext);
|
||||
if (__r == codecvt_base::noconv)
|
||||
{
|
||||
this->setg((char_type*)__extbuf_, (char_type*)__extbuf_,
|
||||
this->setg((char_type*)__extbuf_, (char_type*)__extbuf_,
|
||||
(char_type*)const_cast<char *>(__extbufend_));
|
||||
__c = traits_type::to_int_type(*this->gptr());
|
||||
}
|
||||
@ -1151,7 +1151,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ifstream(const string& __s, ios_base::openmode __mode = ios_base::in);
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ifstream(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in)
|
||||
: basic_ifstream(__p.c_str(), __mode) {}
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
@ -1177,7 +1177,7 @@ public:
|
||||
#endif
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::in);
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
void open(const filesystem::path& __p,
|
||||
ios_base::openmode __mode = ios_base::in) {
|
||||
return open(__p.c_str(), __mode);
|
||||
@ -1365,7 +1365,7 @@ public:
|
||||
explicit basic_ofstream(const string& __s, ios_base::openmode __mode = ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ofstream(const filesystem::path& __p, ios_base::openmode __mode = ios_base::out)
|
||||
: basic_ofstream(__p.c_str(), __mode) {}
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
@ -1392,7 +1392,7 @@ public:
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
void open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::out)
|
||||
{ return open(__p.c_str(), __mode); }
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
@ -1579,7 +1579,7 @@ public:
|
||||
explicit basic_fstream(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_fstream(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in | ios_base::out)
|
||||
: basic_fstream(__p.c_str(), __mode) {}
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
@ -1607,7 +1607,7 @@ public:
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
void open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in|ios_base::out)
|
||||
{ return open(__p.c_str(), __mode); }
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
|
@ -0,0 +1,3 @@
|
||||
# Disable all of the filesystem tests if the dylib under test doesn't support them.
|
||||
if 'dylib-has-no-filesystem' in config.available_features:
|
||||
config.unsupported = True
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <fstream>
|
||||
|
||||
|
3
libcxx/test/std/input.output/filesystems/lit.local.cfg
Normal file
3
libcxx/test/std/input.output/filesystems/lit.local.cfg
Normal file
@ -0,0 +1,3 @@
|
||||
# Disable all of the filesystem tests if the dylib under test doesn't support them.
|
||||
if 'dylib-has-no-filesystem' in config.available_features:
|
||||
config.unsupported = True
|
@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
|
||||
// XFAIL: dylib-has-no-filesystem
|
||||
|
||||
// <chrono>
|
||||
|
||||
|
@ -1151,6 +1151,10 @@ class Configuration(object):
|
||||
|
||||
self.config.available_features.add('dylib-has-no-bad_any_cast')
|
||||
self.lit_config.note("throwing bad_any_cast is not supported by the deployment target")
|
||||
# Filesystem is not supported on Apple platforms yet
|
||||
if name == 'macosx':
|
||||
self.config.available_features.add('dylib-has-no-filesystem')
|
||||
self.lit_config.note("the deployment target does not support the dylib parts of <filesystem>")
|
||||
else:
|
||||
self.cxx.flags += ['-D_LIBCPP_DISABLE_AVAILABILITY']
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user