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

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: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in platform/fonts 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, mockScriptData, 33 DEFINE_THREAD_SAFE_STATIC_LOCAL(const MockScriptData, mockScriptData,
34 (new MockScriptData())); 34 (new MockScriptData()));
35 35
36 return &mockScriptData; 36 return &mockScriptData;
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::BracketTypeClose: 80 case PairedBracketType::BracketTypeClose:
81 return ch - kBracketDelta; 81 return ch - kBracketDelta;
82 case PairedBracketType::BracketTypeOpen: 82 case PairedBracketType::BracketTypeOpen:
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(ch >= kMockCharMin && ch < kMockCharLimit);
tkent 2017/04/09 23:13:23 Split this into two DCHECKs
Hwanseung Lee 2017/04/11 22:25:09 Done.
91 int code = ch - kMockCharMin; 91 int code = ch - kMockCharMin;
92 if ((code & kCodeBracketBit) == 0) { 92 if ((code & kCodeBracketBit) == 0) {
93 return PairedBracketType::BracketTypeNone; 93 return PairedBracketType::BracketTypeNone;
94 } 94 }
95 if (code & kCodeBracketCloseBit) { 95 if (code & kCodeBracketCloseBit) {
96 return PairedBracketType::BracketTypeClose; 96 return PairedBracketType::BracketTypeClose;
97 } 97 }
98 return PairedBracketType::BracketTypeOpen; 98 return PairedBracketType::BracketTypeOpen;
99 } 99 }
100 100
(...skipping 11 matching lines...) Expand all
112 String result(emptyString16Bit); 112 String result(emptyString16Bit);
113 bool inSet = false; 113 bool inSet = false;
114 int seen = 0; 114 int seen = 0;
115 int code = 0; 115 int code = 0;
116 int list = 0; 116 int list = 0;
117 int currentShift = 0; 117 int currentShift = 0;
118 for (char c : input) { 118 for (char c : input) {
119 if (inSet) { 119 if (inSet) {
120 switch (c) { 120 switch (c) {
121 case '(': 121 case '(':
122 ASSERT(seen == 0); 122 DCHECK_EQ(seen, 0);
123 seen |= kSawBracket; 123 seen |= kSawBracket;
124 code |= kCodeBracketBit; 124 code |= kCodeBracketBit;
125 break; 125 break;
126 case '[': 126 case '[':
127 ASSERT(seen == 0); 127 DCHECK_EQ(seen, 0);
128 seen |= kSawBracket; 128 seen |= kSawBracket;
129 code |= kCodeBracketBit | kCodeSquareBracketBit; 129 code |= kCodeBracketBit | kCodeSquareBracketBit;
130 break; 130 break;
131 case ')': 131 case ')':
132 ASSERT(seen == 0); 132 DCHECK_EQ(seen, 0);
133 seen |= kSawBracket; 133 seen |= kSawBracket;
134 code |= kCodeBracketBit | kCodeBracketCloseBit; 134 code |= kCodeBracketBit | kCodeBracketCloseBit;
135 break; 135 break;
136 case ']': 136 case ']':
137 ASSERT(seen == 0); 137 DCHECK_EQ(seen, 0);
138 seen |= kSawBracket; 138 seen |= kSawBracket;
139 code |= 139 code |=
140 kCodeBracketBit | kCodeSquareBracketBit | kCodeBracketCloseBit; 140 kCodeBracketBit | kCodeSquareBracketBit | kCodeBracketCloseBit;
141 break; 141 break;
142 case 'i': 142 case 'i':
143 ASSERT(seen == 0); // brackets can't be inherited 143 DCHECK_EQ(seen, 0); // brackets can't be inherited
144 seen |= kSawSpecial; 144 seen |= kSawSpecial;
145 code |= kCodeSpecialInherited; 145 code |= kCodeSpecialInherited;
146 break; 146 break;
147 case 'c': 147 case 'c':
148 ASSERT((seen & ~kSawBracket) == 0); 148 DCHECK_EQ((seen & ~kSawBracket), 0);
149 seen |= kSawSpecial; 149 seen |= kSawSpecial;
150 code |= kCodeSpecialCommon; 150 code |= kCodeSpecialCommon;
151 break; 151 break;
152 case 'l': 152 case 'l':
153 ASSERT((seen & kSawLatin) == 0); 153 DCHECK_EQ((seen & kSawLatin), 0);
154 ASSERT(currentShift < 3); 154 DCHECK_LT(currentShift, 3);
155 seen |= kSawLatin; 155 seen |= kSawLatin;
156 list |= kLatin << (2 * currentShift++); 156 list |= kLatin << (2 * currentShift++);
157 break; 157 break;
158 case 'h': 158 case 'h':
159 ASSERT((seen & kSawHan) == 0); 159 DCHECK_EQ((seen & kSawHan), 0);
160 ASSERT(currentShift < 3); 160 DCHECK_LT(currentShift, 3);
161 seen |= kSawHan; 161 seen |= kSawHan;
162 list |= kHan << (2 * currentShift++); 162 list |= kHan << (2 * currentShift++);
163 break; 163 break;
164 case 'g': 164 case 'g':
165 ASSERT((seen & kSawGreek) == 0); 165 DCHECK_EQ((seen & kSawGreek), 0);
166 ASSERT(currentShift < 3); 166 DCHECK_LT(currentShift, 3);
167 seen |= kSawGreek; 167 seen |= kSawGreek;
168 list |= kGreek << (2 * currentShift++); 168 list |= kGreek << (2 * currentShift++);
169 break; 169 break;
170 case '>': 170 case '>':
171 ASSERT(seen != 0); 171 DCHECK_NE(seen, 0);
172 code |= TableLookup(list); 172 code |= TableLookup(list);
173 result.append(static_cast<UChar>(kMockCharMin + code)); 173 result.append(static_cast<UChar>(kMockCharMin + code));
174 inSet = false; 174 inSet = false;
175 break; 175 break;
176 default: 176 default:
177 DLOG(ERROR) << "Illegal mock string set char: '" << c << "'"; 177 DLOG(ERROR) << "Illegal mock string set char: '" << c << "'";
178 break; 178 break;
179 } 179 }
180 continue; 180 continue;
181 } 181 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 } 326 }
327 ASSERT_EQ(expect.size(), runCount); 327 ASSERT_EQ(expect.size(), runCount);
328 } 328 }
329 }; 329 };
330 330
331 TEST_F(ScriptRunIteratorTest, Empty) { 331 TEST_F(ScriptRunIteratorTest, Empty) {
332 String empty(emptyString16Bit); 332 String empty(emptyString16Bit);
333 ScriptRunIterator scriptRunIterator(empty.characters16(), empty.length()); 333 ScriptRunIterator scriptRunIterator(empty.characters16(), empty.length());
334 unsigned limit = 0; 334 unsigned limit = 0;
335 UScriptCode code = USCRIPT_INVALID_CODE; 335 UScriptCode code = USCRIPT_INVALID_CODE;
336 ASSERT(!scriptRunIterator.consume(limit, code)); 336 DCHECK(!scriptRunIterator.consume(limit, code));
337 ASSERT_EQ(limit, 0u); 337 ASSERT_EQ(limit, 0u);
338 ASSERT_EQ(code, USCRIPT_INVALID_CODE); 338 ASSERT_EQ(code, USCRIPT_INVALID_CODE);
339 } 339 }
340 340
341 // Some of our compilers cannot initialize a vector from an array yet. 341 // Some of our compilers cannot initialize a vector from an array yet.
342 #define DECLARE_RUNSVECTOR(...) \ 342 #define DECLARE_RUNSVECTOR(...) \
343 static const TestRun runsArray[] = __VA_ARGS__; \ 343 static const TestRun runsArray[] = __VA_ARGS__; \
344 Vector<TestRun> runs; \ 344 Vector<TestRun> runs; \
345 runs.append(runsArray, sizeof(runsArray) / sizeof(*runsArray)); 345 runs.append(runsArray, sizeof(runsArray) / sizeof(*runsArray));
346 346
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 } 679 }
680 } 680 }
681 } 681 }
682 682
683 // ZWJ is \u200D Cf (Format, other) and its script is inherited. I'm going to 683 // 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 684 // 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 685 // 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. 686 // neighboring character appropriately no matter what run it got assigned to.
687 687
688 } // namespace blink 688 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698