summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/experimental/filesystem
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-10-15 23:05:04 +0000
committerEric Fiselier <eric@efcs.ca>2016-10-15 23:05:04 +0000
commit9ada18b3392b89876b2315b0a5e35088f9d6e0fb (patch)
tree3f0f0fdeef28e1f89a456d41952123a258603958 /libcxx/test/std/experimental/filesystem
parent87ee8a0adb05dd695c7b5e84302ae43a57c0f417 (diff)
downloadbcm5719-llvm-9ada18b3392b89876b2315b0a5e35088f9d6e0fb.tar.gz
bcm5719-llvm-9ada18b3392b89876b2315b0a5e35088f9d6e0fb.zip
Implement LWG 2672.
llvm-svn: 284314
Diffstat (limited to 'libcxx/test/std/experimental/filesystem')
-rw-r--r--libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
index ba07d09d10d..bc62086c2cf 100644
--- a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
+++ b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
@@ -77,4 +77,33 @@ TEST_CASE(test_is_empty_fails)
TEST_CHECK_THROW(filesystem_error, is_empty(dir2));
}
+TEST_CASE(test_directory_access_denied)
+{
+ scoped_test_env env;
+ const path dir = env.create_dir("dir");
+ const path file1 = env.create_file("dir/file", 42);
+ permissions(dir, perms::none);
+
+ std::error_code ec = GetTestEC();
+ TEST_CHECK(is_empty(dir, ec) == false);
+ TEST_CHECK(ec);
+ TEST_CHECK(ec != GetTestEC());
+
+ TEST_CHECK_THROW(filesystem_error, is_empty(dir));
+}
+
+
+TEST_CASE(test_fifo_fails)
+{
+ scoped_test_env env;
+ const path fifo = env.create_fifo("fifo");
+
+ std::error_code ec = GetTestEC();
+ TEST_CHECK(is_empty(fifo, ec) == false);
+ TEST_CHECK(ec);
+ TEST_CHECK(ec != GetTestEC());
+
+ TEST_CHECK_THROW(filesystem_error, is_empty(fifo));
+}
+
TEST_SUITE_END()
OpenPOWER on IntegriCloud