@@ -198,187 +198,187 @@ namespace {
198198 // All of the values in the remaining tests have been determined experimentally.
199199 TEST ( BSONElementHasher, HashIntOrLongOrDouble ) {
200200 BSONObj o = BSON ( " check" << 42 );
201- ASSERT_EQUALS ( hashIt ( o ), -944302157085130861LL );
201+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -944302157085130861LL ) );
202202 o = BSON ( " check" << 42.123 );
203- ASSERT_EQUALS ( hashIt ( o ), -944302157085130861LL );
203+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -944302157085130861LL ) );
204204 o = BSON ( " check" << (long long ) 42 );
205- ASSERT_EQUALS ( hashIt ( o ), -944302157085130861LL );
205+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -944302157085130861LL ) );
206206
207207 o = BSON ( " check" << 0 );
208- ASSERT_EQUALS ( hashIt ( o ), 4854801880128277513LL );
208+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4854801880128277513LL ) );
209209 o = BSON ( " check" << 0.456 );
210- ASSERT_EQUALS ( hashIt ( o ), 4854801880128277513LL );
210+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4854801880128277513LL ) );
211211 o = BSON ( " check" << (long long ) 0 );
212- ASSERT_EQUALS ( hashIt ( o ), 4854801880128277513LL );
212+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4854801880128277513LL ) );
213213 // NAN is treated as zero.
214214 o = BSON ( " check" << std::numeric_limits<double >::signaling_NaN () );
215- ASSERT_EQUALS ( hashIt ( o ), 4854801880128277513LL );
215+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4854801880128277513LL ) );
216216 o = BSON ( " check" << std::numeric_limits<double >::quiet_NaN () );
217- ASSERT_EQUALS ( hashIt ( o ), 4854801880128277513LL );
217+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4854801880128277513LL ) );
218218
219219 o = BSON ( " check" << 1 );
220- ASSERT_EQUALS ( hashIt ( o ), 5902408780260971510LL );
220+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 5902408780260971510LL ) );
221221 o = BSON ( " check" << 1.987 );
222- ASSERT_EQUALS ( hashIt ( o ), 5902408780260971510LL );
222+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 5902408780260971510LL ) );
223223 o = BSON ( " check" << (long long ) 1 );
224- ASSERT_EQUALS ( hashIt ( o ), 5902408780260971510LL );
224+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 5902408780260971510LL ) );
225225
226226 o = BSON ( " check" << -1 );
227- ASSERT_EQUALS ( hashIt ( o ), 1140205862565771219LL );
227+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 1140205862565771219LL ) );
228228 o = BSON ( " check" << -1.789 );
229- ASSERT_EQUALS ( hashIt ( o ), 1140205862565771219LL );
229+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 1140205862565771219LL ) );
230230 o = BSON ( " check" << (long long ) -1 );
231- ASSERT_EQUALS ( hashIt ( o ), 1140205862565771219LL );
231+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 1140205862565771219LL ) );
232232
233233 o = BSON ( " check" << std::numeric_limits<int >::min () );
234- ASSERT_EQUALS ( hashIt ( o ), 6165898260261354870LL );
234+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6165898260261354870LL ) );
235235 o = BSON ( " check" << (double ) std::numeric_limits<int >::min () );
236- ASSERT_EQUALS ( hashIt ( o ), 6165898260261354870LL );
236+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6165898260261354870LL ) );
237237 o = BSON ( " check" << (long long ) std::numeric_limits<int >::min () );
238- ASSERT_EQUALS ( hashIt ( o ), 6165898260261354870LL );
238+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6165898260261354870LL ) );
239239
240240 o = BSON ( " check" << std::numeric_limits<int >::max () );
241- ASSERT_EQUALS ( hashIt ( o ), 1143184177162245883LL );
241+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 1143184177162245883LL ) );
242242 o = BSON ( " check" << (double ) std::numeric_limits<int >::max () );
243- ASSERT_EQUALS ( hashIt ( o ), 1143184177162245883LL );
243+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 1143184177162245883LL ) );
244244 o = BSON ( " check" << (long long ) std::numeric_limits<int >::max () );
245- ASSERT_EQUALS ( hashIt ( o ), 1143184177162245883LL );
245+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 1143184177162245883LL ) );
246246
247247 // Large/small double values.
248248 ASSERT ( std::numeric_limits<long long >::max () < std::numeric_limits<double >::max () );
249249 o = BSON ( " check" << std::numeric_limits<double >::max () );
250- ASSERT_EQUALS ( hashIt ( o ), 921523596458303250LL );
250+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 921523596458303250LL ) );
251251 o = BSON ( " check" << std::numeric_limits<long long >::max () ); // 9223372036854775807
252- ASSERT_EQUALS ( hashIt ( o ), 921523596458303250LL );
252+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 921523596458303250LL ) );
253253
254254 // Have to create our own small double.
255255 // std::numeric_limits<double>::lowest() - Not available until C++11
256256 // std::numeric_limits<double>::min() - Closest positive value to zero, not most negative.
257257 double smallDouble = - std::numeric_limits<double >::max ();
258258 ASSERT ( smallDouble < static_cast <double >( std::numeric_limits<long long >::min () ) );
259259 o = BSON ( " check" << smallDouble );
260- ASSERT_EQUALS ( hashIt ( o ), 4532067210535695462LL );
260+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4532067210535695462LL ) );
261261 o = BSON ( " check" << std::numeric_limits<long long >::min () ); // -9223372036854775808
262- ASSERT_EQUALS ( hashIt ( o ), 4532067210535695462LL );
262+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4532067210535695462LL ) );
263263 }
264264
265265 TEST ( BSONElementHasher, HashMinKey ) {
266266 BSONObj o = BSON ( " check" << MINKEY );
267- ASSERT_EQUALS ( hashIt ( o ), 7961148599568647290LL );
267+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 7961148599568647290LL ) );
268268 }
269269
270270 TEST ( BSONElementHasher, HashMaxKey ) {
271271 BSONObj o = BSON ( " check" << MAXKEY );
272- ASSERT_EQUALS ( hashIt ( o ), 5504842513779440750LL );
272+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 5504842513779440750LL ) );
273273 }
274274
275275 TEST ( BSONElementHasher, HashUndefined ) {
276276 BSONObj o = BSON ( " check" << BSONUndefined );
277- ASSERT_EQUALS ( hashIt ( o ), 40158834000849533LL );
277+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 40158834000849533LL ) );
278278 }
279279
280280 TEST ( BSONElementHasher, HashNull ) {
281281 BSONObj o = BSON ( " check" << BSONNULL );
282- ASSERT_EQUALS ( hashIt ( o ), 2338878944348059895LL );
282+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 2338878944348059895LL ) );
283283 }
284284
285285 TEST ( BSONElementHasher, HashString ) {
286286 BSONObj o = BSON ( " check" << " abc" );
287- ASSERT_EQUALS ( hashIt ( o ), 8478485326885698097LL );
287+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 8478485326885698097LL ) );
288288 o = BSON ( " check" << BSONSymbol ( " abc" ) );
289- ASSERT_EQUALS ( hashIt ( o ), 8478485326885698097LL );
289+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 8478485326885698097LL ) );
290290
291291 o = BSON ( " check" << " " );
292- ASSERT_EQUALS ( hashIt ( o ), 2049396243249673340LL );
292+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 2049396243249673340LL ) );
293293 o = BSON ( " check" << BSONSymbol ( " " ) );
294- ASSERT_EQUALS ( hashIt ( o ), 2049396243249673340LL );
294+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 2049396243249673340LL ) );
295295 }
296296
297297 TEST ( BSONElementHasher, HashObject ) {
298298 BSONObj o = BSON ( " check" << BSON ( " a" << " abc" << " b" << 123LL ) );
299- ASSERT_EQUALS ( hashIt ( o ), 4771603801758380216LL );
299+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4771603801758380216LL ) );
300300
301301 o = BSON ( " check" << BSONObj () );
302- ASSERT_EQUALS ( hashIt ( o ), 7980500913326740417LL );
302+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 7980500913326740417LL ) );
303303 }
304304
305305 TEST ( BSONElementHasher, HashArray ) {
306306 BSONObj o = BSON ( " check" << BSON_ARRAY ( " bar" << " baz" << " qux" ) );
307- ASSERT_EQUALS ( hashIt ( o ), -2938911267422831539LL );
307+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -2938911267422831539LL ) );
308308
309309 o = BSON ( " check" << BSONArray () );
310- ASSERT_EQUALS ( hashIt ( o ), 8849948234993459283LL );
310+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 8849948234993459283LL ) );
311311 }
312312
313313 TEST ( BSONElementHasher, HashBinary ) {
314314 uint8_t bytes[] = { 0 , 1 , 2 , 3 , 4 , 6 };
315315 BSONObj o = BSON ( " check" << BSONBinData ( bytes, 6 , BinDataGeneral ) );
316- ASSERT_EQUALS ( hashIt ( o ), 7252465090394235301LL );
316+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 7252465090394235301LL ) );
317317
318318 o = BSON ( " check" << BSONBinData ( bytes, 6 , bdtCustom ) );
319- ASSERT_EQUALS ( hashIt ( o ), 5736670452907618262LL );
319+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 5736670452907618262LL ) );
320320
321321 uint8_t uuidBytes[] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 };
322322 o = BSON ( " check" << BSONBinData ( uuidBytes, 16 , newUUID ) );
323- ASSERT_EQUALS ( hashIt ( o ), 6084661258071355978LL );
323+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6084661258071355978LL ) );
324324 }
325325
326326 TEST ( BSONElementHasher, HashObjectId ) {
327327 BSONObj o = BSON ( " check" << OID ( " 010203040506070809101112" ) );
328- ASSERT_EQUALS ( hashIt ( o ), -5588663249627035708LL );
328+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -5588663249627035708LL ) );
329329
330330 o = BSON ( " check" << OID ( " 000000000000000000000000" ) );
331- ASSERT_EQUALS ( hashIt ( o ), -4293118519463489418LL );
331+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -4293118519463489418LL ) );
332332 }
333333
334334 TEST ( BSONElementHasher, HashBoolean ) {
335335 BSONObj o = BSON ( " check" << true );
336- ASSERT_EQUALS ( hashIt ( o ), 6405873908747105701LL );
336+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6405873908747105701LL ) );
337337
338338 o = BSON ( " check" << false );
339- ASSERT_EQUALS ( hashIt ( o ), 6289544573401934092LL );
339+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6289544573401934092LL ) );
340340 }
341341
342342 TEST ( BSONElementHasher, HashTimeStamp ) {
343343 BSONObjBuilder builder1;
344344 BSONObjBuilder builder2;
345345
346346 BSONObj o = BSON ( " check" << Date_t ( 0x5566778811223344LL ) );
347- ASSERT_EQUALS ( hashIt ( o ), 4476222765095560467LL );
347+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4476222765095560467LL ) );
348348 o = builder1.appendTimestamp ( " check" , 0x55667788LL * 1000LL , 0x11223344LL ).obj ();
349- ASSERT_EQUALS ( hashIt ( o ), 4476222765095560467LL );
349+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 4476222765095560467LL ) );
350350
351351 o = BSON ( " check" << Date_t ( 0 ) );
352- ASSERT_EQUALS ( hashIt ( o ), -1178696894582842035LL );
352+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -1178696894582842035LL ) );
353353 o = builder2.appendTimestamp ( " check" , 0 ).obj ();
354- ASSERT_EQUALS ( hashIt ( o ), -1178696894582842035LL );
354+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -1178696894582842035LL ) );
355355 }
356356
357357 TEST ( BSONElementHasher, HashRegEx ) {
358358 BSONObj o = BSON ( " check" << BSONRegEx ( " mongodb" ) );
359- ASSERT_EQUALS ( hashIt ( o ), -7275792090268217043LL );
359+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( -7275792090268217043LL ) );
360360
361361 o = BSON ( " check" << BSONRegEx ( " .*" , " i" ) );
362- ASSERT_EQUALS ( hashIt ( o ), 7095855029187981886LL );
362+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 7095855029187981886LL ) );
363363 }
364364
365365 TEST ( BSONElementHasher, HashDBRef ) {
366366 BSONObj o = BSON ( " check" << BSONDBRef ( " c" , OID ( " 010203040506070809101112" ) ) );
367- ASSERT_EQUALS ( hashIt ( o ), 940175826736461384LL );
367+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 940175826736461384LL ) );
368368
369369 o = BSON ( " check" << BSONDBRef ( " db.c" , OID ( " 010203040506070809101112" ) ) );
370- ASSERT_EQUALS ( hashIt ( o ), 2426768198104018194LL );
370+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 2426768198104018194LL ) );
371371 }
372372
373373 TEST ( BSONElementHasher, HashCode ) {
374374 BSONObj o = BSON ( " check" << BSONCode ( " func f() { return 1; }" ) );
375- ASSERT_EQUALS ( hashIt ( o ), 6861638109178014270LL );
375+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 6861638109178014270LL ) );
376376 }
377377
378378 TEST ( BSONElementHasher, HashCodeWScope ) {
379379 BSONObj o = BSON ( " check" <<
380380 BSONCodeWScope ( " func f() { return 1; }" , BSON ( " c" << true ) ) );
381- ASSERT_EQUALS ( hashIt ( o ), 501342939894575968LL );
381+ ASSERT_EQUALS ( hashIt ( o ), littleEndian< long long >( 501342939894575968LL ) );
382382 }
383383
384384} // namespace
0 commit comments