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

Side by Side Diff: content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc

Issue 1549113002: Switch to standard integer types in content/browser/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 12 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/browser/indexed_db/indexed_db_leveldb_coding.h" 5 #include "content/browser/indexed_db/indexed_db_leveldb_coding.h"
6 6
7 #include <stddef.h>
8 #include <stdint.h>
9
7 #include <limits> 10 #include <limits>
8 #include <vector> 11 #include <vector>
9 12
10 #include "base/basictypes.h" 13 #include "base/macros.h"
11 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
12 #include "base/strings/string_piece.h" 15 #include "base/strings/string_piece.h"
13 #include "base/strings/utf_string_conversions.h" 16 #include "base/strings/utf_string_conversions.h"
14 #include "content/common/indexed_db/indexed_db_key.h" 17 #include "content/common/indexed_db/indexed_db_key.h"
15 #include "content/common/indexed_db/indexed_db_key_path.h" 18 #include "content/common/indexed_db/indexed_db_key_path.h"
16 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
17 20
18 using base::ASCIIToUTF16; 21 using base::ASCIIToUTF16;
19 using base::StringPiece; 22 using base::StringPiece;
20 using blink::WebIDBKeyTypeDate; 23 using blink::WebIDBKeyTypeDate;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 EncodeIDBKey(IndexedDBKey(1000000, WebIDBKeyTypeDate), &date_key); 165 EncodeIDBKey(IndexedDBKey(1000000, WebIDBKeyTypeDate), &date_key);
163 166
164 EXPECT_LT(CompareKeys(min_key, max_key), 0); 167 EXPECT_LT(CompareKeys(min_key, max_key), 0);
165 EXPECT_LT(CompareKeys(min_key, array_key), 0); 168 EXPECT_LT(CompareKeys(min_key, array_key), 0);
166 EXPECT_LT(CompareKeys(min_key, binary_key), 0); 169 EXPECT_LT(CompareKeys(min_key, binary_key), 0);
167 EXPECT_LT(CompareKeys(min_key, string_key), 0); 170 EXPECT_LT(CompareKeys(min_key, string_key), 0);
168 EXPECT_LT(CompareKeys(min_key, number_key), 0); 171 EXPECT_LT(CompareKeys(min_key, number_key), 0);
169 EXPECT_LT(CompareKeys(min_key, date_key), 0); 172 EXPECT_LT(CompareKeys(min_key, date_key), 0);
170 } 173 }
171 174
172 static std::string WrappedEncodeInt(int64 value) { 175 static std::string WrappedEncodeInt(int64_t value) {
173 std::string buffer; 176 std::string buffer;
174 EncodeInt(value, &buffer); 177 EncodeInt(value, &buffer);
175 return buffer; 178 return buffer;
176 } 179 }
177 180
178 TEST(IndexedDBLevelDBCodingTest, EncodeInt) { 181 TEST(IndexedDBLevelDBCodingTest, EncodeInt) {
179 EXPECT_EQ(1u, WrappedEncodeInt(0).size()); 182 EXPECT_EQ(1u, WrappedEncodeInt(0).size());
180 EXPECT_EQ(1u, WrappedEncodeInt(1).size()); 183 EXPECT_EQ(1u, WrappedEncodeInt(1).size());
181 EXPECT_EQ(1u, WrappedEncodeInt(255).size()); 184 EXPECT_EQ(1u, WrappedEncodeInt(255).size());
182 EXPECT_EQ(2u, WrappedEncodeInt(256).size()); 185 EXPECT_EQ(2u, WrappedEncodeInt(256).size());
(...skipping 23 matching lines...) Expand all
206 EXPECT_TRUE(slice.empty()); 209 EXPECT_TRUE(slice.empty());
207 } 210 }
208 { 211 {
209 StringPiece slice; 212 StringPiece slice;
210 bool value; 213 bool value;
211 EXPECT_FALSE(DecodeBool(&slice, &value)); 214 EXPECT_FALSE(DecodeBool(&slice, &value));
212 } 215 }
213 } 216 }
214 217
215 TEST(IndexedDBLevelDBCodingTest, DecodeInt) { 218 TEST(IndexedDBLevelDBCodingTest, DecodeInt) {
216 std::vector<int64> test_cases; 219 std::vector<int64_t> test_cases;
217 test_cases.push_back(0); 220 test_cases.push_back(0);
218 test_cases.push_back(1); 221 test_cases.push_back(1);
219 test_cases.push_back(255); 222 test_cases.push_back(255);
220 test_cases.push_back(256); 223 test_cases.push_back(256);
221 test_cases.push_back(65535); 224 test_cases.push_back(65535);
222 test_cases.push_back(655536); 225 test_cases.push_back(655536);
223 test_cases.push_back(7711192431755665792ll); 226 test_cases.push_back(7711192431755665792ll);
224 test_cases.push_back(0x7fffffffffffffffll); 227 test_cases.push_back(0x7fffffffffffffffll);
225 #ifdef NDEBUG 228 #ifdef NDEBUG
226 test_cases.push_back(-3); 229 test_cases.push_back(-3);
227 #endif 230 #endif
228 231
229 for (size_t i = 0; i < test_cases.size(); ++i) { 232 for (size_t i = 0; i < test_cases.size(); ++i) {
230 int64 n = test_cases[i]; 233 int64_t n = test_cases[i];
231 std::string v = WrappedEncodeInt(n); 234 std::string v = WrappedEncodeInt(n);
232 ASSERT_GT(v.size(), 0u); 235 ASSERT_GT(v.size(), 0u);
233 StringPiece slice(v); 236 StringPiece slice(v);
234 int64 value; 237 int64_t value;
235 EXPECT_TRUE(DecodeInt(&slice, &value)); 238 EXPECT_TRUE(DecodeInt(&slice, &value));
236 EXPECT_EQ(n, value); 239 EXPECT_EQ(n, value);
237 EXPECT_TRUE(slice.empty()); 240 EXPECT_TRUE(slice.empty());
238 241
239 // Verify decoding at an offset, to detect unaligned memory access. 242 // Verify decoding at an offset, to detect unaligned memory access.
240 v.insert(v.begin(), 1u, static_cast<char>(0)); 243 v.insert(v.begin(), 1u, static_cast<char>(0));
241 slice = StringPiece(&*v.begin() + 1, v.size() - 1); 244 slice = StringPiece(&*v.begin() + 1, v.size() - 1);
242 EXPECT_TRUE(DecodeInt(&slice, &value)); 245 EXPECT_TRUE(DecodeInt(&slice, &value));
243 EXPECT_EQ(n, value); 246 EXPECT_EQ(n, value);
244 EXPECT_TRUE(slice.empty()); 247 EXPECT_TRUE(slice.empty());
245 } 248 }
246 { 249 {
247 StringPiece slice; 250 StringPiece slice;
248 int64 value; 251 int64_t value;
249 EXPECT_FALSE(DecodeInt(&slice, &value)); 252 EXPECT_FALSE(DecodeInt(&slice, &value));
250 } 253 }
251 } 254 }
252 255
253 static std::string WrappedEncodeVarInt(int64 value) { 256 static std::string WrappedEncodeVarInt(int64_t value) {
254 std::string buffer; 257 std::string buffer;
255 EncodeVarInt(value, &buffer); 258 EncodeVarInt(value, &buffer);
256 return buffer; 259 return buffer;
257 } 260 }
258 261
259 TEST(IndexedDBLevelDBCodingTest, EncodeVarInt) { 262 TEST(IndexedDBLevelDBCodingTest, EncodeVarInt) {
260 EXPECT_EQ(1u, WrappedEncodeVarInt(0).size()); 263 EXPECT_EQ(1u, WrappedEncodeVarInt(0).size());
261 EXPECT_EQ(1u, WrappedEncodeVarInt(1).size()); 264 EXPECT_EQ(1u, WrappedEncodeVarInt(1).size());
262 EXPECT_EQ(2u, WrappedEncodeVarInt(255).size()); 265 EXPECT_EQ(2u, WrappedEncodeVarInt(255).size());
263 EXPECT_EQ(2u, WrappedEncodeVarInt(256).size()); 266 EXPECT_EQ(2u, WrappedEncodeVarInt(256).size());
264 EXPECT_EQ(5u, WrappedEncodeVarInt(0xffffffff).size()); 267 EXPECT_EQ(5u, WrappedEncodeVarInt(0xffffffff).size());
265 EXPECT_EQ(8u, WrappedEncodeVarInt(0xfffffffffffffLL).size()); 268 EXPECT_EQ(8u, WrappedEncodeVarInt(0xfffffffffffffLL).size());
266 EXPECT_EQ(9u, WrappedEncodeVarInt(0x7fffffffffffffffLL).size()); 269 EXPECT_EQ(9u, WrappedEncodeVarInt(0x7fffffffffffffffLL).size());
267 #ifdef NDEBUG 270 #ifdef NDEBUG
268 EXPECT_EQ(10u, WrappedEncodeVarInt(-100).size()); 271 EXPECT_EQ(10u, WrappedEncodeVarInt(-100).size());
269 #endif 272 #endif
270 } 273 }
271 274
272 TEST(IndexedDBLevelDBCodingTest, DecodeVarInt) { 275 TEST(IndexedDBLevelDBCodingTest, DecodeVarInt) {
273 std::vector<int64> test_cases; 276 std::vector<int64_t> test_cases;
274 test_cases.push_back(0); 277 test_cases.push_back(0);
275 test_cases.push_back(1); 278 test_cases.push_back(1);
276 test_cases.push_back(255); 279 test_cases.push_back(255);
277 test_cases.push_back(256); 280 test_cases.push_back(256);
278 test_cases.push_back(65535); 281 test_cases.push_back(65535);
279 test_cases.push_back(655536); 282 test_cases.push_back(655536);
280 test_cases.push_back(7711192431755665792ll); 283 test_cases.push_back(7711192431755665792ll);
281 test_cases.push_back(0x7fffffffffffffffll); 284 test_cases.push_back(0x7fffffffffffffffll);
282 #ifdef NDEBUG 285 #ifdef NDEBUG
283 test_cases.push_back(-3); 286 test_cases.push_back(-3);
284 #endif 287 #endif
285 288
286 for (size_t i = 0; i < test_cases.size(); ++i) { 289 for (size_t i = 0; i < test_cases.size(); ++i) {
287 int64 n = test_cases[i]; 290 int64_t n = test_cases[i];
288 std::string v = WrappedEncodeVarInt(n); 291 std::string v = WrappedEncodeVarInt(n);
289 ASSERT_GT(v.size(), 0u); 292 ASSERT_GT(v.size(), 0u);
290 StringPiece slice(v); 293 StringPiece slice(v);
291 int64 res; 294 int64_t res;
292 EXPECT_TRUE(DecodeVarInt(&slice, &res)); 295 EXPECT_TRUE(DecodeVarInt(&slice, &res));
293 EXPECT_EQ(n, res); 296 EXPECT_EQ(n, res);
294 EXPECT_TRUE(slice.empty()); 297 EXPECT_TRUE(slice.empty());
295 298
296 slice = StringPiece(&*v.begin(), v.size() - 1); 299 slice = StringPiece(&*v.begin(), v.size() - 1);
297 EXPECT_FALSE(DecodeVarInt(&slice, &res)); 300 EXPECT_FALSE(DecodeVarInt(&slice, &res));
298 301
299 slice = StringPiece(&*v.begin(), static_cast<size_t>(0)); 302 slice = StringPiece(&*v.begin(), static_cast<size_t>(0));
300 EXPECT_FALSE(DecodeVarInt(&slice, &res)); 303 EXPECT_FALSE(DecodeVarInt(&slice, &res));
301 304
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
942 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MinIDBKey(), 0)); 945 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MinIDBKey(), 0));
943 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MinIDBKey(), 1)); 946 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MinIDBKey(), 1));
944 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MaxIDBKey(), 0)); 947 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MaxIDBKey(), 0));
945 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MaxIDBKey(), 1)); 948 keys.push_back(IndexDataKey::Encode(1, 1, 30, MinIDBKey(), MaxIDBKey(), 1));
946 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MinIDBKey(), 0)); 949 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MinIDBKey(), 0));
947 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MinIDBKey(), 1)); 950 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MinIDBKey(), 1));
948 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MaxIDBKey(), 0)); 951 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MaxIDBKey(), 0));
949 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MaxIDBKey(), 1)); 952 keys.push_back(IndexDataKey::Encode(1, 1, 30, MaxIDBKey(), MaxIDBKey(), 1));
950 keys.push_back(IndexDataKey::Encode(1, 1, 31, MinIDBKey(), MinIDBKey(), 0)); 953 keys.push_back(IndexDataKey::Encode(1, 1, 31, MinIDBKey(), MinIDBKey(), 0));
951 keys.push_back(IndexDataKey::Encode(1, 2, 30, MinIDBKey(), MinIDBKey(), 0)); 954 keys.push_back(IndexDataKey::Encode(1, 2, 30, MinIDBKey(), MinIDBKey(), 0));
952 keys.push_back( 955 keys.push_back(IndexDataKey::EncodeMaxKey(
953 IndexDataKey::EncodeMaxKey(1, 2, std::numeric_limits<int32>::max() - 1)); 956 1, 2, std::numeric_limits<int32_t>::max() - 1));
954 957
955 for (size_t i = 0; i < keys.size(); ++i) { 958 for (size_t i = 0; i < keys.size(); ++i) {
956 EXPECT_EQ(Compare(keys[i], keys[i], false), 0); 959 EXPECT_EQ(Compare(keys[i], keys[i], false), 0);
957 960
958 for (size_t j = i + 1; j < keys.size(); ++j) { 961 for (size_t j = i + 1; j < keys.size(); ++j) {
959 EXPECT_LT(Compare(keys[i], keys[j], false), 0); 962 EXPECT_LT(Compare(keys[i], keys[j], false), 0);
960 EXPECT_GT(Compare(keys[j], keys[i], false), 0); 963 EXPECT_GT(Compare(keys[j], keys[i], false), 0);
961 } 964 }
962 } 965 }
963 } 966 }
964 967
965 TEST(IndexedDBLevelDBCodingTest, EncodeVarIntVSEncodeByteTest) { 968 TEST(IndexedDBLevelDBCodingTest, EncodeVarIntVSEncodeByteTest) {
966 std::vector<unsigned char> test_cases; 969 std::vector<unsigned char> test_cases;
967 test_cases.push_back(0); 970 test_cases.push_back(0);
968 test_cases.push_back(1); 971 test_cases.push_back(1);
969 test_cases.push_back(127); 972 test_cases.push_back(127);
970 973
971 for (size_t i = 0; i < test_cases.size(); ++i) { 974 for (size_t i = 0; i < test_cases.size(); ++i) {
972 unsigned char n = test_cases[i]; 975 unsigned char n = test_cases[i];
973 976
974 std::string a = WrappedEncodeByte(n); 977 std::string a = WrappedEncodeByte(n);
975 std::string b = WrappedEncodeVarInt(static_cast<int64>(n)); 978 std::string b = WrappedEncodeVarInt(static_cast<int64_t>(n));
976 979
977 EXPECT_EQ(a.size(), b.size()); 980 EXPECT_EQ(a.size(), b.size());
978 EXPECT_EQ(*a.begin(), *b.begin()); 981 EXPECT_EQ(*a.begin(), *b.begin());
979 } 982 }
980 } 983 }
981 984
982 } // namespace 985 } // namespace
983 986
984 } // namespace content 987 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/indexed_db/indexed_db_leveldb_coding.cc ('k') | content/browser/indexed_db/indexed_db_metadata.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698