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

Side by Side Diff: third_party/crashpad/crashpad/util/misc/uuid_test.cc

Issue 2804713002: Update Crashpad to b4095401639ebe2ad33169e5c1d994065cbff1b8 (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 14 matching lines...) Expand all
25 #include "base/strings/stringprintf.h" 25 #include "base/strings/stringprintf.h"
26 #include "gtest/gtest.h" 26 #include "gtest/gtest.h"
27 27
28 namespace crashpad { 28 namespace crashpad {
29 namespace test { 29 namespace test {
30 namespace { 30 namespace {
31 31
32 TEST(UUID, UUID) { 32 TEST(UUID, UUID) {
33 UUID uuid_zero; 33 UUID uuid_zero;
34 uuid_zero.InitializeToZero(); 34 uuid_zero.InitializeToZero();
35 EXPECT_EQ(0u, uuid_zero.data_1); 35 EXPECT_EQ(uuid_zero.data_1, 0u);
36 EXPECT_EQ(0u, uuid_zero.data_2); 36 EXPECT_EQ(uuid_zero.data_2, 0u);
37 EXPECT_EQ(0u, uuid_zero.data_3); 37 EXPECT_EQ(uuid_zero.data_3, 0u);
38 EXPECT_EQ(0u, uuid_zero.data_4[0]); 38 EXPECT_EQ(uuid_zero.data_4[0], 0u);
39 EXPECT_EQ(0u, uuid_zero.data_4[1]); 39 EXPECT_EQ(uuid_zero.data_4[1], 0u);
40 EXPECT_EQ(0u, uuid_zero.data_5[0]); 40 EXPECT_EQ(uuid_zero.data_5[0], 0u);
41 EXPECT_EQ(0u, uuid_zero.data_5[1]); 41 EXPECT_EQ(uuid_zero.data_5[1], 0u);
42 EXPECT_EQ(0u, uuid_zero.data_5[2]); 42 EXPECT_EQ(uuid_zero.data_5[2], 0u);
43 EXPECT_EQ(0u, uuid_zero.data_5[3]); 43 EXPECT_EQ(uuid_zero.data_5[3], 0u);
44 EXPECT_EQ(0u, uuid_zero.data_5[4]); 44 EXPECT_EQ(uuid_zero.data_5[4], 0u);
45 EXPECT_EQ(0u, uuid_zero.data_5[5]); 45 EXPECT_EQ(uuid_zero.data_5[5], 0u);
46 EXPECT_EQ("00000000-0000-0000-0000-000000000000", uuid_zero.ToString()); 46 EXPECT_EQ(uuid_zero.ToString(), "00000000-0000-0000-0000-000000000000");
47 47
48 const uint8_t kBytes[16] = {0x00, 48 const uint8_t kBytes[16] = {0x00,
49 0x01, 49 0x01,
50 0x02, 50 0x02,
51 0x03, 51 0x03,
52 0x04, 52 0x04,
53 0x05, 53 0x05,
54 0x06, 54 0x06,
55 0x07, 55 0x07,
56 0x08, 56 0x08,
57 0x09, 57 0x09,
58 0x0a, 58 0x0a,
59 0x0b, 59 0x0b,
60 0x0c, 60 0x0c,
61 0x0d, 61 0x0d,
62 0x0e, 62 0x0e,
63 0x0f}; 63 0x0f};
64 UUID uuid; 64 UUID uuid;
65 uuid.InitializeFromBytes(kBytes); 65 uuid.InitializeFromBytes(kBytes);
66 EXPECT_EQ(0x00010203u, uuid.data_1); 66 EXPECT_EQ(uuid.data_1, 0x00010203u);
67 EXPECT_EQ(0x0405u, uuid.data_2); 67 EXPECT_EQ(uuid.data_2, 0x0405u);
68 EXPECT_EQ(0x0607u, uuid.data_3); 68 EXPECT_EQ(uuid.data_3, 0x0607u);
69 EXPECT_EQ(0x08u, uuid.data_4[0]); 69 EXPECT_EQ(uuid.data_4[0], 0x08u);
70 EXPECT_EQ(0x09u, uuid.data_4[1]); 70 EXPECT_EQ(uuid.data_4[1], 0x09u);
71 EXPECT_EQ(0x0au, uuid.data_5[0]); 71 EXPECT_EQ(uuid.data_5[0], 0x0au);
72 EXPECT_EQ(0x0bu, uuid.data_5[1]); 72 EXPECT_EQ(uuid.data_5[1], 0x0bu);
73 EXPECT_EQ(0x0cu, uuid.data_5[2]); 73 EXPECT_EQ(uuid.data_5[2], 0x0cu);
74 EXPECT_EQ(0x0du, uuid.data_5[3]); 74 EXPECT_EQ(uuid.data_5[3], 0x0du);
75 EXPECT_EQ(0x0eu, uuid.data_5[4]); 75 EXPECT_EQ(uuid.data_5[4], 0x0eu);
76 EXPECT_EQ(0x0fu, uuid.data_5[5]); 76 EXPECT_EQ(uuid.data_5[5], 0x0fu);
77 EXPECT_EQ("00010203-0405-0607-0809-0a0b0c0d0e0f", uuid.ToString()); 77 EXPECT_EQ(uuid.ToString(), "00010203-0405-0607-0809-0a0b0c0d0e0f");
78 78
79 // Test both operator== and operator!=. 79 // Test both operator== and operator!=.
80 EXPECT_FALSE(uuid == uuid_zero); 80 EXPECT_FALSE(uuid == uuid_zero);
81 EXPECT_NE(uuid, uuid_zero); 81 EXPECT_NE(uuid, uuid_zero);
82 82
83 UUID uuid_2; 83 UUID uuid_2;
84 uuid_2.InitializeFromBytes(kBytes); 84 uuid_2.InitializeFromBytes(kBytes);
85 EXPECT_EQ(uuid, uuid_2); 85 EXPECT_EQ(uuid_2, uuid);
86 EXPECT_FALSE(uuid != uuid_2); 86 EXPECT_FALSE(uuid != uuid_2);
87 87
88 // Make sure that operator== and operator!= check the entire UUID. 88 // Make sure that operator== and operator!= check the entire UUID.
89 ++uuid.data_1; 89 ++uuid.data_1;
90 EXPECT_NE(uuid, uuid_2); 90 EXPECT_NE(uuid, uuid_2);
91 --uuid.data_1; 91 --uuid.data_1;
92 ++uuid.data_2; 92 ++uuid.data_2;
93 EXPECT_NE(uuid, uuid_2); 93 EXPECT_NE(uuid, uuid_2);
94 --uuid.data_2; 94 --uuid.data_2;
95 ++uuid.data_3; 95 ++uuid.data_3;
96 EXPECT_NE(uuid, uuid_2); 96 EXPECT_NE(uuid, uuid_2);
97 --uuid.data_3; 97 --uuid.data_3;
98 for (size_t index = 0; index < arraysize(uuid.data_4); ++index) { 98 for (size_t index = 0; index < arraysize(uuid.data_4); ++index) {
99 ++uuid.data_4[index]; 99 ++uuid.data_4[index];
100 EXPECT_NE(uuid, uuid_2); 100 EXPECT_NE(uuid, uuid_2);
101 --uuid.data_4[index]; 101 --uuid.data_4[index];
102 } 102 }
103 for (size_t index = 0; index < arraysize(uuid.data_5); ++index) { 103 for (size_t index = 0; index < arraysize(uuid.data_5); ++index) {
104 ++uuid.data_5[index]; 104 ++uuid.data_5[index];
105 EXPECT_NE(uuid, uuid_2); 105 EXPECT_NE(uuid, uuid_2);
106 --uuid.data_5[index]; 106 --uuid.data_5[index];
107 } 107 }
108 108
109 // Make sure that the UUIDs are equal again, otherwise the test above may not 109 // Make sure that the UUIDs are equal again, otherwise the test above may not
110 // have been valid. 110 // have been valid.
111 EXPECT_EQ(uuid, uuid_2); 111 EXPECT_EQ(uuid_2, uuid);
112 112
113 const uint8_t kMoreBytes[16] = {0xff, 113 const uint8_t kMoreBytes[16] = {0xff,
114 0xee, 114 0xee,
115 0xdd, 115 0xdd,
116 0xcc, 116 0xcc,
117 0xbb, 117 0xbb,
118 0xaa, 118 0xaa,
119 0x99, 119 0x99,
120 0x88, 120 0x88,
121 0x77, 121 0x77,
122 0x66, 122 0x66,
123 0x55, 123 0x55,
124 0x44, 124 0x44,
125 0x33, 125 0x33,
126 0x22, 126 0x22,
127 0x11, 127 0x11,
128 0x00}; 128 0x00};
129 uuid.InitializeFromBytes(kMoreBytes); 129 uuid.InitializeFromBytes(kMoreBytes);
130 EXPECT_EQ(0xffeeddccu, uuid.data_1); 130 EXPECT_EQ(uuid.data_1, 0xffeeddccu);
131 EXPECT_EQ(0xbbaau, uuid.data_2); 131 EXPECT_EQ(uuid.data_2, 0xbbaau);
132 EXPECT_EQ(0x9988u, uuid.data_3); 132 EXPECT_EQ(uuid.data_3, 0x9988u);
133 EXPECT_EQ(0x77u, uuid.data_4[0]); 133 EXPECT_EQ(uuid.data_4[0], 0x77u);
134 EXPECT_EQ(0x66u, uuid.data_4[1]); 134 EXPECT_EQ(uuid.data_4[1], 0x66u);
135 EXPECT_EQ(0x55u, uuid.data_5[0]); 135 EXPECT_EQ(uuid.data_5[0], 0x55u);
136 EXPECT_EQ(0x44u, uuid.data_5[1]); 136 EXPECT_EQ(uuid.data_5[1], 0x44u);
137 EXPECT_EQ(0x33u, uuid.data_5[2]); 137 EXPECT_EQ(uuid.data_5[2], 0x33u);
138 EXPECT_EQ(0x22u, uuid.data_5[3]); 138 EXPECT_EQ(uuid.data_5[3], 0x22u);
139 EXPECT_EQ(0x11u, uuid.data_5[4]); 139 EXPECT_EQ(uuid.data_5[4], 0x11u);
140 EXPECT_EQ(0x00u, uuid.data_5[5]); 140 EXPECT_EQ(uuid.data_5[5], 0x00u);
141 EXPECT_EQ("ffeeddcc-bbaa-9988-7766-554433221100", uuid.ToString()); 141 EXPECT_EQ(uuid.ToString(), "ffeeddcc-bbaa-9988-7766-554433221100");
142 142
143 EXPECT_NE(uuid, uuid_2); 143 EXPECT_NE(uuid, uuid_2);
144 EXPECT_NE(uuid, uuid_zero); 144 EXPECT_NE(uuid, uuid_zero);
145 145
146 // Test that UUID is standard layout. 146 // Test that UUID is standard layout.
147 memset(&uuid, 0x45, 16); 147 memset(&uuid, 0x45, 16);
148 EXPECT_EQ(0x45454545u, uuid.data_1); 148 EXPECT_EQ(uuid.data_1, 0x45454545u);
149 EXPECT_EQ(0x4545u, uuid.data_2); 149 EXPECT_EQ(uuid.data_2, 0x4545u);
150 EXPECT_EQ(0x4545u, uuid.data_3); 150 EXPECT_EQ(uuid.data_3, 0x4545u);
151 EXPECT_EQ(0x45u, uuid.data_4[0]); 151 EXPECT_EQ(uuid.data_4[0], 0x45u);
152 EXPECT_EQ(0x45u, uuid.data_4[1]); 152 EXPECT_EQ(uuid.data_4[1], 0x45u);
153 EXPECT_EQ(0x45u, uuid.data_5[0]); 153 EXPECT_EQ(uuid.data_5[0], 0x45u);
154 EXPECT_EQ(0x45u, uuid.data_5[1]); 154 EXPECT_EQ(uuid.data_5[1], 0x45u);
155 EXPECT_EQ(0x45u, uuid.data_5[2]); 155 EXPECT_EQ(uuid.data_5[2], 0x45u);
156 EXPECT_EQ(0x45u, uuid.data_5[3]); 156 EXPECT_EQ(uuid.data_5[3], 0x45u);
157 EXPECT_EQ(0x45u, uuid.data_5[4]); 157 EXPECT_EQ(uuid.data_5[4], 0x45u);
158 EXPECT_EQ(0x45u, uuid.data_5[5]); 158 EXPECT_EQ(uuid.data_5[5], 0x45u);
159 EXPECT_EQ("45454545-4545-4545-4545-454545454545", uuid.ToString()); 159 EXPECT_EQ(uuid.ToString(), "45454545-4545-4545-4545-454545454545");
160 160
161 UUID initialized_generated; 161 UUID initialized_generated;
162 initialized_generated.InitializeWithNew(); 162 initialized_generated.InitializeWithNew();
163 EXPECT_NE(initialized_generated, uuid_zero); 163 EXPECT_NE(initialized_generated, uuid_zero);
164 } 164 }
165 165
166 TEST(UUID, FromString) { 166 TEST(UUID, FromString) {
167 const struct TestCase { 167 const struct TestCase {
168 const char* uuid_string; 168 const char* uuid_string;
169 bool success; 169 bool success;
(...skipping 20 matching lines...) Expand all
190 uuid_zero.InitializeToZero(); 190 uuid_zero.InitializeToZero();
191 const std::string empty_uuid = uuid_zero.ToString(); 191 const std::string empty_uuid = uuid_zero.ToString();
192 192
193 for (size_t index = 0; index < arraysize(kCases); ++index) { 193 for (size_t index = 0; index < arraysize(kCases); ++index) {
194 const TestCase& test_case = kCases[index]; 194 const TestCase& test_case = kCases[index];
195 SCOPED_TRACE(base::StringPrintf( 195 SCOPED_TRACE(base::StringPrintf(
196 "index %" PRIuS ": %s", index, test_case.uuid_string)); 196 "index %" PRIuS ": %s", index, test_case.uuid_string));
197 197
198 UUID uuid; 198 UUID uuid;
199 uuid.InitializeToZero(); 199 uuid.InitializeToZero();
200 EXPECT_EQ(test_case.success, 200 EXPECT_EQ(uuid.InitializeFromString(test_case.uuid_string),
201 uuid.InitializeFromString(test_case.uuid_string)); 201 test_case.success);
202 if (test_case.success) { 202 if (test_case.success) {
203 EXPECT_EQ(test_case.uuid_string, uuid.ToString()); 203 EXPECT_EQ(uuid.ToString(), test_case.uuid_string);
204 } else { 204 } else {
205 EXPECT_EQ(empty_uuid, uuid.ToString()); 205 EXPECT_EQ(uuid.ToString(), empty_uuid);
206 } 206 }
207 } 207 }
208 208
209 // Test for case insensitivty. 209 // Test for case insensitivty.
210 UUID uuid; 210 UUID uuid;
211 uuid.InitializeFromString("F32E5BDC-2681-4C73-A4E6-911FFD89B846"); 211 uuid.InitializeFromString("F32E5BDC-2681-4C73-A4E6-911FFD89B846");
212 EXPECT_EQ("f32e5bdc-2681-4c73-a4e6-911ffd89b846", uuid.ToString()); 212 EXPECT_EQ(uuid.ToString(), "f32e5bdc-2681-4c73-a4e6-911ffd89b846");
213 213
214 // Mixed case. 214 // Mixed case.
215 uuid.InitializeFromString("5762C15D-50b5-4171-a2e9-7429C9EC6CAB"); 215 uuid.InitializeFromString("5762C15D-50b5-4171-a2e9-7429C9EC6CAB");
216 EXPECT_EQ("5762c15d-50b5-4171-a2e9-7429c9ec6cab", uuid.ToString()); 216 EXPECT_EQ(uuid.ToString(), "5762c15d-50b5-4171-a2e9-7429c9ec6cab");
217 } 217 }
218 218
219 #if defined(OS_WIN) 219 #if defined(OS_WIN)
220 220
221 TEST(UUID, FromSystem) { 221 TEST(UUID, FromSystem) {
222 ::GUID system_uuid; 222 ::GUID system_uuid;
223 ASSERT_EQ(RPC_S_OK, UuidCreate(&system_uuid)); 223 ASSERT_EQ(UuidCreate(&system_uuid), RPC_S_OK);
224 224
225 UUID uuid; 225 UUID uuid;
226 uuid.InitializeFromSystemUUID(&system_uuid); 226 uuid.InitializeFromSystemUUID(&system_uuid);
227 227
228 RPC_WSTR system_string; 228 RPC_WSTR system_string;
229 ASSERT_EQ(RPC_S_OK, UuidToString(&system_uuid, &system_string)); 229 ASSERT_EQ(UuidToString(&system_uuid, &system_string), RPC_S_OK);
230 230
231 struct ScopedRpcStringFreeTraits { 231 struct ScopedRpcStringFreeTraits {
232 static RPC_WSTR* InvalidValue() { return nullptr; } 232 static RPC_WSTR* InvalidValue() { return nullptr; }
233 static void Free(RPC_WSTR* rpc_string) { 233 static void Free(RPC_WSTR* rpc_string) {
234 EXPECT_EQ(RPC_S_OK, RpcStringFree(rpc_string)); 234 EXPECT_EQ(RpcStringFree(rpc_string), RPC_S_OK);
235 } 235 }
236 }; 236 };
237 using ScopedRpcString = 237 using ScopedRpcString =
238 base::ScopedGeneric<RPC_WSTR*, ScopedRpcStringFreeTraits>; 238 base::ScopedGeneric<RPC_WSTR*, ScopedRpcStringFreeTraits>;
239 ScopedRpcString scoped_system_string(&system_string); 239 ScopedRpcString scoped_system_string(&system_string);
240 240
241 EXPECT_EQ(reinterpret_cast<wchar_t*>(system_string), uuid.ToString16()); 241 EXPECT_EQ(uuid.ToString16(), reinterpret_cast<wchar_t*>(system_string));
242 } 242 }
243 243
244 #endif // OS_WIN 244 #endif // OS_WIN
245 245
246 } // namespace 246 } // namespace
247 } // namespace test 247 } // namespace test
248 } // namespace crashpad 248 } // namespace crashpad
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698