| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
| 3 * All rights reserved. | 3 * All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 } | 226 } |
| 227 | 227 |
| 228 // Basic sanity check for endian writing/reading | 228 // Basic sanity check for endian writing/reading |
| 229 TEST_F(MemoryStreamTest, EndianSanityFloat32) { | 229 TEST_F(MemoryStreamTest, EndianSanityFloat32) { |
| 230 // Sanity check int32 | 230 // Sanity check int32 |
| 231 MemoryBuffer<float> buffer32(2); | 231 MemoryBuffer<float> buffer32(2); |
| 232 float *p = buffer32; | 232 float *p = buffer32; |
| 233 uint8 *p8 = reinterpret_cast<uint8*>(p); | 233 uint8 *p8 = reinterpret_cast<uint8*>(p); |
| 234 MemoryWriteStream write_stream(p8, sizeof(int32) * 2); | 234 MemoryWriteStream write_stream(p8, sizeof(int32) * 2); |
| 235 | 235 |
| 236 float value = 3.14159; | 236 float value = 3.14159f; |
| 237 write_stream.WriteLittleEndianFloat32(value); | 237 write_stream.WriteLittleEndianFloat32(value); |
| 238 write_stream.WriteBigEndianFloat32(value); | 238 write_stream.WriteBigEndianFloat32(value); |
| 239 | 239 |
| 240 // Verify that the bytes are in the correct order | 240 // Verify that the bytes are in the correct order |
| 241 int32 ivalue = *reinterpret_cast<int32*>(&value); // interpret float as int32 | 241 int32 ivalue = *reinterpret_cast<int32*>(&value); // interpret float as int32 |
| 242 uint8 byte1 = ivalue & 0xff; | 242 uint8 byte1 = ivalue & 0xff; |
| 243 uint8 byte2 = (ivalue >> 8) & 0xff; | 243 uint8 byte2 = (ivalue >> 8) & 0xff; |
| 244 uint8 byte3 = (ivalue >> 16) & 0xff; | 244 uint8 byte3 = (ivalue >> 16) & 0xff; |
| 245 uint8 byte4 = (ivalue >> 24) & 0xff; | 245 uint8 byte4 = (ivalue >> 24) & 0xff; |
| 246 | 246 |
| 247 // validate little-endian | 247 // validate little-endian |
| 248 EXPECT_EQ(byte1, p8[0]); | 248 EXPECT_EQ(byte1, p8[0]); |
| 249 EXPECT_EQ(byte2, p8[1]); | 249 EXPECT_EQ(byte2, p8[1]); |
| 250 EXPECT_EQ(byte3, p8[2]); | 250 EXPECT_EQ(byte3, p8[2]); |
| 251 EXPECT_EQ(byte4, p8[3]); | 251 EXPECT_EQ(byte4, p8[3]); |
| 252 | 252 |
| 253 // validate big-endian | 253 // validate big-endian |
| 254 EXPECT_EQ(byte4, p8[4]); | 254 EXPECT_EQ(byte4, p8[4]); |
| 255 EXPECT_EQ(byte3, p8[5]); | 255 EXPECT_EQ(byte3, p8[5]); |
| 256 EXPECT_EQ(byte2, p8[6]); | 256 EXPECT_EQ(byte2, p8[6]); |
| 257 EXPECT_EQ(byte1, p8[7]); | 257 EXPECT_EQ(byte1, p8[7]); |
| 258 } | 258 } |
| 259 | 259 |
| 260 // Write then read int16, int32, and float32 little/big endian values | 260 // Write then read int16, int32, and float32 little/big endian values |
| 261 TEST_F(MemoryStreamTest, Endian) { | 261 TEST_F(MemoryStreamTest, Endian) { |
| 262 const int16 kValue1 = 13243; | 262 const int16 kValue1 = 13243; |
| 263 const int32 kValue2 = 2393043; | 263 const int32 kValue2 = 2393043; |
| 264 const float kValue3 = -0.039483; | 264 const float kValue3 = -0.039483f; |
| 265 const int16 kValue4 = -3984; | 265 const int16 kValue4 = -3984; |
| 266 const float kValue5 = 1234.5678; | 266 const float kValue5 = 1234.5678f; |
| 267 const uint8 kValue6 = 5; // write a single byte to make things interesting | 267 const uint8 kValue6 = 5; // write a single byte to make things interesting |
| 268 const int32 kValue7 = -3920393; | 268 const int32 kValue7 = -3920393; |
| 269 | 269 |
| 270 size_t total_size = sizeof(kValue1) + | 270 size_t total_size = sizeof(kValue1) + |
| 271 sizeof(kValue2) + | 271 sizeof(kValue2) + |
| 272 sizeof(kValue3) + | 272 sizeof(kValue3) + |
| 273 sizeof(kValue4) + | 273 sizeof(kValue4) + |
| 274 sizeof(kValue5) + | 274 sizeof(kValue5) + |
| 275 sizeof(kValue6) + | 275 sizeof(kValue6) + |
| 276 sizeof(kValue7); | 276 sizeof(kValue7); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 EXPECT_EQ(read_value1, kValue1); | 311 EXPECT_EQ(read_value1, kValue1); |
| 312 EXPECT_EQ(read_value2, kValue2); | 312 EXPECT_EQ(read_value2, kValue2); |
| 313 EXPECT_EQ(read_value3, kValue3); | 313 EXPECT_EQ(read_value3, kValue3); |
| 314 EXPECT_EQ(read_value4, kValue4); | 314 EXPECT_EQ(read_value4, kValue4); |
| 315 EXPECT_EQ(read_value5, kValue5); | 315 EXPECT_EQ(read_value5, kValue5); |
| 316 EXPECT_EQ(read_value6, kValue6); | 316 EXPECT_EQ(read_value6, kValue6); |
| 317 EXPECT_EQ(read_value7, kValue7); | 317 EXPECT_EQ(read_value7, kValue7); |
| 318 } | 318 } |
| 319 | 319 |
| 320 } // namespace o3d | 320 } // namespace o3d |
| OLD | NEW |