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

Side by Side Diff: vm/object_test.cc

Issue 11419259: Fix bug in Utf8::CodePointCount which was causing some strings with latin1 (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « vm/object.cc ('k') | vm/symbols.cc » ('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 Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "platform/assert.h" 5 #include "platform/assert.h"
6 #include "vm/assembler.h" 6 #include "vm/assembler.h"
7 #include "vm/bigint_operations.h" 7 #include "vm/bigint_operations.h"
8 #include "vm/class_finalizer.h" 8 #include "vm/class_finalizer.h"
9 #include "vm/isolate.h" 9 #include "vm/isolate.h"
10 #include "vm/object.h" 10 #include "vm/object.h"
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1185 } 1185 }
1186 1186
1187 1187
1188 TEST_CASE(StringSubStringDifferentWidth) { 1188 TEST_CASE(StringSubStringDifferentWidth) {
1189 // Create 1-byte substring from a 1-byte source string. 1189 // Create 1-byte substring from a 1-byte source string.
1190 const char* onechars = 1190 const char* onechars =
1191 "\xC3\xB6\xC3\xB1\xC3\xA9"; 1191 "\xC3\xB6\xC3\xB1\xC3\xA9";
1192 1192
1193 const String& onestr = String::Handle(String::New(onechars)); 1193 const String& onestr = String::Handle(String::New(onechars));
1194 EXPECT(!onestr.IsNull()); 1194 EXPECT(!onestr.IsNull());
1195 EXPECT(!onestr.IsOneByteString()); 1195 EXPECT(onestr.IsOneByteString());
1196 EXPECT(onestr.IsTwoByteString()); 1196 EXPECT(!onestr.IsTwoByteString());
1197 1197
1198 const String& onesub = String::Handle(String::SubString(onestr, 0)); 1198 const String& onesub = String::Handle(String::SubString(onestr, 0));
1199 EXPECT(!onesub.IsNull()); 1199 EXPECT(!onesub.IsNull());
1200 EXPECT(!onestr.IsOneByteString()); 1200 EXPECT(onestr.IsOneByteString());
1201 EXPECT(onestr.IsTwoByteString()); 1201 EXPECT(!onestr.IsTwoByteString());
1202 EXPECT_EQ(onesub.Length(), 3); 1202 EXPECT_EQ(onesub.Length(), 3);
1203 1203
1204 // Create 1- and 2-byte substrings from a 2-byte source string. 1204 // Create 1- and 2-byte substrings from a 2-byte source string.
1205 const char* twochars = 1205 const char* twochars =
1206 "\x1f\x2f\x3f" 1206 "\x1f\x2f\x3f"
1207 "\xE1\xB9\xAB\xE1\xBA\x85\xE1\xB9\x93"; 1207 "\xE1\xB9\xAB\xE1\xBA\x85\xE1\xB9\x93";
1208 1208
1209 const String& twostr = String::Handle(String::New(twochars)); 1209 const String& twostr = String::Handle(String::New(twochars));
1210 EXPECT(!twostr.IsNull()); 1210 EXPECT(!twostr.IsNull());
1211 EXPECT(twostr.IsTwoByteString()); 1211 EXPECT(twostr.IsTwoByteString());
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 1283 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
1284 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 1284 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
1285 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 1285 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
1286 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 1286 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
1287 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 1287 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
1288 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 1288 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
1289 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 1289 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
1290 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 1290 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
1291 }; 1291 };
1292 const String& str = String::Handle(String::New(src)); 1292 const String& str = String::Handle(String::New(src));
1293 EXPECT(str.IsTwoByteString()); 1293 EXPECT(str.IsOneByteString());
1294 intptr_t expected_length = sizeof(expected); 1294 intptr_t expected_length = sizeof(expected);
1295 EXPECT_EQ(expected_length, str.Length()); 1295 EXPECT_EQ(expected_length, str.Length());
1296 for (int i = 0; i < str.Length(); ++i) { 1296 for (int i = 0; i < str.Length(); ++i) {
1297 EXPECT_EQ(expected[i], str.CharAt(i)); 1297 EXPECT_EQ(expected[i], str.CharAt(i));
1298 } 1298 }
1299 } 1299 }
1300 1300
1301 // Create a 2-byte string from a UTF-8 encoded string literal. 1301 // Create a 2-byte string from a UTF-8 encoded string literal.
1302 { 1302 {
1303 const char* src = 1303 const char* src =
(...skipping 1944 matching lines...) Expand 10 before | Expand all | Expand 10 after
3248 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); 3248 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint());
3249 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); 3249 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint());
3250 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); 3250 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint());
3251 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); 3251 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint());
3252 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); 3252 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint());
3253 } 3253 }
3254 3254
3255 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). 3255 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
3256 3256
3257 } // namespace dart 3257 } // namespace dart
OLDNEW
« no previous file with comments | « vm/object.cc ('k') | vm/symbols.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698