[libcxx-commits] [libcxx] 4f5ebfd - [SystemZ][z/OS][libcxx]: fix libcxx test cases failed on ebcdic mode on z/OS

Muiez Ahmed via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jun 28 11:05:12 PDT 2021


Author: Nancy Wang
Date: 2021-06-28T14:04:52-04:00
New Revision: 4f5ebfdcd6c9d459e262d1815f49a45bad3cbcfc

URL: https://github.com/llvm/llvm-project/commit/4f5ebfdcd6c9d459e262d1815f49a45bad3cbcfc
DIFF: https://github.com/llvm/llvm-project/commit/4f5ebfdcd6c9d459e262d1815f49a45bad3cbcfc.diff

LOG: [SystemZ][z/OS][libcxx]: fix libcxx test cases failed on ebcdic mode on z/OS

This patch is to fix 2 libcxx test cases, test cases assumed 'a' > 'A' which is not case in z/OS platform on ebcdic mode, modified test cases to compare between upper letters or lower letters, or digits so ordering will be true for all platform.

Differential Revision: https://reviews.llvm.org/D104748

Added: 
    

Modified: 
    libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
    libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
index fa14e666e9e90..81a8574eac8bd 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
@@ -19,18 +19,18 @@
 
 int main(int, char**)
 {
-    assert( std::char_traits<char>::lt('\0', 'A'));
-    assert(!std::char_traits<char>::lt('A', '\0'));
+  assert(std::char_traits<char>::lt('\0', 'A') == ('\0' < 'A'));
+  assert(std::char_traits<char>::lt('A', '\0') == ('A' < '\0'));
 
-    assert(!std::char_traits<char>::lt('a', 'a'));
-    assert( std::char_traits<char>::lt('A', 'a'));
-    assert(!std::char_traits<char>::lt('a', 'A'));
+  assert(std::char_traits<char>::lt('a', 'a') == ('a' < 'a'));
+  assert(std::char_traits<char>::lt('A', 'a') == ('A' < 'a'));
+  assert(std::char_traits<char>::lt('a', 'A') == ('a' < 'A'));
 
-    assert( std::char_traits<char>::lt('a', 'z'));
-    assert( std::char_traits<char>::lt('A', 'Z'));
+  assert(std::char_traits<char>::lt('a', 'z') == ('a' < 'z'));
+  assert(std::char_traits<char>::lt('A', 'Z') == ('A' < 'Z'));
 
-    assert( std::char_traits<char>::lt(' ', 'A'));
-    assert( std::char_traits<char>::lt('A', '~'));
+  assert(std::char_traits<char>::lt(' ', 'A') == (' ' < 'A'));
+  assert(std::char_traits<char>::lt('A', '~') == ('A' < '~'));
 
   return 0;
 }

diff  --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp
index 15a16b0cd92da..5664692addb41 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp
@@ -19,8 +19,18 @@
 
 int main(int, char**)
 {
-    assert(!std::char_traits<wchar_t>::lt(L'a', L'a'));
-    assert( std::char_traits<wchar_t>::lt(L'A', L'a'));
+  assert(std::char_traits<wchar_t>::lt(L'\0', L'A') == (L'\0' < L'A'));
+  assert(std::char_traits<wchar_t>::lt(L'A', L'\0') == (L'A' < L'\0'));
+
+  assert(std::char_traits<wchar_t>::lt(L'a', L'a') == (L'a' < L'a'));
+  assert(std::char_traits<wchar_t>::lt(L'A', L'a') == (L'A' < L'a'));
+  assert(std::char_traits<wchar_t>::lt(L'a', L'A') == (L'a' < L'A'));
+
+  assert(std::char_traits<wchar_t>::lt(L'a', L'z') == (L'a' < L'z'));
+  assert(std::char_traits<wchar_t>::lt(L'A', L'Z') == (L'A' < L'Z'));
+
+  assert(std::char_traits<wchar_t>::lt(L' ', L'A') == (L' ' < L'A'));
+  assert(std::char_traits<wchar_t>::lt(L'A', L'~') == (L'A' < L'~'));
 
   return 0;
 }


        


More information about the libcxx-commits mailing list