[gcc(refs/users/marxin/heads/opt-parse-enum-sanity)] libstdc++: Fix failing filesystem::path tests (PR 93244)

Martin Liska marxin@gcc.gnu.org
Tue Mar 17 16:10:18 GMT 2020


https://gcc.gnu.org/g:180eeeaeb200a07f7f24e1f203cd026880ff861c

commit 180eeeaeb200a07f7f24e1f203cd026880ff861c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Mar 6 11:27:34 2020 +0000

    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.

Diff:
---
 libstdc++-v3/ChangeLog                                        |  8 ++++++++
 .../testsuite/27_io/filesystem/path/generic/generic_string.cc | 11 ++++++-----
 libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc   | 11 ++++++-----
 .../testsuite/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  <jwakely@redhat.com>
+
+	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  <krebbel@linux.ibm.com>
 
 	* 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


More information about the Libstdc++-cvs mailing list