This was fixed last year by r15-2409-g017e3f89b081e4 (and backports), so
just add the testcase.
libstdc++-v3/ChangeLog:
PR libstdc++/118699
* testsuite/27_io/filesystem/operations/copy.cc: Check copying a
file to a directory.
---
Tested x86_64-linux and x86_64-mingw-w64.
Pushed to trunk.
.../27_io/filesystem/operations/copy.cc | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
index c302d9ad2a0..289bef6160b 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
@@ -228,6 +228,23 @@ test_pr99290()
remove_all(dir);
}
+void
+test_pr118699()
+{
+ auto dir = __gnu_test::nonexistent_path();
+ fs::create_directories(dir/"a");
+ fs::create_directories(dir/"c");
+ std::ofstream{dir/"a/b.txt"} << "b";
+ std::ofstream{dir/"a/bb.txt"} << "bb";
+
+ fs::copy(dir/"a/b.txt", dir/"c");
+ auto ec = make_error_code(std::errc::invalid_argument);
+ fs::copy(dir/"a/bb.txt", dir/"c", ec);
+ VERIFY( !ec );
+
+ remove_all(dir);
+}
+
int
main()
{
@@ -237,4 +254,5 @@ main()
test04();
test05();
test_pr99290();
+ test_pr118699();
}
--
2.49.0