| 1060 | } |
| 1061 | |
| 1062 | void test_equivalence() { |
| 1063 | |
| 1064 | // Ensure the seed affects hash results |
| 1065 | assert(sz_hash_serial("abc", 3, 100) != sz_hash_serial("abc", 3, 200)); |
| 1066 | assert(sz_hash_serial("abcdefgh", 8, 0) != sz_hash_serial("abcdefgh", 8, 7)); |
| 1067 | |
| 1068 | #if SZ_USE_WESTMERE |
| 1069 | test_hash_equivalence( // |
| 1070 | sz_hash_serial, sz_hash_state_init_serial, // |
| 1071 | sz_hash_state_update_serial, sz_hash_state_digest_serial, // |
| 1072 | sz_hash_westmere, sz_hash_state_init_westmere, // |
| 1073 | sz_hash_state_update_westmere, sz_hash_state_digest_westmere); |
| 1074 | test_random_generator_equivalence(sz_fill_random_serial, sz_fill_random_westmere); |
| 1075 | #endif |
| 1076 | #if SZ_USE_SKYLAKE |
| 1077 | test_hash_equivalence( // |
| 1078 | sz_hash_serial, sz_hash_state_init_serial, // |
| 1079 | sz_hash_state_update_serial, sz_hash_state_digest_serial, // |
| 1080 | sz_hash_skylake, sz_hash_state_init_skylake, // |
| 1081 | sz_hash_state_update_skylake, sz_hash_state_digest_skylake); |
| 1082 | test_random_generator_equivalence(sz_fill_random_serial, sz_fill_random_skylake); |
| 1083 | #endif |
| 1084 | #if SZ_USE_ICE |
| 1085 | test_hash_equivalence( // |
| 1086 | sz_hash_serial, sz_hash_state_init_serial, // |
| 1087 | sz_hash_state_update_serial, sz_hash_state_digest_serial, // |
| 1088 | sz_hash_ice, sz_hash_state_init_ice, // |
| 1089 | sz_hash_state_update_ice, sz_hash_state_digest_ice); |
| 1090 | test_random_generator_equivalence(sz_fill_random_serial, sz_fill_random_ice); |
| 1091 | #endif |
| 1092 | #if SZ_USE_NEON_AES |
| 1093 | test_hash_equivalence( // |
| 1094 | sz_hash_serial, sz_hash_state_init_serial, // |
| 1095 | sz_hash_state_update_serial, sz_hash_state_digest_serial, // |
| 1096 | sz_hash_neon, sz_hash_state_init_neon, // |
| 1097 | sz_hash_state_update_neon, sz_hash_state_digest_neon); |
| 1098 | test_random_generator_equivalence(sz_fill_random_serial, sz_fill_random_neon); |
| 1099 | #endif |
| 1100 | #if SZ_USE_SVE2_AES |
| 1101 | test_hash_equivalence( // |
| 1102 | sz_hash_serial, sz_hash_state_init_serial, // |
| 1103 | sz_hash_state_update_serial, sz_hash_state_digest_serial, // |
| 1104 | sz_hash_sve2, sz_hash_state_init_sve2, // |
| 1105 | sz_hash_state_update_sve2, sz_hash_state_digest_sve2); |
| 1106 | test_random_generator_equivalence(sz_fill_random_serial, sz_fill_random_sve2); |
| 1107 | #endif |
| 1108 | |
| 1109 | // Test SHA256 implementations |
| 1110 | #if SZ_USE_ICE |
| 1111 | test_sha256_equivalence( // |
| 1112 | sz_sha256_state_init_serial, sz_sha256_state_update_serial, sz_sha256_state_digest_serial, // |
| 1113 | sz_sha256_state_init_ice, sz_sha256_state_update_ice, sz_sha256_state_digest_ice // |
| 1114 | ); |
| 1115 | #endif |
| 1116 | #if SZ_USE_GOLDMONT |
| 1117 | test_sha256_equivalence( // |
| 1118 | sz_sha256_state_init_serial, sz_sha256_state_update_serial, sz_sha256_state_digest_serial, // |
| 1119 | sz_sha256_state_init_goldmont, sz_sha256_state_update_goldmont, sz_sha256_state_digest_goldmont // |
no test coverage detected
searching dependent graphs…