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

Side by Side Diff: third_party/WebKit/Source/platform/fonts/ScriptRunIteratorTest.cpp

Issue 2807913002: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in platform/fonts (Closed)
Patch Set: rebase 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "platform/fonts/ScriptRunIterator.h" 5 #include "platform/fonts/ScriptRunIterator.h"
6 6
7 #include <string> 7 #include <string>
8 #include "platform/wtf/Assertions.h" 8 #include "platform/wtf/Assertions.h"
9 #include "platform/wtf/Threading.h" 9 #include "platform/wtf/Threading.h"
10 #include "platform/wtf/text/WTFString.h" 10 #include "platform/wtf/text/WTFString.h"
(...skipping 19 matching lines...) Expand all
30 ~MockScriptData() override {} 30 ~MockScriptData() override {}
31 31
32 static const MockScriptData* Instance() { 32 static const MockScriptData* Instance() {
33 DEFINE_THREAD_SAFE_STATIC_LOCAL(const MockScriptData, mock_script_data, 33 DEFINE_THREAD_SAFE_STATIC_LOCAL(const MockScriptData, mock_script_data,
34 (new MockScriptData())); 34 (new MockScriptData()));
35 35
36 return &mock_script_data; 36 return &mock_script_data;
37 } 37 }
38 38
39 void GetScripts(UChar32 ch, Vector<UScriptCode>& dst) const override { 39 void GetScripts(UChar32 ch, Vector<UScriptCode>& dst) const override {
40 ASSERT(ch >= kMockCharMin); 40 DCHECK_GE(ch, kMockCharMin);
41 ASSERT(ch < kMockCharLimit); 41 DCHECK_LT(ch, kMockCharLimit);
42 42
43 int code = ch - kMockCharMin; 43 int code = ch - kMockCharMin;
44 dst.Clear(); 44 dst.Clear();
45 switch (code & kCodeSpecialMask) { 45 switch (code & kCodeSpecialMask) {
46 case kCodeSpecialCommon: 46 case kCodeSpecialCommon:
47 dst.push_back(USCRIPT_COMMON); 47 dst.push_back(USCRIPT_COMMON);
48 break; 48 break;
49 case kCodeSpecialInherited: 49 case kCodeSpecialInherited:
50 dst.push_back(USCRIPT_INHERITED); 50 dst.push_back(USCRIPT_INHERITED);
51 break; 51 break;
(...skipping 28 matching lines...) Expand all
80 case PairedBracketType::kBracketTypeClose: 80 case PairedBracketType::kBracketTypeClose:
81 return ch - kBracketDelta; 81 return ch - kBracketDelta;
82 case PairedBracketType::kBracketTypeOpen: 82 case PairedBracketType::kBracketTypeOpen:
83 return ch + kBracketDelta; 83 return ch + kBracketDelta;
84 default: 84 default:
85 return ch; 85 return ch;
86 } 86 }
87 } 87 }
88 88
89 PairedBracketType GetPairedBracketType(UChar32 ch) const override { 89 PairedBracketType GetPairedBracketType(UChar32 ch) const override {
90 ASSERT(ch >= kMockCharMin && ch < kMockCharLimit); 90 DCHECK_GE(ch, kMockCharMin);
91 DCHECK_LT(ch, kMockCharLimit);
91 int code = ch - kMockCharMin; 92 int code = ch - kMockCharMin;
92 if ((code & kCodeBracketBit) == 0) { 93 if ((code & kCodeBracketBit) == 0) {
93 return PairedBracketType::kBracketTypeNone; 94 return PairedBracketType::kBracketTypeNone;
94 } 95 }
95 if (code & kCodeBracketCloseBit) { 96 if (code & kCodeBracketCloseBit) {
96 return PairedBracketType::kBracketTypeClose; 97 return PairedBracketType::kBracketTypeClose;
97 } 98 }
98 return PairedBracketType::kBracketTypeOpen; 99 return PairedBracketType::kBracketTypeOpen;
99 } 100 }
100 101
(...skipping 11 matching lines...) Expand all
112 String result(g_empty_string16_bit); 113 String result(g_empty_string16_bit);
113 bool in_set = false; 114 bool in_set = false;
114 int seen = 0; 115 int seen = 0;
115 int code = 0; 116 int code = 0;
116 int list = 0; 117 int list = 0;
117 int current_shift = 0; 118 int current_shift = 0;
118 for (char c : input) { 119 for (char c : input) {
119 if (in_set) { 120 if (in_set) {
120 switch (c) { 121 switch (c) {
121 case '(': 122 case '(':
122 ASSERT(seen == 0); 123 DCHECK_EQ(seen, 0);
123 seen |= kSawBracket; 124 seen |= kSawBracket;
124 code |= kCodeBracketBit; 125 code |= kCodeBracketBit;
125 break; 126 break;
126 case '[': 127 case '[':
127 ASSERT(seen == 0); 128 DCHECK_EQ(seen, 0);
128 seen |= kSawBracket; 129 seen |= kSawBracket;
129 code |= kCodeBracketBit | kCodeSquareBracketBit; 130 code |= kCodeBracketBit | kCodeSquareBracketBit;
130 break; 131 break;
131 case ')': 132 case ')':
132 ASSERT(seen == 0); 133 DCHECK_EQ(seen, 0);
133 seen |= kSawBracket; 134 seen |= kSawBracket;
134 code |= kCodeBracketBit | kCodeBracketCloseBit; 135 code |= kCodeBracketBit | kCodeBracketCloseBit;
135 break; 136 break;
136 case ']': 137 case ']':
137 ASSERT(seen == 0); 138 DCHECK_EQ(seen, 0);
138 seen |= kSawBracket; 139 seen |= kSawBracket;
139 code |= 140 code |=
140 kCodeBracketBit | kCodeSquareBracketBit | kCodeBracketCloseBit; 141 kCodeBracketBit | kCodeSquareBracketBit | kCodeBracketCloseBit;
141 break; 142 break;
142 case 'i': 143 case 'i':
143 ASSERT(seen == 0); // brackets can't be inherited 144 DCHECK_EQ(seen, 0); // brackets can't be inherited
144 seen |= kSawSpecial; 145 seen |= kSawSpecial;
145 code |= kCodeSpecialInherited; 146 code |= kCodeSpecialInherited;
146 break; 147 break;
147 case 'c': 148 case 'c':
148 ASSERT((seen & ~kSawBracket) == 0); 149 DCHECK_EQ((seen & ~kSawBracket), 0);
149 seen |= kSawSpecial; 150 seen |= kSawSpecial;
150 code |= kCodeSpecialCommon; 151 code |= kCodeSpecialCommon;
151 break; 152 break;
152 case 'l': 153 case 'l':
153 ASSERT((seen & kSawLatin) == 0); 154 DCHECK_EQ((seen & kSawLatin), 0);
154 ASSERT(current_shift < 3); 155 DCHECK_LT(current_shift, 3);
155 seen |= kSawLatin; 156 seen |= kSawLatin;
156 list |= kLatin << (2 * current_shift++); 157 list |= kLatin << (2 * current_shift++);
157 break; 158 break;
158 case 'h': 159 case 'h':
159 ASSERT((seen & kSawHan) == 0); 160 DCHECK_EQ((seen & kSawHan), 0);
160 ASSERT(current_shift < 3); 161 DCHECK_LT(current_shift, 3);
161 seen |= kSawHan; 162 seen |= kSawHan;
162 list |= kHan << (2 * current_shift++); 163 list |= kHan << (2 * current_shift++);
163 break; 164 break;
164 case 'g': 165 case 'g':
165 ASSERT((seen & kSawGreek) == 0); 166 DCHECK_EQ((seen & kSawGreek), 0);
166 ASSERT(current_shift < 3); 167 DCHECK_LT(current_shift, 3);
167 seen |= kSawGreek; 168 seen |= kSawGreek;
168 list |= kGreek << (2 * current_shift++); 169 list |= kGreek << (2 * current_shift++);
169 break; 170 break;
170 case '>': 171 case '>':
171 ASSERT(seen != 0); 172 DCHECK_NE(seen, 0);
172 code |= TableLookup(list); 173 code |= TableLookup(list);
173 result.Append(static_cast<UChar>(kMockCharMin + code)); 174 result.Append(static_cast<UChar>(kMockCharMin + code));
174 in_set = false; 175 in_set = false;
175 break; 176 break;
176 default: 177 default:
177 DLOG(ERROR) << "Illegal mock string set char: '" << c << "'"; 178 DLOG(ERROR) << "Illegal mock string set char: '" << c << "'";
178 break; 179 break;
179 } 180 }
180 continue; 181 continue;
181 } 182 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 } 327 }
327 ASSERT_EQ(expect.size(), run_count); 328 ASSERT_EQ(expect.size(), run_count);
328 } 329 }
329 }; 330 };
330 331
331 TEST_F(ScriptRunIteratorTest, Empty) { 332 TEST_F(ScriptRunIteratorTest, Empty) {
332 String empty(g_empty_string16_bit); 333 String empty(g_empty_string16_bit);
333 ScriptRunIterator script_run_iterator(empty.Characters16(), empty.length()); 334 ScriptRunIterator script_run_iterator(empty.Characters16(), empty.length());
334 unsigned limit = 0; 335 unsigned limit = 0;
335 UScriptCode code = USCRIPT_INVALID_CODE; 336 UScriptCode code = USCRIPT_INVALID_CODE;
336 ASSERT(!script_run_iterator.Consume(limit, code)); 337 DCHECK(!script_run_iterator.Consume(limit, code));
337 ASSERT_EQ(limit, 0u); 338 ASSERT_EQ(limit, 0u);
338 ASSERT_EQ(code, USCRIPT_INVALID_CODE); 339 ASSERT_EQ(code, USCRIPT_INVALID_CODE);
339 } 340 }
340 341
341 // Some of our compilers cannot initialize a vector from an array yet. 342 // Some of our compilers cannot initialize a vector from an array yet.
342 #define DECLARE_RUNSVECTOR(...) \ 343 #define DECLARE_RUNSVECTOR(...) \
343 static const TestRun kRunsArray[] = __VA_ARGS__; \ 344 static const TestRun kRunsArray[] = __VA_ARGS__; \
344 Vector<TestRun> runs; \ 345 Vector<TestRun> runs; \
345 runs.Append(kRunsArray, sizeof(kRunsArray) / sizeof(*kRunsArray)); 346 runs.Append(kRunsArray, sizeof(kRunsArray) / sizeof(*kRunsArray));
346 347
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 } 680 }
680 } 681 }
681 } 682 }
682 683
683 // ZWJ is \u200D Cf (Format, other) and its script is inherited. I'm going to 684 // ZWJ is \u200D Cf (Format, other) and its script is inherited. I'm going to
684 // ignore this for now, as I think it shouldn't matter which run it ends up 685 // ignore this for now, as I think it shouldn't matter which run it ends up
685 // in. HarfBuzz needs to be able to use it as context and shape each 686 // in. HarfBuzz needs to be able to use it as context and shape each
686 // neighboring character appropriately no matter what run it got assigned to. 687 // neighboring character appropriately no matter what run it got assigned to.
687 688
688 } // namespace blink 689 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698