diff options
Diffstat (limited to 'test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp')
| -rw-r--r-- | test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp | 50 | 
1 files changed, 50 insertions, 0 deletions
diff --git a/test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp b/test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp new file mode 100644 index 0000000000000..8681b2dc50d6f --- /dev/null +++ b/test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp @@ -0,0 +1,50 @@ +//===----------------------------------------------------------------------===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: c++98, c++03 + +// <experimental/filesystem> + +// class file_status + +// void type(file_type) noexcept; +// void permissions(perms) noexcept; + +#include <experimental/filesystem> +#include <type_traits> +#include <cassert> + +namespace fs = std::experimental::filesystem; + +int main() { +  using namespace fs; + +  file_status st; + +  // type test +  { +    static_assert(noexcept(st.type(file_type::regular)), +                  "operation must be noexcept"); +    static_assert(std::is_same<decltype(st.type(file_type::regular)), void>::value, +                 "operation must return void"); +    assert(st.type() != file_type::regular); +    st.type(file_type::regular); +    assert(st.type() == file_type::regular); +  } +  // permissions test +  { +    static_assert(noexcept(st.permissions(perms::owner_read)), +                  "operation must be noexcept"); +    static_assert(std::is_same<decltype(st.permissions(perms::owner_read)), void>::value, +                 "operation must return void"); +    assert(st.permissions() != perms::owner_read); +    st.permissions(perms::owner_read); +    assert(st.permissions() == perms::owner_read); +  } +}  | 
