[libcxx-commits] [PATCH] D99982: [libcxx] [test] Add more tests for renaming directories in fs.op.rename

Martin Storsjö via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Apr 9 11:25:19 PDT 2021


This revision was automatically updated to reflect the committed changes.
Closed by commit rG1e5f68d80a42: [libcxx] [test] Add more tests for renaming directories in fs.op.rename (authored by mstorsjo).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99982/new/

https://reviews.llvm.org/D99982

Files:
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp


Index: libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
===================================================================
--- libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
+++ libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
@@ -127,4 +127,31 @@
     }
 }
 
+TEST_CASE(basic_rename_dir_test)
+{
+    static_test_env env;
+    const std::error_code set_ec = std::make_error_code(std::errc::address_in_use);
+    const path new_dir = env.makePath("new_dir");
+    { // dir -> dir (with contents)
+        std::error_code ec = set_ec;
+        rename(env.Dir, new_dir, ec);
+        TEST_CHECK(!ec);
+        TEST_CHECK(!exists(env.Dir));
+        TEST_CHECK(is_directory(new_dir));
+        TEST_CHECK(exists(new_dir / "file1"));
+    }
+#ifdef _WIN32
+    // On Windows, renaming a directory over a file isn't an error (this
+    // case is skipped in test_error_reporting above).
+    { // dir -> file
+        std::error_code ec = set_ec;
+        rename(new_dir, env.NonEmptyFile, ec);
+        TEST_CHECK(!ec);
+        TEST_CHECK(!exists(new_dir));
+        TEST_CHECK(is_directory(env.NonEmptyFile));
+        TEST_CHECK(exists(env.NonEmptyFile / "file1"));
+    }
+#endif
+}
+
 TEST_SUITE_END()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99982.336526.patch
Type: text/x-patch
Size: 1305 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210409/5f648636/attachment.bin>


More information about the libcxx-commits mailing list