[libcxx] [test] Mark bits of fs.enum tests as libcpp specific

The individual enum values in copy_options and file_type aren't
specified in the standard.

The standard doesn't require fs::path::format to be a scoped enum.

Differential Revision: https://reviews.llvm.org/D89866
This commit is contained in:
Martin Storsjö 2020-10-21 10:37:59 +03:00
parent 586892d583
commit 545fb7a71c
3 changed files with 9 additions and 7 deletions

View File

@ -35,26 +35,27 @@ int main(int, char**) {
typedef check_bitmask_type<E, E::skip_existing, E::update_existing> BitmaskTester;
assert(BitmaskTester::check());
static_assert(
// The standard doesn't specify the numeric values of the enum.
LIBCPP_STATIC_ASSERT(
E::none == ME(0),
"Expected enumeration values do not match");
// Option group for copy_file
static_assert(
LIBCPP_STATIC_ASSERT(
E::skip_existing == ME(1) &&
E::overwrite_existing == ME(2) &&
E::update_existing == ME(4),
"Expected enumeration values do not match");
// Option group for copy on directories
static_assert(
LIBCPP_STATIC_ASSERT(
E::recursive == ME(8),
"Expected enumeration values do not match");
// Option group for copy on symlinks
static_assert(
LIBCPP_STATIC_ASSERT(
E::copy_symlinks == ME(16) &&
E::skip_symlinks == ME(32),
"Expected enumeration values do not match");
// Option group for changing form of copy
static_assert(
LIBCPP_STATIC_ASSERT(
E::directories_only == ME(64) &&
E::create_symlinks == ME(128) &&
E::create_hard_links == ME(256),

View File

@ -31,7 +31,8 @@ int main(int, char**) {
LIBCPP_ONLY(static_assert(std::is_same<UT, signed char>::value, "")); // Implementation detail
static_assert(
// The standard doesn't specify the numeric values of the enum.
LIBCPP_STATIC_ASSERT(
E::none == ME(0) &&
E::not_found == ME(-1) &&
E::regular == ME(1) &&

View File

@ -25,7 +25,7 @@ int main(int, char**) {
// Check that E is a scoped enum by checking for conversions.
typedef std::underlying_type<E>::type UT;
static_assert(!std::is_convertible<E, UT>::value, "");
LIBCPP_STATIC_ASSERT(!std::is_convertible<E, UT>::value, "");
LIBCPP_ONLY(static_assert(std::is_same<UT, unsigned char>::value, "")); // Implementation detail