[SystemZ][z/OS] Fix cityhash lit for EBCDIC
authorZibi Sarbinowski <zibi@ca.ibm.com>
Tue, 17 Jan 2023 22:34:43 +0000 (16:34 -0600)
committerZibi Sarbinowski <zibi@ca.ibm.com>
Tue, 17 Jan 2023 22:43:48 +0000 (16:43 -0600)
This will fix __murmur2_or_cityhash.pass.cpp in EBCDIC mode. The reason it fails is because of string literals are being used as input to CityHash algorithm so we need to adjust the EBCDIC expected results.

Reviewed By: #libc, philnik

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

libcxx/test/libcxx/utilities/utility/__murmur2_or_cityhash.pass.cpp

index d87ddc2..e2905a4 100644 (file)
 #  define CHOOSE_BY_ENDIANESS(little, big) (big)
 #endif
 
+std::string CityHash[] = {
+    {/* "abcdefgh" */ "\x61\x62\x63\x64\x65\x66\x67\x68"},
+    {/* "abcDefgh" */ "\x61\x62\x63\x44\x65\x66\x67\x68"},
+    {/* "CityHash" */ "\x43\x69\x74\x79\x48\x61\x73\x68"},
+    {/* "CitYHash" */ "\x43\x69\x74\x59\x48\x61\x73\x68"},
+};
+
 int main(int, char**) {
   const std::pair<std::string, uint64_t> TestCases[] = {
-      {"abcdefgh", CHOOSE_BY_ENDIANESS(0x4382a8d0fe8edb17ULL, 0xca84e809bef16fbcULL)},
-      {"abcDefgh", CHOOSE_BY_ENDIANESS(0xecefb080a6854061ULL, 0xd7feb824250272dcULL)},
-      {"CityHash", CHOOSE_BY_ENDIANESS(0x169ea3aebf908d6dULL, 0xea8cef3ca6f6e368ULL)},
-      {"CitYHash", CHOOSE_BY_ENDIANESS(0xe18298a2760f09faULL, 0xf33a7700bb7a94a8ULL)},
+      {CityHash[0], CHOOSE_BY_ENDIANESS(0x4382a8d0fe8edb17ULL, 0xca84e809bef16fbcULL)},
+      {CityHash[1], CHOOSE_BY_ENDIANESS(0xecefb080a6854061ULL, 0xd7feb824250272dcULL)},
+      {CityHash[2], CHOOSE_BY_ENDIANESS(0x169ea3aebf908d6dULL, 0xea8cef3ca6f6e368ULL)},
+      {CityHash[3], CHOOSE_BY_ENDIANESS(0xe18298a2760f09faULL, 0xf33a7700bb7a94a8ULL)},
   };
 
   std::__murmur2_or_cityhash<uint64_t> h64;