From: Jonathan Wakely Date: Thu, 30 Jan 2025 17:02:47 +0000 (+0000) Subject: libstdc++: Add testcase for std::filesystem::copy [PR118699] X-Git-Tag: releases/gcc-14.3.0~308 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5eb93522a661481caa53d4d1a716888b5b11f4da;p=thirdparty%2Fgcc.git libstdc++: Add testcase for std::filesystem::copy [PR118699] 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. (cherry picked from commit 466da4baba46608882d16d121fa46d33f841bc7b) --- diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc index 893f32297ae..7983e1e08de 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(); }