diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-02-17 01:00:37 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-02-17 01:00:37 +0000 |
commit | 57b93eb78fda3b4bd32de3a10ba953ead3e51040 (patch) | |
tree | 12f77c9243c4ef22156d0716d072ee9d25ae73d7 /libcxx | |
parent | 1ede03d5d2109214ebae6599723baecf8aec5402 (diff) | |
download | bcm5719-llvm-57b93eb78fda3b4bd32de3a10ba953ead3e51040.tar.gz bcm5719-llvm-57b93eb78fda3b4bd32de3a10ba953ead3e51040.zip |
add tests for ENAMETOOLONG
llvm-svn: 295390
Diffstat (limited to 'libcxx')
-rw-r--r-- | libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp | 9 | ||||
-rw-r--r-- | libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp | 25 |
2 files changed, 25 insertions, 9 deletions
diff --git a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp index 252ced6fd65..2b9f57e7e95 100644 --- a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp +++ b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp @@ -85,4 +85,13 @@ TEST_CASE(test_exists_fails) TEST_CHECK_THROW(filesystem_error, exists(file)); } +TEST_CASE(test_name_too_long) { + std::string long_name(2500, 'a'); + const path file(long_name); + + std::error_code ec; + TEST_CHECK(exists(file, ec) == false); + TEST_CHECK(ec); +} + TEST_SUITE_END() diff --git a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp index 2c76caf74c8..fdc3d2b4a61 100644 --- a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp +++ b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp @@ -65,29 +65,36 @@ TEST_CASE(test_status_cannot_resolve) const std::error_code set_ec = std::make_error_code(std::errc::address_in_use); - const std::error_code expect_ec = + const std::error_code perm_ec = std::make_error_code(std::errc::permission_denied); + const std::error_code name_too_long_ec = + std::make_error_code(std::errc::filename_too_long); - const path cases[] = { - file, sym + struct TestCase { + path p; + std::error_code expect_ec; + } const TestCases[] = { + {file, perm_ec}, + {sym, perm_ec}, + {path(std::string(2500, 'a')), name_too_long_ec} }; - for (auto& p : cases) + for (auto& TC : TestCases) { { // test non-throwing case std::error_code ec = set_ec; - file_status st = status(p, ec); - TEST_CHECK(ec == expect_ec); + file_status st = status(TC.p, ec); + TEST_CHECK(ec == TC.expect_ec); TEST_CHECK(st.type() == file_type::none); TEST_CHECK(st.permissions() == perms::unknown); } #ifndef TEST_HAS_NO_EXCEPTIONS { // test throwing case try { - status(p); + status(TC.p); } catch (filesystem_error const& err) { - TEST_CHECK(err.path1() == p); + TEST_CHECK(err.path1() == TC.p); TEST_CHECK(err.path2() == ""); - TEST_CHECK(err.code() == expect_ec); + TEST_CHECK(err.code() == TC.expect_ec); } } #endif |