From 180eeeaeb200a07f7f24e1f203cd026880ff861c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 6 Mar 2020 11:27:34 +0000 Subject: [PATCH] libstdc++: Fix failing filesystem::path tests (PR 93244) The checks for PR 93244 don't actually pass on Windows (which is the target where the bug is present) because of a different bug, PR 94063. This adjusts the tests to not be affected by 94063 so that they verify that 93244 was fixed. PR libstdc++/93244 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust test to not fail due to PR 94063. * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise. * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise. --- libstdc++-v3/ChangeLog | 8 ++++++++ .../27_io/filesystem/path/generic/generic_string.cc | 11 ++++++----- .../testsuite/27_io/filesystem/path/generic/utf.cc | 11 ++++++----- .../27_io/filesystem/path/generic/wchar_t.cc | 11 ++++++----- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 644a18ad39f..b9ea649eed6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2020-03-06 Jonathan Wakely + + PR libstdc++/93244 + * testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust + test to not fail due to PR 94063. + * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise. + * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise. + 2020-03-06 Andreas Krebbel * src/c++11/system_error.cc: Omit the ENOTSUP case statement if it diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc index 677f5f5d1c4..5caf079ed9b 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc @@ -49,11 +49,12 @@ test01() void test02() { - // PR libstdc++/93244 - path p("C:"); - p += path::preferred_separator; - p += "foo/bar"; - VERIFY( p.generic_string() == "C:/foo/bar" ); + if constexpr (path::preferred_separator == L'\\') + { + // PR libstdc++/93244 + VERIFY( path("C:\\foo\\bar").generic_string() == "C:/foo/bar" ); + VERIFY( path("C://foo//bar").generic_string() == "C:/foo/bar" ); + } } int diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc index 9a2f579ebab..52afdb4497b 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc @@ -49,11 +49,12 @@ test01() void test02() { - // PR libstdc++/93244 - path p("C:"); - p += path::preferred_separator; - p += "foo/bar"; - VERIFY( p.generic_u32string() == U"C:/foo/bar" ); + if constexpr (path::preferred_separator == L'\\') + { + // PR libstdc++/93244 + VERIFY( path("C:\\foo\\bar").generic_u32string() == U"C:/foo/bar" ); + VERIFY( path("C://foo//bar").generic_u32string() == U"C:/foo/bar" ); + } } int diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc index 5dacedc7de4..7bb2f643043 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc @@ -49,11 +49,12 @@ test01() void test02() { - // PR libstdc++/93244 - path p("C:"); - p += path::preferred_separator; - p += "foo/bar"; - VERIFY( p.generic_wstring() == L"C:/foo/bar" ); + if constexpr (path::preferred_separator == L'\\') + { + // PR libstdc++/93244 + VERIFY( path("C:\\foo\\bar").generic_wstring() == L"C:/foo/bar" ); + VERIFY( path("C://foo//bar").generic_wstring() == L"C:/foo/bar" ); + } } int -- 2.30.2