Index: util/numeric/int128_test.cc |
diff --git a/util/numeric/int128_test.cc b/util/numeric/int128_test.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a9f5448bde49e5c09cd4eaddfb4e6c657819210b |
--- /dev/null |
+++ b/util/numeric/int128_test.cc |
@@ -0,0 +1,42 @@ |
+// Copyright 2014 The Crashpad Authors. All rights reserved. |
+// |
+// Licensed under the Apache License, Version 2.0 (the "License"); |
+// you may not use this file except in compliance with the License. |
+// You may obtain a copy of the License at |
+// |
+// http://www.apache.org/licenses/LICENSE-2.0 |
+// |
+// Unless required by applicable law or agreed to in writing, software |
+// distributed under the License is distributed on an "AS IS" BASIS, |
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+// See the License for the specific language governing permissions and |
+// limitations under the License. |
+ |
+#include "util/numeric/int128.h" |
+ |
+#include "base/basictypes.h" |
+#include "gtest/gtest.h" |
+ |
+namespace { |
+ |
+using namespace crashpad; |
+ |
+TEST(Int128, UInt128) { |
+#if defined(ARCH_CPU_LITTLE_ENDIAN) |
+ const uint8_t kBytes[] = |
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; |
+#else |
+ const uint8_t kBytes[] = |
+ {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; |
+#endif |
+ |
+ uint128_struct uint128; |
+ COMPILE_ASSERT(sizeof(uint128) == sizeof(kBytes), sizes_must_be_equal); |
Robert Sesek
2014/09/22 19:02:14
Maybe also something simpler: COMPILE_ASSERT(8 * s
Mark Mentovai
2014/09/22 19:41:20
rsesek wrote:
Robert Sesek
2014/09/22 19:46:12
I meant "in addition to".
|
+ |
+ uint128 = bit_cast<uint128_struct>(kBytes); |
+ |
+ EXPECT_EQ(0x0706050403020100u, uint128.lo); |
+ EXPECT_EQ(0x0f0e0d0c0b0a0908u, uint128.hi); |
+} |
+ |
+} // namespace |