On Jun 23, 2022, Jonathan Wakely <jwak...@redhat.com> wrote: > On Thu, 23 Jun 2022 at 07:26, Alexandre Oliva wrote: >> Would a patch to add: >> >> // { dg-xfail-if "::rename is not POSIX-compliant" { target *-*-rtems* } } >> >> to rename.cc tests be acceptable?
> Yes, I think that's definitely the way to go. The "target" above shouldn't have been there, and the :: appears to get tcl/expect/dejagnu confused. Here's the patch. Regstrapped on x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to install? libstdc++: xfail rename tests on rtems ::rename on RTEMS does not meet several POSIX requirements, despite compliance with C and C++ standards. ::std::filesystem::rename, in turn, has requirements borrowed from POSIX, so it would have to be a lot more than a simple wrapper around ::rename on RTEMS, and even then fall short. Until RTEMS reimplements ::rename for POSIX compliance, expect filesystem rename tests to fail on it. for libstdc++-v3/ChangeLog * testsuite/27_io/filesystem/operations/rename.cc: xfail on rtems. * testsuite/experimental/filesystem/operations/rename.cc: Likewise. --- .../27_io/filesystem/operations/rename.cc | 1 + .../experimental/filesystem/operations/rename.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc index b74e1133a7618..62543158e5241 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++17 } } // { dg-require-filesystem-ts "" } +// { dg-xfail-if "rename is not POSIX-compliant" { *-*-rtems* } } #include <filesystem> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc b/libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc index 37e743b770fdf..3c501757bff17 100644 --- a/libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc +++ b/libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc @@ -18,6 +18,7 @@ // { dg-options "-DUSE_FILESYSTEM_TS -lstdc++fs" } // { dg-do run { target c++11 } } // { dg-require-filesystem-ts "" } +// { dg-xfail-if "rename is not POSIX-compliant" { *-*-rtems* } } #include <experimental/filesystem> #include <testsuite_hooks.h> -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>