wyhash_test.cc
Go to the documentation of this file.
1 // Copyright 2020 The Abseil Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
16 
17 #include "absl/strings/escaping.h"
18 #include "gmock/gmock.h"
19 #include "gtest/gtest.h"
20 
21 namespace {
22 
23 static const uint64_t kCurrentSeed = 0;
24 static const uint64_t kSalt[5] = {0xa0761d6478bd642f, 0xe7037ed1a0b428dbl,
25  0x8ebc6af09c88c6e3, 0x589965cc75374cc3l,
26  0x1d8e4e27c47d124f};
27 
28 // Note: We don't account for endianness, so the values here are only correct if
29 // you're also running on a little endian platform.
30 
31 TEST(WyhashTest, EmptyString) {
32  const std::string s = "";
33  EXPECT_EQ(
34  absl::hash_internal::Wyhash(s.c_str(), s.length(), kCurrentSeed, kSalt),
35  4808886099364463827);
36 }
37 
38 TEST(WyhashTest, Spaces) {
39  const std::string s = " ";
40  EXPECT_EQ(
41  absl::hash_internal::Wyhash(s.c_str(), s.length(), kCurrentSeed, kSalt),
42  1686201463024549249);
43 }
44 
45 TEST(WyhashTest, RepeatingString) {
46  const std::string s = "aaaa";
47  EXPECT_EQ(
48  absl::hash_internal::Wyhash(s.c_str(), s.length(), kCurrentSeed, kSalt),
49  6646112255271966632);
50 }
51 
52 TEST(WyhashTest, HexString) {
53  const std::string small = "\x01\x02\x03";
54  const std::string med = "\x01\x02\x03\x04";
55 
56  EXPECT_EQ(absl::hash_internal::Wyhash(small.c_str(), small.length(),
57  kCurrentSeed, kSalt),
58  11989428023081740911ULL);
59  EXPECT_EQ(absl::hash_internal::Wyhash(med.c_str(), med.length(), kCurrentSeed,
60  kSalt),
61  9765997711188871556ULL);
62 }
63 
64 TEST(WyhashTest, Words) {
65  const std::string s = "third_party|wyhash|64";
66  EXPECT_EQ(
67  absl::hash_internal::Wyhash(s.c_str(), s.length(), kCurrentSeed, kSalt),
68  3702018632387611330);
69 }
70 
71 TEST(WyhashTest, LongString) {
72  const std::string s =
73  "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz"
74  "0123456789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOp"
75  "QrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEf"
76  "GhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz012345"
77  "6789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789";
78 
79  EXPECT_EQ(
80  absl::hash_internal::Wyhash(s.c_str(), s.length(), kCurrentSeed, kSalt),
81  9245411362605796064ULL);
82 }
83 
84 TEST(WyhashTest, BigReference) {
85  struct ExpectedResult {
86  absl::string_view base64_data;
87  uint64_t seed;
88  uint64_t hash;
89  } expected_results[] = {
90  {"", uint64_t{0xec42b7ab404b8acb}, uint64_t{0xe5a40d39ab796423}},
91  {"Zw==", uint64_t{0xeeee074043a3ee0f}, uint64_t{0xa6564b468248c683}},
92  {"xmk=", uint64_t{0x857902089c393de}, uint64_t{0xef192f401b116e1c}},
93  {"c1H/", uint64_t{0x993df040024ca3af}, uint64_t{0xbe8dc0c54617639d}},
94  {"SuwpzQ==", uint64_t{0xc4e4c2acea740e96}, uint64_t{0x93d7f665b5521c8e}},
95  {"uqvy++M=", uint64_t{0x6a214b3db872d0cf}, uint64_t{0x646d70bb42445f28}},
96  {"RnzCVPgb", uint64_t{0x44343db6a89dba4d}, uint64_t{0x96a7b1e3cc9bd426}},
97  {"6OeNdlouYw==", uint64_t{0x77b5d6d1ae1dd483},
98  uint64_t{0x76020289ab0790c4}},
99  {"M5/JmmYyDbc=", uint64_t{0x89ab8ecb44d221f1},
100  uint64_t{0x39f842e4133b9b44}},
101  {"MVijWiVdBRdY", uint64_t{0x60244b17577ca81b},
102  uint64_t{0x2b8d7047be4bcaab}},
103  {"6V7Uq7LNxpu0VA==", uint64_t{0x59a08dcee0717067},
104  uint64_t{0x99628abef6716a97}},
105  {"EQ6CdEEhPdyHcOk=", uint64_t{0xf5f20db3ade57396},
106  uint64_t{0x4432e02ba42b2740}},
107  {"PqFB4fxnPgF+l+rc", uint64_t{0xbf8dee0751ad3efb},
108  uint64_t{0x74d810efcad7918a}},
109  {"a5aPOFwq7LA7+zKvPA==", uint64_t{0x6b7a06b268d63e30},
110  uint64_t{0x88c84e986002507f}},
111  {"VOwY21wCGv5D+/qqOvs=", uint64_t{0xb8c37f0ae0f54c82},
112  uint64_t{0x4f99acf193cf39b9}},
113  {"KdHmBTx8lHXYvmGJ+Vy7", uint64_t{0x9fcbed0c38e50eef},
114  uint64_t{0xd90e7a3655891e37}},
115  {"qJkPlbHr8bMF7/cA6aE65Q==", uint64_t{0x2af4bade1d8e3a1d},
116  uint64_t{0x3bb378b1d4df8fcf}},
117  {"ygvL0EhHZL0fIx6oHHtkxRQ=", uint64_t{0x714e3aa912da2f2c},
118  uint64_t{0xf78e94045c052d47}},
119  {"c1rFXkt5YztwZCQRngncqtSs", uint64_t{0xf5ee75e3cbb82c1c},
120  uint64_t{0x26da0b2130da6b40}},
121  {"8hsQrzszzeNQSEcVXLtvIhm6mw==", uint64_t{0x620e7007321b93b9},
122  uint64_t{0x30b4d426af8c6986}},
123  {"ffUL4RocfyP4KfikGxO1yk7omDI=", uint64_t{0xc08528cac2e551fc},
124  uint64_t{0x5413b4aaf3baaeae}},
125  {"OOB5TT00vF9Od/rLbAWshiErqhpV", uint64_t{0x6a1debf9cc3ad39},
126  uint64_t{0x756ab265370a1597}},
127  {"or5wtXM7BFzTNpSzr+Lw5J5PMhVJ/Q==", uint64_t{0x7e0a3c88111fc226},
128  uint64_t{0xdaf5f4b7d09814fb}},
129  {"gk6pCHDUsoopVEiaCrzVDhioRKxb844=", uint64_t{0x1301fef15df39edb},
130  uint64_t{0x8f874ae37742b75e}},
131  {"TNctmwlC5QbEM6/No4R/La3UdkfeMhzs", uint64_t{0x64e181f3d5817ab},
132  uint64_t{0x8fecd03956121ce8}},
133  {"SsQw9iAjhWz7sgcE9OwLuSC6hsM+BfHs2Q==", uint64_t{0xafafc44961078ecb},
134  uint64_t{0x229c292ea7a08285}},
135  {"ZzO3mVCj4xTT2TT3XqDyEKj2BZQBvrS8RHg=", uint64_t{0x4f7bb45549250094},
136  uint64_t{0xbb4bf0692d14bae}},
137  {"+klp5iPQGtppan5MflEls0iEUzqU+zGZkDJX", uint64_t{0xa30061abaa2818c},
138  uint64_t{0x207b24ca3bdac1db}},
139  {"RO6bvOnlJc8I9eniXlNgqtKy0IX6VNg16NRmgg==", uint64_t{0xd902ee3e44a5705f},
140  uint64_t{0x64f6cd6745d3825b}},
141  {"ZJjZqId1ZXBaij9igClE3nyliU5XWdNRrayGlYA=", uint64_t{0x316d36da516f583},
142  uint64_t{0xa2b2e1656b58df1e}},
143  {"7BfkhfGMDGbxfMB8uyL85GbaYQtjr2K8g7RpLzr/", uint64_t{0x402d83f9f834f616},
144  uint64_t{0xd01d30d9ee7a148}},
145  {"rycWk6wHH7htETQtje9PidS2YzXBx+Qkg2fY7ZYS7A==",
146  uint64_t{0x9c604164c016b72c}, uint64_t{0x1cb4cd00ab804e3b}},
147  {"RTkC2OUK+J13CdGllsH0H5WqgspsSa6QzRZouqx6pvI=",
148  uint64_t{0x3f4507e01f9e73ba}, uint64_t{0x4697f2637fd90999}},
149  {"tKjKmbLCNyrLCM9hycOAXm4DKNpM12oZ7dLTmUx5iwAi",
150  uint64_t{0xc3fe0d5be8d2c7c7}, uint64_t{0x8383a756b5688c07}},
151  {"VprUGNH+5NnNRaORxgH/ySrZFQFDL+4VAodhfBNinmn8cg==",
152  uint64_t{0x531858a40bfa7ea1}, uint64_t{0x695c29cb3696a975}},
153  {"gc1xZaY+q0nPcUvOOnWnT3bqfmT/geth/f7Dm2e/DemMfk4=",
154  uint64_t{0x86689478a7a7e8fa}, uint64_t{0xda2e5a5a5e971521}},
155  {"Mr35fIxqx1ukPAL0su1yFuzzAU3wABCLZ8+ZUFsXn47UmAph",
156  uint64_t{0x4ec948b8e7f27288}, uint64_t{0x7935d4befa056b2b}},
157  {"A9G8pw2+m7+rDtWYAdbl8tb2fT7FFo4hLi2vAsa5Y8mKH3CX3g==",
158  uint64_t{0xce46c7213c10032}, uint64_t{0x38dd541ca95420fe}},
159  {"DFaJGishGwEHDdj9ixbCoaTjz9KS0phLNWHVVdFsM93CvPft3hM=",
160  uint64_t{0xf63e96ee6f32a8b6}, uint64_t{0xcc06c7a4963f967f}},
161  {"7+Ugx+Kr3aRNgYgcUxru62YkTDt5Hqis+2po81hGBkcrJg4N0uuy",
162  uint64_t{0x1cfe85e65fc5225}, uint64_t{0xbf0f6f66e232fb20}},
163  {"H2w6O8BUKqu6Tvj2xxaecxEI2wRgIgqnTTG1WwOgDSINR13Nm4d4Vg==",
164  uint64_t{0x45c474f1cee1d2e8}, uint64_t{0xf7efb32d373fe71a}},
165  {"1XBMnIbqD5jy65xTDaf6WtiwtdtQwv1dCVoqpeKj+7cTR1SaMWMyI04=",
166  uint64_t{0x6e024e14015f329c}, uint64_t{0xe2e64634b1c12660}},
167  {"znZbdXG2TSFrKHEuJc83gPncYpzXGbAebUpP0XxzH0rpe8BaMQ17nDbt",
168  uint64_t{0x760c40502103ae1c}, uint64_t{0x285b8fd1638e306d}},
169  {"ylu8Atu13j1StlcC1MRMJJXIl7USgDDS22HgVv0WQ8hx/8pNtaiKB17hCQ==",
170  uint64_t{0x17fd05c3c560c320}, uint64_t{0x658e8a4e3b714d6c}},
171  {"M6ZVVzsd7vAvbiACSYHioH/440dp4xG2mLlBnxgiqEvI/aIEGpD0Sf4VS0g=",
172  uint64_t{0x8b34200a6f8e90d9}, uint64_t{0xf391fb968e0eb398}},
173  {"li3oFSXLXI+ubUVGJ4blP6mNinGKLHWkvGruun85AhVn6iuMtocbZPVhqxzn",
174  uint64_t{0x6be89e50818bdf69}, uint64_t{0x744a9ea0cc144bf2}},
175  {"kFuQHuUCqBF3Tc3hO4dgdIp223ShaCoog48d5Do5zMqUXOh5XpGK1t5XtxnfGA==",
176  uint64_t{0xfb389773315b47d8}, uint64_t{0x12636f2be11012f1}},
177  {"jWmOad0v0QhXVJd1OdGuBZtDYYS8wBVHlvOeTQx9ZZnm8wLEItPMeihj72E0nWY=",
178  uint64_t{0x4f2512a23f61efee}, uint64_t{0x29c57de825948f80}},
179  {"z+DHU52HaOQdW4JrZwDQAebEA6rm13Zg/9lPYA3txt3NjTBqFZlOMvTRnVzRbl23",
180  uint64_t{0x59ccd92fc16c6fda}, uint64_t{0x58c6f99ab0d1c021}},
181  {"MmBiGDfYeTayyJa/tVycg+rN7f9mPDFaDc+23j0TlW9094er0ADigsl4QX7V3gG/qw==",
182  uint64_t{0x25c5a7f5bd330919}, uint64_t{0x13e7b5a7b82fe3bb}},
183  {"774RK+9rOL4iFvs1q2qpo/JVc/I39buvNjqEFDtDvyoB0FXxPI2vXqOrk08VPfIHkmU=",
184  uint64_t{0x51df4174d34c97d7}, uint64_t{0x10fbc87901e02b63}},
185  {"+slatXiQ7/2lK0BkVUI1qzNxOOLP3I1iK6OfHaoxgqT63FpzbElwEXSwdsryq3UlHK0I",
186  uint64_t{0x80ce6d76f89cb57}, uint64_t{0xa24c9184901b748b}},
187  {"64mVTbQ47dHjHlOHGS/hjJwr/"
188  "K2frCNpn87exOqMzNUVYiPKmhCbfS7vBUce5tO6Ec9osQ==",
189  uint64_t{0x20961c911965f684}, uint64_t{0xcac4fd4c5080e581}},
190  {"fIsaG1r530SFrBqaDj1kqE0AJnvvK8MNEZbII2Yw1OK77v0V59xabIh0B5axaz/"
191  "+a2V5WpA=",
192  uint64_t{0x4e5b926ec83868e7}, uint64_t{0xc38bdb7483ba68e1}},
193  {"PGih0zDEOWCYGxuHGDFu9Ivbff/"
194  "iE7BNUq65tycTR2R76TerrXALRosnzaNYO5fjFhTi+CiS",
195  uint64_t{0x3927b30b922eecef}, uint64_t{0xdb2a8069b2ceaffa}},
196  {"RnpA/"
197  "zJnEnnLjmICORByRVb9bCOgxF44p3VMiW10G7PvW7IhwsWajlP9kIwNA9FjAD2GoQHk2Q="
198  "=",
199  uint64_t{0xbd0291284a49b61c}, uint64_t{0xdf9fe91d0d1c7887}},
200  {"qFklMceaTHqJpy2qavJE+EVBiNFOi6OxjOA3LeIcBop1K7w8xQi3TrDk+"
201  "BrWPRIbfprszSaPfrI=",
202  uint64_t{0x73a77c575bcc956}, uint64_t{0xe83f49e96e2e6a08}},
203  {"cLbfUtLl3EcQmITWoTskUR8da/VafRDYF/ylPYwk7/"
204  "zazk6ssyrzxMN3mmSyvrXR2yDGNZ3WDrTT",
205  uint64_t{0x766a0e2ade6d09a6}, uint64_t{0xc69e61b62ca2b62}},
206  {"s/"
207  "Jf1+"
208  "FbsbCpXWPTUSeWyMH6e4CvTFvPE5Fs6Z8hvFITGyr0dtukHzkI84oviVLxhM1xMxrMAy1db"
209  "w==",
210  uint64_t{0x2599f4f905115869}, uint64_t{0xb4a4f3f85f8298fe}},
211  {"FvyQ00+j7nmYZVQ8hI1Edxd0AWplhTfWuFGiu34AK5X8u2hLX1bE97sZM0CmeLe+"
212  "7LgoUT1fJ/axybE=",
213  uint64_t{0xd8256e5444d21e53}, uint64_t{0x167a1b39e1e95f41}},
214  {"L8ncxMaYLBH3g9buPu8hfpWZNlOF7nvWLNv9IozH07uQsIBWSKxoPy8+"
215  "LW4tTuzC6CIWbRGRRD1sQV/4",
216  uint64_t{0xf664a91333fb8dfd}, uint64_t{0xf8a2a5649855ee41}},
217  {"CDK0meI07yrgV2kQlZZ+"
218  "wuVqhc2NmzqeLH7bmcA6kchsRWFPeVF5Wqjjaj556ABeUoUr3yBmfU3kWOakkg==",
219  uint64_t{0x9625b859be372cd1}, uint64_t{0x27992565b595c498}},
220  {"d23/vc5ONh/"
221  "HkMiq+gYk4gaCNYyuFKwUkvn46t+dfVcKfBTYykr4kdvAPNXGYLjM4u1YkAEFpJP+"
222  "nX7eOvs=",
223  uint64_t{0x7b99940782e29898}, uint64_t{0x3e08cca5b71f9346}},
224  {"NUR3SRxBkxTSbtQORJpu/GdR6b/h6sSGfsMj/KFd99ahbh+9r7LSgSGmkGVB/"
225  "mGoT0pnMTQst7Lv2q6QN6Vm",
226  uint64_t{0x4fe12fa5383b51a8}, uint64_t{0xad406b10c770a6d2}},
227  {"2BOFlcI3Z0RYDtS9T9Ie9yJoXlOdigpPeeT+CRujb/"
228  "O39Ih5LPC9hP6RQk1kYESGyaLZZi3jtabHs7DiVx/VDg==",
229  uint64_t{0xe2ccb09ac0f5b4b6}, uint64_t{0xd1713ce6e552bcf2}},
230  {"FF2HQE1FxEvWBpg6Z9zAMH+Zlqx8S1JD/"
231  "wIlViL6ZDZY63alMDrxB0GJQahmAtjlm26RGLnjW7jmgQ4Ie3I+014=",
232  uint64_t{0x7d0a37adbd7b753b}, uint64_t{0x753b287194c73ad3}},
233  {"tHmO7mqVL/PX11nZrz50Hc+M17Poj5lpnqHkEN+4bpMx/"
234  "YGbkrGOaYjoQjgmt1X2QyypK7xClFrjeWrCMdlVYtbW",
235  uint64_t{0xd3ae96ef9f7185f2}, uint64_t{0x5ae41a95f600af1c}},
236  {"/WiHi9IQcxRImsudkA/KOTqGe8/"
237  "gXkhKIHkjddv5S9hi02M049dIK3EUyAEjkjpdGLUs+BN0QzPtZqjIYPOgwsYE9g==",
238  uint64_t{0x4fb88ea63f79a0d8}, uint64_t{0x4a61163b86a8bb4c}},
239  {"qds+1ExSnU11L4fTSDz/QE90g4Jh6ioqSh3KDOTOAo2pQGL1k/"
240  "9CCC7J23YF27dUTzrWsCQA2m4epXoCc3yPHb3xElA=",
241  uint64_t{0xed564e259bb5ebe9}, uint64_t{0x42eeaa79e760c7e4}},
242  {"8FVYHx40lSQPTHheh08Oq0/"
243  "pGm2OlG8BEf8ezvAxHuGGdgCkqpXIueJBF2mQJhTfDy5NncO8ntS7vaKs7sCNdDaNGOEi",
244  uint64_t{0x3e3256b60c428000}, uint64_t{0x698df622ef465b0a}},
245  {"4ZoEIrJtstiCkeew3oRzmyJHVt/pAs2pj0HgHFrBPztbQ10NsQ/"
246  "lM6DM439QVxpznnBSiHMgMQJhER+70l72LqFTO1JiIQ==",
247  uint64_t{0xfb05bad59ec8705}, uint64_t{0x157583111e1a6026}},
248  {"hQPtaYI+wJyxXgwD5n8jGIKFKaFA/"
249  "P83KqCKZfPthnjwdOFysqEOYwAaZuaaiv4cDyi9TyS8hk5cEbNP/jrI7q6pYGBLbsM=",
250  uint64_t{0xafdc251dbf97b5f8}, uint64_t{0xaa1388f078e793e0}},
251  {"S4gpMSKzMD7CWPsSfLeYyhSpfWOntyuVZdX1xSBjiGvsspwOZcxNKCRIOqAA0moUfOh3I5+"
252  "juQV4rsqYElMD/gWfDGpsWZKQ",
253  uint64_t{0x10ec9c92ddb5dcbc}, uint64_t{0xf10d68d0f3309360}},
254  {"oswxop+"
255  "bthuDLT4j0PcoSKby4LhF47ZKg8K17xxHf74UsGCzTBbOz0MM8hQEGlyqDT1iUiAYnaPaUp"
256  "L2mRK0rcIUYA4qLt5uOw==",
257  uint64_t{0x9a767d5822c7dac4}, uint64_t{0x2af056184457a3de}},
258  {"0II/"
259  "697p+"
260  "BtLSjxj5989OXI004TogEb94VUnDzOVSgMXie72cuYRvTFNIBgtXlKfkiUjeqVpd4a+"
261  "n5bxNOD1TGrjQtzKU5r7obo=",
262  uint64_t{0xee46254080d6e2db}, uint64_t{0x6d0058e1590b2489}},
263  {"E84YZW2qipAlMPmctrg7TKlwLZ68l4L+c0xRDUfyyFrA4MAti0q9sHq3TDFviH0Y+"
264  "Kq3tEE5srWFA8LM9oomtmvm5PYxoaarWPLc",
265  uint64_t{0xbbb669588d8bf398}, uint64_t{0x638f287f68817f12}},
266  {"x3pa4HIElyZG0Nj7Vdy9IdJIR4izLmypXw5PCmZB5y68QQ4uRaVVi3UthsoJROvbjDJkP2D"
267  "Q6L/eN8pFeLFzNPKBYzcmuMOb5Ull7w==",
268  uint64_t{0xdc2afaa529beef44}, uint64_t{0xc46b71fecefd5467}},
269  {"jVDKGYIuWOP/"
270  "QKLdd2wi8B2VJA8Wh0c8PwrXJVM8FOGM3voPDVPyDJOU6QsBDPseoR8uuKd19OZ/"
271  "zAvSCB+zlf6upAsBlheUKgCfKww=",
272  uint64_t{0xf1f67391d45013a8}, uint64_t{0x2c8e94679d964e0a}},
273  {"mkquunhmYe1aR2wmUz4vcvLEcKBoe6H+kjUok9VUn2+eTSkWs4oDDtJvNCWtY5efJwg/"
274  "j4PgjRYWtqnrCkhaqJaEvkkOwVfgMIwF3e+d",
275  uint64_t{0x16fce2b8c65a3429}, uint64_t{0x8612b797ce22503a}},
276  {"fRelvKYonTQ+s+rnnvQw+JzGfFoPixtna0vzcSjiDqX5s2Kg2//"
277  "UGrK+AVCyMUhO98WoB1DDbrsOYSw2QzrcPe0+3ck9sePvb+Q/IRaHbw==",
278  uint64_t{0xf4b096699f49fe67}, uint64_t{0x59f929babfba7170}},
279  {"DUwXFJzagljo44QeJ7/"
280  "6ZKw4QXV18lhkYT2jglMr8WB3CHUU4vdsytvw6AKv42ZcG6fRkZkq9fpnmXy6xG0aO3WPT1"
281  "eHuyFirAlkW+zKtwg=",
282  uint64_t{0xca584c4bc8198682}, uint64_t{0x9527556923fb49a0}},
283  {"cYmZCrOOBBongNTr7e4nYn52uQUy2mfe48s50JXx2AZ6cRAt/"
284  "xRHJ5QbEoEJOeOHsJyM4nbzwFm++SlT6gFZZHJpkXJ92JkR86uS/eV1hJUR",
285  uint64_t{0xed269fc3818b6aad}, uint64_t{0x1039ab644f5e150b}},
286  {"EXeHBDfhwzAKFhsMcH9+2RHwV+mJaN01+9oacF6vgm8mCXRd6jeN9U2oAb0of5c5cO4i+"
287  "Vb/LlHZSMI490SnHU0bejhSCC2gsC5d2K30ER3iNA==",
288  uint64_t{0x33f253cbb8fe66a8}, uint64_t{0x7816c83f3aa05e6d}},
289  {"FzkzRYoNjkxFhZDso94IHRZaJUP61nFYrh5MwDwv9FNoJ5jyNCY/"
290  "eazPZk+tbmzDyJIGw2h3GxaWZ9bSlsol/vK98SbkMKCQ/wbfrXRLcDzdd/8=",
291  uint64_t{0xd0b76b2c1523d99c}, uint64_t{0xf51d2f564518c619}},
292  {"Re4aXISCMlYY/XsX7zkIFR04ta03u4zkL9dVbLXMa/q6hlY/CImVIIYRN3VKP4pnd0AUr/"
293  "ugkyt36JcstAInb4h9rpAGQ7GMVOgBniiMBZ/MGU7H",
294  uint64_t{0xfd28f0811a2a237f}, uint64_t{0x67d494cff03ac004}},
295  {"ueLyMcqJXX+MhO4UApylCN9WlTQ+"
296  "ltJmItgG7vFUtqs2qNwBMjmAvr5u0sAKd8jpzV0dDPTwchbIeAW5zbtkA2NABJV6hFM48ib"
297  "4/J3A5mseA3cS8w==",
298  uint64_t{0x6261fb136482e84}, uint64_t{0x2802d636ced1cfbb}},
299  {"6Si7Yi11L+jZMkwaN+GUuzXMrlvEqviEkGOilNq0h8TdQyYKuFXzkYc/"
300  "q74gP3pVCyiwz9KpVGMM9vfnq36riMHRknkmhQutxLZs5fbmOgEO69HglCU=",
301  uint64_t{0x458efc750bca7c3a}, uint64_t{0xf64e20bad771cb12}},
302  {"Q6AbOofGuTJOegPh9Clm/"
303  "9crtUMQqylKrTc1fhfJo1tqvpXxhU4k08kntL1RG7woRnFrVh2UoMrL1kjin+s9CanT+"
304  "y4hHwLqRranl9FjvxfVKm3yvg68",
305  uint64_t{0xa7e69ff84e5e7c27}, uint64_t{0xb9a6cf84a83e15e}},
306  {"ieQEbIPvqY2YfIjHnqfJiO1/MIVRk0RoaG/WWi3kFrfIGiNLCczYoklgaecHMm/"
307  "1sZ96AjO+a5stQfZbJQwS7Sc1ODABEdJKcTsxeW2hbh9A6CFzpowP1A==",
308  uint64_t{0x3c59bfd0c29efe9e}, uint64_t{0x8da6630319609301}},
309  {"zQUv8hFB3zh2GGl3KTvCmnfzE+"
310  "SUgQPVaSVIELFX5H9cE3FuVFGmymkPQZJLAyzC90Cmi8GqYCvPqTuAAB//"
311  "XTJxy4bCcVArgZG9zJXpjowpNBfr3ngWrSE=",
312  uint64_t{0x10befacc6afd298d}, uint64_t{0x40946a86e2a996f3}},
313  {"US4hcC1+op5JKGC7eIs8CUgInjKWKlvKQkapulxW262E/"
314  "B2ye79QxOexf188u2mFwwe3WTISJHRZzS61IwljqAWAWoBAqkUnW8SHmIDwHUP31J0p5sGd"
315  "P47L",
316  uint64_t{0x41d5320b0a38efa7}, uint64_t{0xcab7f5997953fa76}},
317  {"9bHUWFna2LNaGF6fQLlkx1Hkt24nrkLE2CmFdWgTQV3FFbUe747SSqYw6ebpTa07MWSpWRP"
318  "sHesVo2B9tqHbe7eQmqYebPDFnNqrhSdZwFm9arLQVs+7a3Ic6A==",
319  uint64_t{0x58db1c7450fe17f3}, uint64_t{0x39129ca0e04fc465}},
320  {"Kb3DpHRUPhtyqgs3RuXjzA08jGb59hjKTOeFt1qhoINfYyfTt2buKhD6YVffRCPsgK9SeqZ"
321  "qRPJSyaqsa0ovyq1WnWW8jI/NhvAkZTVHUrX2pC+cD3OPYT05Dag=",
322  uint64_t{0x6098c055a335b7a6}, uint64_t{0x5238221fd685e1b8}},
323  {"gzxyMJIPlU+bJBwhFUCHSofZ/"
324  "319LxqMoqnt3+L6h2U2+ZXJCSsYpE80xmR0Ta77Jq54o92SMH87HV8dGOaCTuAYF+"
325  "lDL42SY1P316Cl0sZTS2ow3ZqwGbcPNs/1",
326  uint64_t{0x1bbacec67845a801}, uint64_t{0x175130c407dbcaab}},
327  {"uR7V0TW+FGVMpsifnaBAQ3IGlr1wx5sKd7TChuqRe6OvUXTlD4hKWy8S+"
328  "8yyOw8lQabism19vOQxfmocEOW/"
329  "vzY0pEa87qHrAZy4s9fH2Bltu8vaOIe+agYohhYORQ==",
330  uint64_t{0xc419cfc7442190}, uint64_t{0x2f20e7536c0b0df}},
331  {"1UR5eoo2aCwhacjZHaCh9bkOsITp6QunUxHQ2SfeHv0imHetzt/"
332  "Z70mhyWZBalv6eAx+YfWKCUib2SHDtz/"
333  "A2dc3hqUWX5VfAV7FQsghPUAtu6IiRatq4YSLpDvKZBQ=",
334  uint64_t{0xc95e510d94ba270c}, uint64_t{0x2742cb488a04ad56}},
335  {"opubR7H63BH7OtY+Avd7QyQ25UZ8kLBdFDsBTwZlY6gA/"
336  "u+x+"
337  "czC9AaZMgmQrUy15DH7YMGsvdXnviTtI4eVI4aF1H9Rl3NXMKZgwFOsdTfdcZeeHVRzBBKX"
338  "8jUfh1il",
339  uint64_t{0xff1ae05c98089c3f}, uint64_t{0xd6afb593879ff93b}},
340  {"DC0kXcSXtfQ9FbSRwirIn5tgPri0sbzHSa78aDZVDUKCMaBGyFU6BmrulywYX8yzvwprdLs"
341  "oOwTWN2wMjHlPDqrvVHNEjnmufRDblW+nSS+xtKNs3N5xsxXdv6JXDrAB/Q==",
342  uint64_t{0x90c02b8dceced493}, uint64_t{0xf50ad64caac0ca7f}},
343  {"BXRBk+3wEP3Lpm1y75wjoz+PgB0AMzLe8tQ1AYU2/"
344  "oqrQB2YMC6W+9QDbcOfkGbeH+b7IBkt/"
345  "gwCMw2HaQsRFEsurXtcQ3YwRuPz5XNaw5NAvrNa67Fm7eRzdE1+hWLKtA8=",
346  uint64_t{0x9f8a76697ab1aa36}, uint64_t{0x2ade95c4261364ae}},
347  {"RRBSvEGYnzR9E45Aps/+WSnpCo/X7gJLO4DRnUqFrJCV/kzWlusLE/"
348  "6ZU6RoUf2ROwcgEvUiXTGjLs7ts3t9SXnJHxC1KiOzxHdYLMhVvgNd3hVSAXODpKFSkVXND"
349  "55G2L1W",
350  uint64_t{0x6ba1bf3d811a531d}, uint64_t{0x5c4f3299faacd07a}},
351  {"jeh6Qazxmdi57pa9S3XSnnZFIRrnc6s8QLrah5OX3SB/V2ErSPoEAumavzQPkdKF1/"
352  "SfvmdL+qgF1C+Yawy562QaFqwVGq7+tW0yxP8FStb56ZRgNI4IOmI30s1Ei7iops9Uuw==",
353  uint64_t{0x6a418974109c67b4}, uint64_t{0xfffe3bff0ae5e9bc}},
354  {"6QO5nnDrY2/"
355  "wrUXpltlKy2dSBcmK15fOY092CR7KxAjNfaY+"
356  "aAmtWbbzQk3MjBg03x39afSUN1fkrWACdyQKRaGxgwq6MGNxI6W+8DLWJBHzIXrntrE/"
357  "ml6fnNXEpxplWJ1vEs4=",
358  uint64_t{0x8472f1c2b3d230a3}, uint64_t{0x1db785c0005166e4}},
359  {"0oPxeEHhqhcFuwonNfLd5jF3RNATGZS6NPoS0WklnzyokbTqcl4BeBkMn07+fDQv83j/"
360  "BpGUwcWO05f3+DYzocfnizpFjLJemFGsls3gxcBYxcbqWYev51tG3lN9EvRE+X9+Pwww",
361  uint64_t{0x5e06068f884e73a7}, uint64_t{0xea000d962ad18418}},
362  {"naSBSjtOKgAOg8XVbR5cHAW3Y+QL4Pb/JO9/"
363  "oy6L08wvVRZqo0BrssMwhzBP401Um7A4ppAupbQeJFdMrysY34AuSSNvtNUy5VxjNECwiNt"
364  "gwYHw7yakDUv8WvonctmnoSPKENegQg==",
365  uint64_t{0x55290b1a8f170f59}, uint64_t{0xe42aef38359362d9}},
366  {"vPyl8DxVeRe1OpilKb9KNwpGkQRtA94UpAHetNh+"
367  "95V7nIW38v7PpzhnTWIml5kw3So1Si0TXtIUPIbsu32BNhoH7QwFvLM+"
368  "JACgSpc5e3RjsL6Qwxxi11npwxRmRUqATDeMUfRAjxg=",
369  uint64_t{0x5501cfd83dfe706a}, uint64_t{0xc8e95657348a3891}},
370  {"QC9i2GjdTMuNC1xQJ74ngKfrlA4w3o58FhvNCltdIpuMhHP1YsDA78scQPLbZ3OCUgeQguY"
371  "f/vw6zAaVKSgwtaykqg5ka/4vhz4hYqWU5ficdXqClHl+zkWEY26slCNYOM5nnDlly8Cj",
372  uint64_t{0xe43ed13d13a66990}, uint64_t{0xc162eca864f238c6}},
373  {"7CNIgQhAHX27nxI0HeB5oUTnTdgKpRDYDKwRcXfSFGP1XeT9nQF6WKCMjL1tBV6x7KuJ91G"
374  "Zz11F4c+8s+MfqEAEpd4FHzamrMNjGcjCyrVtU6y+7HscMVzr7Q/"
375  "ODLcPEFztFnwjvCjmHw==",
376  uint64_t{0xdf43bc375cf5283f}, uint64_t{0xbe1fb373e20579ad}},
377  {"Qa/hC2RPXhANSospe+gUaPfjdK/yhQvfm4cCV6/pdvCYWPv8p1kMtKOX3h5/"
378  "8oZ31fsmx4Axphu5qXJokuhZKkBUJueuMpxRyXpwSWz2wELx5glxF7CM0Fn+"
379  "OevnkhUn5jsPlG2r5jYlVn8=",
380  uint64_t{0x8112b806d288d7b5}, uint64_t{0x628a1d4f40aa6ffd}},
381  {"kUw/0z4l3a89jTwN5jpG0SHY5km/"
382  "IVhTjgM5xCiPRLncg40aqWrJ5vcF891AOq5hEpSq0bUCJUMFXgct7kvnys905HjerV7Vs1G"
383  "y84tgVJ70/2+pAZTsB/PzNOE/G6sOj4+GbTzkQu819OLB",
384  uint64_t{0xd52a18abb001cb46}, uint64_t{0xa87bdb7456340f90}},
385  {"VDdfSDbO8Tdj3T5W0XM3EI7iHh5xpIutiM6dvcJ/fhe23V/srFEkDy5iZf/"
386  "VnA9kfi2C79ENnFnbOReeuZW1b3MUXB9lgC6U4pOTuC+"
387  "jHK3Qnpyiqzj7h3ISJSuo2pob7vY6VHZo6Fn7exEqHg==",
388  uint64_t{0xe12b76a2433a1236}, uint64_t{0x5960ef3ba982c801}},
389  {"Ldfvy3ORdquM/R2fIkhH/ONi69mcP1AEJ6n/"
390  "oropwecAsLJzQSgezSY8bEiEs0VnFTBBsW+RtZY6tDj03fnb3amNUOq1b7jbqyQkL9hpl+"
391  "2Z2J8IaVSeownWl+bQcsR5/xRktIMckC5AtF4YHfU=",
392  uint64_t{0x175bf7319cf1fa00}, uint64_t{0x5026586df9a431ec}},
393  {"BrbNpb42+"
394  "VzZAjJw6QLirXzhweCVRfwlczzZ0VX2xluskwBqyfnGovz5EuX79JJ31VNXa5hTkAyQat3l"
395  "YKRADTdAdwE5PqM1N7YaMqqsqoAAAeuYVXuk5eWCykYmClNdSspegwgCuT+403JigBzi",
396  uint64_t{0xd63d57b3f67525ae}, uint64_t{0xfe4b8a20fdf0840b}},
397  {"gB3NGHJJvVcuPyF0ZSvHwnWSIfmaI7La24VMPQVoIIWF7Z74NltPZZpx2f+cocESM+"
398  "ILzQW9p+BC8x5IWz7N4Str2WLGKMdgmaBfNkEhSHQDU0IJEOnpUt0HmjhFaBlx0/"
399  "LTmhua+rQ6Wup8ezLwfg==",
400  uint64_t{0x933faea858832b73}, uint64_t{0xdcb761867da7072f}},
401  {"hTKHlRxx6Pl4gjG+6ksvvj0CWFicUg3WrPdSJypDpq91LUWRni2KF6+"
402  "81ZoHBFhEBrCdogKqeK+hy9bLDnx7g6rAFUjtn1+cWzQ2YjiOpz4+"
403  "ROBB7lnwjyTGWzJD1rXtlso1g2qVH8XJVigC5M9AIxM=",
404  uint64_t{0x53d061e5f8e7c04f}, uint64_t{0xc10d4653667275b7}},
405  {"IWQBelSQnhrr0F3BhUpXUIDauhX6f95Qp+A0diFXiUK7irwPG1oqBiqHyK/SH/"
406  "9S+"
407  "rln9DlFROAmeFdH0OCJi2tFm4afxYzJTFR4HnR4cG4x12JqHaZLQx6iiu6CE3rtWBVz99oA"
408  "wCZUOEXIsLU24o2Y",
409  uint64_t{0xdb4124556dd515e0}, uint64_t{0x727720deec13110b}},
410  {"TKo+l+"
411  "1dOXdLvIrFqeLaHdm0HZnbcdEgOoLVcGRiCbAMR0j5pIFw8D36tefckAS1RCFOH5IgP8yiF"
412  "T0Gd0a2hI3+"
413  "fTKA7iK96NekxWeoeqzJyctc6QsoiyBlkZerRxs5RplrxoeNg29kKDTM0K94mnhD9g==",
414  uint64_t{0x4fb31a0dd681ee71}, uint64_t{0x710b009662858dc9}},
415  {"YU4e7G6EfQYvxCFoCrrT0EFgVLHFfOWRTJQJ5gxM3G2b+"
416  "1kJf9YPrpsxF6Xr6nYtS8reEEbDoZJYqnlk9lXSkVArm88Cqn6d25VCx3+"
417  "49MqC0trIlXtb7SXUUhwpJK16T0hJUfPH7s5cMZXc6YmmbFuBNPE=",
418  uint64_t{0x27cc72eefa138e4c}, uint64_t{0xfbf8f7a3ecac1eb7}},
419  {"/I/"
420  "eImMwPo1U6wekNFD1Jxjk9XQVi1D+"
421  "FPdqcHifYXQuP5aScNQfxMAmaPR2XhuOQhADV5tTVbBKwCDCX4E3jcDNHzCiPvViZF1W27t"
422  "xaf2BbFQdwKrNCmrtzcluBFYu0XZfc7RU1RmxK/RtnF1qHsq/O4pp",
423  uint64_t{0x44bc2dfba4bd3ced}, uint64_t{0xb6fc4fcd0722e3df}},
424  {"CJTT9WGcY2XykTdo8KodRIA29qsqY0iHzWZRjKHb9alwyJ7RZAE3V5Juv4MY3MeYEr1EPCC"
425  "MxO7yFXqT8XA8YTjaMp3bafRt17Pw8JC4iKJ1zN+WWKOESrj+"
426  "3aluGQqn8z1EzqY4PH7rLG575PYeWsP98BugdA==",
427  uint64_t{0x242da1e3a439bed8}, uint64_t{0x7cb86dcc55104aac}},
428  {"ZlhyQwLhXQyIUEnMH/"
429  "AEW27vh9xrbNKJxpWGtrEmKhd+nFqAfbeNBQjW0SfG1YI0xQkQMHXjuTt4P/"
430  "EpZRtA47ibZDVS8TtaxwyBjuIDwqcN09eCtpC+Ls+"
431  "vWDTLmBeDM3u4hmzz4DQAYsLiZYSJcldg9Q3wszw=",
432  uint64_t{0xdc559c746e35c139}, uint64_t{0x19e71e9b45c3a51e}},
433  {"v2KU8y0sCrBghmnm8lzGJlwo6D6ObccAxCf10heoDtYLosk4ztTpLlpSFEyu23MLA1tJkcg"
434  "Rko04h19QMG0mOw/"
435  "wc93EXAweriBqXfvdaP85sZABwiKO+6rtS9pacRVpYYhHJeVTQ5NzrvBvi1huxAr+"
436  "xswhVMfL",
437  uint64_t{0xd0b0350275b9989}, uint64_t{0x51de38573c2bea48}},
438  {"QhKlnIS6BuVCTQsnoE67E/"
439  "yrgogE8EwO7xLaEGei26m0gEU4OksefJgppDh3X0x0Cs78Dr9IHK5b977CmZlrTRmwhlP8p"
440  "M+UzXPNRNIZuN3ntOum/QhUWP8SGpirheXENWsXMQ/"
441  "nxtxakyEtrNkKk471Oov9juP8oQ==",
442  uint64_t{0xb04489e41d17730c}, uint64_t{0xa73ab6996d6df158}},
443  {"/ZRMgnoRt+Uo6fUPr9FqQvKX7syhgVqWu+"
444  "WUSsiQ68UlN0efSP6Eced5gJZL6tg9gcYJIkhjuQNITU0Q3TjVAnAcobgbJikCn6qZ6pRxK"
445  "BY4MTiAlfGD3T7R7hwJwx554MAy++Zb/YUFlnCaCJiwQMnowF7aQzwYFCo=",
446  uint64_t{0x2217285eb4572156}, uint64_t{0x55ef2b8c930817b2}},
447  {"NB7tU5fNE8nI+SXGfipc7sRkhnSkUF1krjeo6k+8FITaAtdyz+"
448  "o7mONgXmGLulBPH9bEwyYhKNVY0L+njNQrZ9YC2aXsFD3PdZsxAFaBT3VXEzh+"
449  "NGBTjDASNL3mXyS8Yv1iThGfHoY7T4aR0NYGJ+k+pR6f+KrPC96M",
450  uint64_t{0x12c2e8e68aede73b}, uint64_t{0xb2850bf5fae87157}},
451  {"8T6wrqCtEO6/rwxF6lvMeyuigVOLwPipX/FULvwyu+1wa5sQGav/"
452  "2FsLHUVn6cGSi0LlFwLewGHPFJDLR0u4t7ZUyM//"
453  "x6da0sWgOa5hzDqjsVGmjxEHXiaXKW3i4iSZNuxoNbMQkIbVML+"
454  "DkYu9ND0O2swg4itGeVSzXA==",
455  uint64_t{0x4d612125bdc4fd00}, uint64_t{0xecf3de1acd04651f}},
456  {"Ntf1bMRdondtMv1CYr3G80iDJ4WSAlKy5H34XdGruQiCrnRGDBa+"
457  "eUi7vKp4gp3BBcVGl8eYSasVQQjn7MLvb3BjtXx6c/"
458  "bCL7JtpzQKaDnPr9GWRxpBXVxKREgMM7d8lm35EODv0w+"
459  "hQLfVSh8OGs7fsBb68nNWPLeeSOo=",
460  uint64_t{0x81826b553954464e}, uint64_t{0xcc0a40552559ff32}},
461  {"VsSAw72Ro6xks02kaiLuiTEIWBC5bgqr4WDnmP8vglXzAhixk7td926rm9jNimL+"
462  "kroPSygZ9gl63aF5DCPOACXmsbmhDrAQuUzoh9ZKhWgElLQsrqo1KIjWoZT5b5QfVUXY9lS"
463  "IBg3U75SqORoTPq7HalxxoIT5diWOcJQi",
464  uint64_t{0xc2e5d345dc0ddd2d}, uint64_t{0xc385c374f20315b1}},
465  {"j+loZ+C87+"
466  "bJxNVebg94gU0mSLeDulcHs84tQT7BZM2rzDSLiCNxUedHr1ZWJ9ejTiBa0dqy2I2ABc++"
467  "xzOLcv+//YfibtjKtYggC6/3rv0XCc7xu6d/"
468  "O6xO+XOBhOWAQ+IHJVHf7wZnDxIXB8AUHsnjEISKj7823biqXjyP3g==",
469  uint64_t{0x3da6830a9e32631e}, uint64_t{0xb90208a4c7234183}},
470  {"f3LlpcPElMkspNtDq5xXyWU62erEaKn7RWKlo540gR6mZsNpK1czV/"
471  "sOmqaq8XAQLEn68LKj6/"
472  "cFkJukxRzCa4OF1a7cCAXYFp9+wZDu0bw4y63qbpjhdCl8GO6Z2lkcXy7KOzbPE01ukg7+"
473  "gN+7uKpoohgAhIwpAKQXmX5xtd0=",
474  uint64_t{0xc9ae5c8759b4877a}, uint64_t{0x58aa1ca7a4c075d9}},
475  };
476 
477  for (const auto& expected_result : expected_results) {
479  ASSERT_TRUE(absl::Base64Unescape(expected_result.base64_data, &str));
481  expected_result.seed, kSalt),
482  expected_result.hash);
483  }
484 }
485 
486 } // namespace
xds_interop_client.str
str
Definition: xds_interop_client.py:487
seed
static const uint8_t seed[20]
Definition: dsa_test.cc:79
absl::string_view
Definition: abseil-cpp/absl/strings/string_view.h:167
wyhash.h
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
absl::FormatConversionChar::s
@ s
EXPECT_EQ
#define EXPECT_EQ(a, b)
Definition: iomgr/time_averaged_stats_test.cc:27
hash
uint64_t hash
Definition: ring_hash.cc:284
ULL
#define ULL(x)
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc:57
tests.url_map.fault_injection_test.ExpectedResult
ExpectedResult
Definition: fault_injection_test.py:34
TEST
#define TEST(name, init_size,...)
Definition: arena_test.cc:75
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90
absl::Base64Unescape
bool Base64Unescape(absl::string_view src, std::string *dest)
Definition: abseil-cpp/absl/strings/escaping.cc:896
absl::hash_internal::Wyhash
uint64_t Wyhash(const void *data, size_t len, uint64_t seed, const uint64_t salt[])
Definition: wyhash.cc:30
ASSERT_TRUE
#define ASSERT_TRUE(condition)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1973
run_grpclb_interop_tests.l
dictionary l
Definition: run_grpclb_interop_tests.py:410


grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:55