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

Side by Side Diff: components/sync/base/ordinal_unittest.cc

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 4 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 | « components/sync/base/ordinal.h ('k') | components/sync/base/progress_marker_map.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "sync/internal_api/public/base/ordinal.h" 5 #include "components/sync/base/ordinal.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cctype> 10 #include <cctype>
11 #include <cstddef> 11 #include <cstddef>
12 #include <string> 12 #include <string>
13 #include <vector> 13 #include <vector>
14 14
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 19 matching lines...) Expand all
35 static const uint8_t kMaxDigit = UINT8_MAX; 35 static const uint8_t kMaxDigit = UINT8_MAX;
36 static const size_t kMinLength = 1; 36 static const size_t kMinLength = 1;
37 }; 37 };
38 38
39 typedef Ordinal<TestOrdinalTraits> TestOrdinal; 39 typedef Ordinal<TestOrdinalTraits> TestOrdinal;
40 typedef Ordinal<LongOrdinalTraits> LongOrdinal; 40 typedef Ordinal<LongOrdinalTraits> LongOrdinal;
41 typedef Ordinal<LargeOrdinalTraits> LargeOrdinal; 41 typedef Ordinal<LargeOrdinalTraits> LargeOrdinal;
42 42
43 static_assert(TestOrdinal::kZeroDigit == '0', 43 static_assert(TestOrdinal::kZeroDigit == '0',
44 "incorrect TestOrdinal zero digit"); 44 "incorrect TestOrdinal zero digit");
45 static_assert(TestOrdinal::kOneDigit == '1', 45 static_assert(TestOrdinal::kOneDigit == '1', "incorrect TestOrdinal one digit");
46 "incorrect TestOrdinal one digit"); 46 static_assert(TestOrdinal::kMidDigit == '2', "incorrect TestOrdinal min digit");
47 static_assert(TestOrdinal::kMidDigit == '2', 47 static_assert(TestOrdinal::kMaxDigit == '3', "incorrect TestOrdinal max digit");
48 "incorrect TestOrdinal min digit");
49 static_assert(TestOrdinal::kMaxDigit == '3',
50 "incorrect TestOrdinal max digit");
51 static_assert(TestOrdinal::kMidDigitValue == 2, 48 static_assert(TestOrdinal::kMidDigitValue == 2,
52 "incorrect TestOrdinal mid digit value"); 49 "incorrect TestOrdinal mid digit value");
53 static_assert(TestOrdinal::kMaxDigitValue == 3, 50 static_assert(TestOrdinal::kMaxDigitValue == 3,
54 "incorrect TestOrdinal max digit value"); 51 "incorrect TestOrdinal max digit value");
55 static_assert(TestOrdinal::kRadix == 4, 52 static_assert(TestOrdinal::kRadix == 4, "incorrect TestOrdinal radix");
56 "incorrect TestOrdinal radix");
57 53
58 static_assert(LongOrdinal::kZeroDigit == '0', 54 static_assert(LongOrdinal::kZeroDigit == '0',
59 "incorrect LongOrdinal zero digit"); 55 "incorrect LongOrdinal zero digit");
60 static_assert(LongOrdinal::kOneDigit == '1', 56 static_assert(LongOrdinal::kOneDigit == '1', "incorrect LongOrdinal one digit");
61 "incorrect LongOrdinal one digit"); 57 static_assert(LongOrdinal::kMidDigit == '5', "incorrect LongOrdinal mid digit");
62 static_assert(LongOrdinal::kMidDigit == '5', 58 static_assert(LongOrdinal::kMaxDigit == '9', "incorrect LongOrdinal max digit");
63 "incorrect LongOrdinal mid digit");
64 static_assert(LongOrdinal::kMaxDigit == '9',
65 "incorrect LongOrdinal max digit");
66 static_assert(LongOrdinal::kMidDigitValue == 5, 59 static_assert(LongOrdinal::kMidDigitValue == 5,
67 "incorrect LongOrdinal mid digit value"); 60 "incorrect LongOrdinal mid digit value");
68 static_assert(LongOrdinal::kMaxDigitValue == 9, 61 static_assert(LongOrdinal::kMaxDigitValue == 9,
69 "incorrect LongOrdinal max digit value"); 62 "incorrect LongOrdinal max digit value");
70 static_assert(LongOrdinal::kRadix == 10, 63 static_assert(LongOrdinal::kRadix == 10, "incorrect LongOrdinal radix");
71 "incorrect LongOrdinal radix");
72 64
73 static_assert(static_cast<char>(LargeOrdinal::kZeroDigit) == '\x00', 65 static_assert(static_cast<char>(LargeOrdinal::kZeroDigit) == '\x00',
74 "incorrect LargeOrdinal zero digit"); 66 "incorrect LargeOrdinal zero digit");
75 static_assert(static_cast<char>(LargeOrdinal::kOneDigit) == '\x01', 67 static_assert(static_cast<char>(LargeOrdinal::kOneDigit) == '\x01',
76 "incorrect LargeOrdinal one digit"); 68 "incorrect LargeOrdinal one digit");
77 static_assert(static_cast<char>(LargeOrdinal::kMidDigit) == '\x80', 69 static_assert(static_cast<char>(LargeOrdinal::kMidDigit) == '\x80',
78 "incorrect LargeOrdinal mid digit"); 70 "incorrect LargeOrdinal mid digit");
79 static_assert(static_cast<char>(LargeOrdinal::kMaxDigit) == '\xff', 71 static_assert(static_cast<char>(LargeOrdinal::kMaxDigit) == '\xff',
80 "incorrect LargeOrdinal max digit"); 72 "incorrect LargeOrdinal max digit");
81 static_assert(LargeOrdinal::kMidDigitValue == 128, 73 static_assert(LargeOrdinal::kMidDigitValue == 128,
82 "incorrect LargeOrdinal mid digit value"); 74 "incorrect LargeOrdinal mid digit value");
83 static_assert(LargeOrdinal::kMaxDigitValue == 255, 75 static_assert(LargeOrdinal::kMaxDigitValue == 255,
84 "incorrect LargeOrdinal max digit value"); 76 "incorrect LargeOrdinal max digit value");
85 static_assert(LargeOrdinal::kRadix == 256, 77 static_assert(LargeOrdinal::kRadix == 256, "incorrect LargeOrdinal radix");
86 "incorrect LargeOrdinal radix");
87 78
88 // Create Ordinals that satisfy all but one criterion for validity. 79 // Create Ordinals that satisfy all but one criterion for validity.
89 // IsValid() should return false for all of them. 80 // IsValid() should return false for all of them.
90 TEST(Ordinal, Invalid) { 81 TEST(Ordinal, Invalid) {
91 // Length criterion. 82 // Length criterion.
92 EXPECT_FALSE(TestOrdinal(std::string()).IsValid()); 83 EXPECT_FALSE(TestOrdinal(std::string()).IsValid());
93 EXPECT_FALSE(LongOrdinal("0001").IsValid()); 84 EXPECT_FALSE(LongOrdinal("0001").IsValid());
94 85
95 const char kBeforeZero[] = { '0' - 1, '\0' }; 86 const char kBeforeZero[] = {'0' - 1, '\0'};
96 const char kAfterNine[] = { '9' + 1, '\0' }; 87 const char kAfterNine[] = {'9' + 1, '\0'};
97 88
98 // Character criterion. 89 // Character criterion.
99 EXPECT_FALSE(TestOrdinal(kBeforeZero).IsValid()); 90 EXPECT_FALSE(TestOrdinal(kBeforeZero).IsValid());
100 EXPECT_FALSE(TestOrdinal("4").IsValid()); 91 EXPECT_FALSE(TestOrdinal("4").IsValid());
101 EXPECT_FALSE(LongOrdinal(std::string("0000") + kBeforeZero).IsValid()); 92 EXPECT_FALSE(LongOrdinal(std::string("0000") + kBeforeZero).IsValid());
102 EXPECT_FALSE(LongOrdinal(std::string("0000") + kAfterNine).IsValid()); 93 EXPECT_FALSE(LongOrdinal(std::string("0000") + kAfterNine).IsValid());
103 94
104 // Zero criterion. 95 // Zero criterion.
105 EXPECT_FALSE(TestOrdinal("0").IsValid()); 96 EXPECT_FALSE(TestOrdinal("0").IsValid());
106 EXPECT_FALSE(TestOrdinal("00000").IsValid()); 97 EXPECT_FALSE(TestOrdinal("00000").IsValid());
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 for (size_t i = 0; i < str.length(); ++i) { 209 for (size_t i = 0; i < str.length(); ++i) {
219 if (!isprint(str[i])) 210 if (!isprint(str[i]))
220 return false; 211 return false;
221 } 212 }
222 return true; 213 return true;
223 } 214 }
224 215
225 // Create some invalid/valid ordinals. ToDebugString() should always 216 // Create some invalid/valid ordinals. ToDebugString() should always
226 // return a non-empty printable string. 217 // return a non-empty printable string.
227 TEST(OrdinalTest, ToDebugString) { 218 TEST(OrdinalTest, ToDebugString) {
228 EXPECT_TRUE( 219 EXPECT_TRUE(IsNonEmptyPrintableString(TestOrdinal().ToDebugString()));
229 IsNonEmptyPrintableString(TestOrdinal().ToDebugString()));
230 EXPECT_TRUE( 220 EXPECT_TRUE(
231 IsNonEmptyPrintableString(TestOrdinal("invalid string").ToDebugString())); 221 IsNonEmptyPrintableString(TestOrdinal("invalid string").ToDebugString()));
232 EXPECT_TRUE( 222 EXPECT_TRUE(IsNonEmptyPrintableString(TestOrdinal("2").ToDebugString()));
233 IsNonEmptyPrintableString(TestOrdinal("2").ToDebugString())); 223 EXPECT_TRUE(IsNonEmptyPrintableString(LongOrdinal("12345").ToDebugString()));
234 EXPECT_TRUE(
235 IsNonEmptyPrintableString(LongOrdinal("12345").ToDebugString()));
236 EXPECT_TRUE( 224 EXPECT_TRUE(
237 IsNonEmptyPrintableString(LargeOrdinal("\1\2\3\4\5").ToDebugString())); 225 IsNonEmptyPrintableString(LargeOrdinal("\1\2\3\4\5").ToDebugString()));
238 } 226 }
239 227
240 // Create three Ordinals in order. LessThanFn should return values 228 // Create three Ordinals in order. LessThanFn should return values
241 // consistent with that order. 229 // consistent with that order.
242 TEST(Ordinal, LessThanFn) { 230 TEST(Ordinal, LessThanFn) {
243 const TestOrdinal small_ordinal("1"); 231 const TestOrdinal small_ordinal("1");
244 const TestOrdinal middle_ordinal("2"); 232 const TestOrdinal middle_ordinal("2");
245 const TestOrdinal big_ordinal("3"); 233 const TestOrdinal big_ordinal("3");
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 std::vector<LongOrdinal> ordinals = sorted_ordinals; 357 std::vector<LongOrdinal> ordinals = sorted_ordinals;
370 std::random_shuffle(ordinals.begin(), ordinals.end()); 358 std::random_shuffle(ordinals.begin(), ordinals.end());
371 std::sort(ordinals.begin(), ordinals.end(), LongOrdinal::LessThanFn()); 359 std::sort(ordinals.begin(), ordinals.end(), LongOrdinal::LessThanFn());
372 EXPECT_TRUE(std::equal(ordinals.begin(), ordinals.end(), 360 EXPECT_TRUE(std::equal(ordinals.begin(), ordinals.end(),
373 sorted_ordinals.begin(), LongOrdinal::EqualsFn())); 361 sorted_ordinals.begin(), LongOrdinal::EqualsFn()));
374 } 362 }
375 363
376 } // namespace 364 } // namespace
377 365
378 } // namespace syncer 366 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/base/ordinal.h ('k') | components/sync/base/progress_marker_map.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698