Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: base/sys_byteorder_unittest.cc

Issue 2077563002: base: Use compiler builtins for byte swapping (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add <stdlib.h> to sys_byteorder.h Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/sys_byteorder.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/sys_byteorder.h"
6
7 #include <stdint.h>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace {
12
13 const uint16_t k16BitTestData = 0xaabb;
14 const uint16_t k16BitSwappedTestData = 0xbbaa;
15 const uint32_t k32BitTestData = 0xaabbccdd;
16 const uint32_t k32BitSwappedTestData = 0xddccbbaa;
17 const uint64_t k64BitTestData = 0xaabbccdd44332211;
18 const uint64_t k64BitSwappedTestData = 0x11223344ddccbbaa;
19
20 } // namespace
21
22 TEST(ByteOrderTest, ByteSwap16) {
23 uint16_t swapped = base::ByteSwap(k16BitTestData);
24 EXPECT_EQ(k16BitSwappedTestData, swapped);
25 uint16_t reswapped = base::ByteSwap(swapped);
26 EXPECT_EQ(k16BitTestData, reswapped);
27 }
28
29 TEST(ByteOrderTest, ByteSwap32) {
30 uint32_t swapped = base::ByteSwap(k32BitTestData);
31 EXPECT_EQ(k32BitSwappedTestData, swapped);
32 uint32_t reswapped = base::ByteSwap(swapped);
33 EXPECT_EQ(k32BitTestData, reswapped);
34 }
35
36 TEST(ByteOrderTest, ByteSwap64) {
37 uint64_t swapped = base::ByteSwap(k64BitTestData);
38 EXPECT_EQ(k64BitSwappedTestData, swapped);
39 uint64_t reswapped = base::ByteSwap(swapped);
40 EXPECT_EQ(k64BitTestData, reswapped);
41 }
42
43 TEST(ByteOrderTest, ByteSwapToLE16) {
44 uint16_t le = base::ByteSwapToLE16(k16BitTestData);
45 #if defined(ARCH_CPU_LITTLE_ENDIAN)
46 EXPECT_EQ(k16BitTestData, le);
47 #else
48 EXPECT_EQ(k16BitSwappedTestData, le);
49 #endif
50 }
51
52 TEST(ByteOrderTest, ByteSwapToLE32) {
53 uint32_t le = base::ByteSwapToLE32(k32BitTestData);
54 #if defined(ARCH_CPU_LITTLE_ENDIAN)
55 EXPECT_EQ(k32BitTestData, le);
56 #else
57 EXPECT_EQ(k32BitSwappedTestData, le);
58 #endif
59 }
60
61 TEST(ByteOrderTest, ByteSwapToLE64) {
62 uint64_t le = base::ByteSwapToLE64(k64BitTestData);
63 #if defined(ARCH_CPU_LITTLE_ENDIAN)
64 EXPECT_EQ(k64BitTestData, le);
65 #else
66 EXPECT_EQ(k64BitSwappedTestData, le);
67 #endif
68 }
69
70 TEST(ByteOrderTest, NetToHost16) {
71 uint16_t h = base::NetToHost16(k16BitTestData);
72 #if defined(ARCH_CPU_LITTLE_ENDIAN)
73 EXPECT_EQ(k16BitSwappedTestData, h);
74 #else
75 EXPECT_EQ(k16BitTestData, h);
76 #endif
77 }
78
79 TEST(ByteOrderTest, NetToHost32) {
80 uint32_t h = base::NetToHost32(k32BitTestData);
81 #if defined(ARCH_CPU_LITTLE_ENDIAN)
82 EXPECT_EQ(k32BitSwappedTestData, h);
83 #else
84 EXPECT_EQ(k32BitTestData, h);
85 #endif
86 }
87
88 TEST(ByteOrderTest, NetToHost64) {
89 uint64_t h = base::NetToHost64(k64BitTestData);
90 #if defined(ARCH_CPU_LITTLE_ENDIAN)
91 EXPECT_EQ(k64BitSwappedTestData, h);
92 #else
93 EXPECT_EQ(k64BitTestData, h);
94 #endif
95 }
96
97 TEST(ByteOrderTest, HostToNet16) {
98 uint16_t n = base::HostToNet16(k16BitTestData);
99 #if defined(ARCH_CPU_LITTLE_ENDIAN)
100 EXPECT_EQ(k16BitSwappedTestData, n);
101 #else
102 EXPECT_EQ(k16BitTestData, n);
103 #endif
104 }
105
106 TEST(ByteOrderTest, HostToNet32) {
107 uint32_t n = base::HostToNet32(k32BitTestData);
108 #if defined(ARCH_CPU_LITTLE_ENDIAN)
109 EXPECT_EQ(k32BitSwappedTestData, n);
110 #else
111 EXPECT_EQ(k32BitTestData, n);
112 #endif
113 }
114
115 TEST(ByteOrderTest, HostToNet64) {
116 uint64_t n = base::HostToNet64(k64BitTestData);
117 #if defined(ARCH_CPU_LITTLE_ENDIAN)
118 EXPECT_EQ(k64BitSwappedTestData, n);
119 #else
120 EXPECT_EQ(k64BitTestData, n);
121 #endif
122 }
OLDNEW
« no previous file with comments | « base/sys_byteorder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698