OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/sys_byteorder.h" | 5 #include "base/sys_byteorder.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
| 9 #include "build/build_config.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
10 | 11 |
11 namespace { | 12 namespace { |
12 | 13 |
13 const uint16_t k16BitTestData = 0xaabb; | 14 const uint16_t k16BitTestData = 0xaabb; |
14 const uint16_t k16BitSwappedTestData = 0xbbaa; | 15 const uint16_t k16BitSwappedTestData = 0xbbaa; |
15 const uint32_t k32BitTestData = 0xaabbccdd; | 16 const uint32_t k32BitTestData = 0xaabbccdd; |
16 const uint32_t k32BitSwappedTestData = 0xddccbbaa; | 17 const uint32_t k32BitSwappedTestData = 0xddccbbaa; |
17 const uint64_t k64BitTestData = 0xaabbccdd44332211; | 18 const uint64_t k64BitTestData = 0xaabbccdd44332211; |
18 const uint64_t k64BitSwappedTestData = 0x11223344ddccbbaa; | 19 const uint64_t k64BitSwappedTestData = 0x11223344ddccbbaa; |
(...skipping 14 matching lines...) Expand all Loading... |
33 EXPECT_EQ(k32BitTestData, reswapped); | 34 EXPECT_EQ(k32BitTestData, reswapped); |
34 } | 35 } |
35 | 36 |
36 TEST(ByteOrderTest, ByteSwap64) { | 37 TEST(ByteOrderTest, ByteSwap64) { |
37 uint64_t swapped = base::ByteSwap(k64BitTestData); | 38 uint64_t swapped = base::ByteSwap(k64BitTestData); |
38 EXPECT_EQ(k64BitSwappedTestData, swapped); | 39 EXPECT_EQ(k64BitSwappedTestData, swapped); |
39 uint64_t reswapped = base::ByteSwap(swapped); | 40 uint64_t reswapped = base::ByteSwap(swapped); |
40 EXPECT_EQ(k64BitTestData, reswapped); | 41 EXPECT_EQ(k64BitTestData, reswapped); |
41 } | 42 } |
42 | 43 |
| 44 TEST(ByteOrderTest, ByteSwapUintPtrT) { |
| 45 #if defined(ARCH_CPU_64_BITS) |
| 46 const uintptr_t test_data = static_cast<uintptr_t>(k64BitTestData); |
| 47 const uintptr_t swapped_test_data = |
| 48 static_cast<uintptr_t>(k64BitSwappedTestData); |
| 49 #elif defined(ARCH_CPU_32_BITS) |
| 50 const uintptr_t test_data = static_cast<uintptr_t>(k32BitTestData); |
| 51 const uintptr_t swapped_test_data = |
| 52 static_cast<uintptr_t>(k32BitSwappedTestData); |
| 53 #else |
| 54 #error architecture not supported |
| 55 #endif |
| 56 |
| 57 uintptr_t swapped = base::ByteSwapUintPtrT(test_data); |
| 58 EXPECT_EQ(swapped_test_data, swapped); |
| 59 uintptr_t reswapped = base::ByteSwapUintPtrT(swapped); |
| 60 EXPECT_EQ(test_data, reswapped); |
| 61 } |
| 62 |
43 TEST(ByteOrderTest, ByteSwapToLE16) { | 63 TEST(ByteOrderTest, ByteSwapToLE16) { |
44 uint16_t le = base::ByteSwapToLE16(k16BitTestData); | 64 uint16_t le = base::ByteSwapToLE16(k16BitTestData); |
45 #if defined(ARCH_CPU_LITTLE_ENDIAN) | 65 #if defined(ARCH_CPU_LITTLE_ENDIAN) |
46 EXPECT_EQ(k16BitTestData, le); | 66 EXPECT_EQ(k16BitTestData, le); |
47 #else | 67 #else |
48 EXPECT_EQ(k16BitSwappedTestData, le); | 68 EXPECT_EQ(k16BitSwappedTestData, le); |
49 #endif | 69 #endif |
50 } | 70 } |
51 | 71 |
52 TEST(ByteOrderTest, ByteSwapToLE32) { | 72 TEST(ByteOrderTest, ByteSwapToLE32) { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 } | 133 } |
114 | 134 |
115 TEST(ByteOrderTest, HostToNet64) { | 135 TEST(ByteOrderTest, HostToNet64) { |
116 uint64_t n = base::HostToNet64(k64BitTestData); | 136 uint64_t n = base::HostToNet64(k64BitTestData); |
117 #if defined(ARCH_CPU_LITTLE_ENDIAN) | 137 #if defined(ARCH_CPU_LITTLE_ENDIAN) |
118 EXPECT_EQ(k64BitSwappedTestData, n); | 138 EXPECT_EQ(k64BitSwappedTestData, n); |
119 #else | 139 #else |
120 EXPECT_EQ(k64BitTestData, n); | 140 EXPECT_EQ(k64BitTestData, n); |
121 #endif | 141 #endif |
122 } | 142 } |
OLD | NEW |