diff options
author | Ekaterina Vaartis <vaartis@cock.li> | 2018-01-11 17:04:29 +0000 |
---|---|---|
committer | Ekaterina Vaartis <vaartis@cock.li> | 2018-01-11 17:04:29 +0000 |
commit | e44cbaf7047e0545dd3088a4ac0486ef67eec314 (patch) | |
tree | 83d5fa401e89555fc25cb86ef6928f4c845a500d /libcxx/test/std/experimental/filesystem | |
parent | 8de035670ec676da68e08167bde74c28440322ec (diff) | |
download | bcm5719-llvm-e44cbaf7047e0545dd3088a4ac0486ef67eec314.tar.gz bcm5719-llvm-e44cbaf7047e0545dd3088a4ac0486ef67eec314.zip |
Make std::experimental::filesystem::remove and remove_all return false or 0 if the file doesn't exist
Differential Revision: https://reviews.llvm.org/D41830
llvm-svn: 322293
Diffstat (limited to 'libcxx/test/std/experimental/filesystem')
-rw-r--r-- | libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp | 16 | ||||
-rw-r--r-- | libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp | 14 |
2 files changed, 27 insertions, 3 deletions
diff --git a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp index f7ce8a30e64..2fdb4ad4709 100644 --- a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp +++ b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp @@ -61,17 +61,29 @@ TEST_CASE(test_error_reporting) const path file_in_bad_dir = env.create_file(bad_perms_dir / "file", 42); permissions(bad_perms_dir, perms::none); const path testCases[] = { - "", - env.make_env_path("dne"), non_empty_dir, file_in_bad_dir, }; for (auto& p : testCases) { std::error_code ec; + TEST_CHECK(!fs::remove(p, ec)); TEST_CHECK(ec); TEST_CHECK(checkThrow(p, ec)); } + + // PR#35780 + const path testCasesNonexistant[] = { + "", + env.make_env_path("dne") + }; + + for (auto& p : testCasesNonexistant) { + std::error_code ec; + + TEST_CHECK(!fs::remove(p, ec)); + TEST_CHECK(!ec); + } } TEST_CASE(basic_remove_test) diff --git a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp index b84c18c1da0..cc3b7152dac 100644 --- a/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp +++ b/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp @@ -64,16 +64,28 @@ TEST_CASE(test_error_reporting) permissions(bad_perms_file, perms::none); const path testCases[] = { - env.make_env_path("dne"), file_in_bad_dir }; const auto BadRet = static_cast<std::uintmax_t>(-1); for (auto& p : testCases) { std::error_code ec; + TEST_CHECK(fs::remove_all(p, ec) == BadRet); TEST_CHECK(ec); TEST_CHECK(checkThrow(p, ec)); } + + // PR#35780 + const path testCasesNonexistant[] = { + "", + env.make_env_path("dne") + }; + for (auto &p : testCasesNonexistant) { + std::error_code ec; + + TEST_CHECK(fs::remove_all(p) == 0); + TEST_CHECK(!ec); + } } TEST_CASE(basic_remove_all_test) |