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

Side by Side Diff: runtime/vm/dart_api_impl_test.cc

Issue 11365243: Revert OneByteString back to ISO Latin-1 instead of ASCII (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month 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 | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/dart_api_message.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 "include/dart_api.h" 5 #include "include/dart_api.h"
6 #include "platform/assert.h" 6 #include "platform/assert.h"
7 #include "platform/json.h" 7 #include "platform/json.h"
8 #include "platform/utils.h" 8 #include "platform/utils.h"
9 #include "vm/class_finalizer.h" 9 #include "vm/class_finalizer.h"
10 #include "vm/dart_api_impl.h" 10 #include "vm/dart_api_impl.h"
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 } 511 }
512 } 512 }
513 513
514 514
515 TEST_CASE(IsString) { 515 TEST_CASE(IsString) {
516 uint8_t data8[] = { 'o', 'n', 'e', 0x7F }; 516 uint8_t data8[] = { 'o', 'n', 'e', 0x7F };
517 517
518 Dart_Handle str8 = Dart_NewStringFromUTF8(data8, ARRAY_SIZE(data8)); 518 Dart_Handle str8 = Dart_NewStringFromUTF8(data8, ARRAY_SIZE(data8));
519 EXPECT_VALID(str8); 519 EXPECT_VALID(str8);
520 EXPECT(Dart_IsString(str8)); 520 EXPECT(Dart_IsString(str8));
521 EXPECT(Dart_IsAsciiString(str8)); 521 EXPECT(Dart_IsStringLatin1(str8));
522 EXPECT(!Dart_IsExternalString(str8)); 522 EXPECT(!Dart_IsExternalString(str8));
523 523
524 Dart_Handle ext8 = Dart_NewExternalUTF8String(data8, ARRAY_SIZE(data8), 524 Dart_Handle ext8 = Dart_NewExternalUTF8String(data8, ARRAY_SIZE(data8),
525 NULL, NULL); 525 NULL, NULL);
526 EXPECT_VALID(ext8); 526 EXPECT_VALID(ext8);
527 EXPECT(Dart_IsString(ext8)); 527 EXPECT(Dart_IsString(ext8));
528 EXPECT(Dart_IsExternalString(ext8)); 528 EXPECT(Dart_IsExternalString(ext8));
529 529
530 uint16_t data16[] = { 't', 'w', 'o', 0xFFFF }; 530 uint16_t data16[] = { 't', 'w', 'o', 0xFFFF };
531 531
532 Dart_Handle str16 = Dart_NewStringFromUTF16(data16, ARRAY_SIZE(data16)); 532 Dart_Handle str16 = Dart_NewStringFromUTF16(data16, ARRAY_SIZE(data16));
533 EXPECT_VALID(str16); 533 EXPECT_VALID(str16);
534 EXPECT(Dart_IsString(str16)); 534 EXPECT(Dart_IsString(str16));
535 EXPECT(!Dart_IsAsciiString(str16)); 535 EXPECT(!Dart_IsStringLatin1(str16));
536 EXPECT(!Dart_IsExternalString(str16)); 536 EXPECT(!Dart_IsExternalString(str16));
537 537
538 Dart_Handle ext16 = Dart_NewExternalUTF16String(data16, ARRAY_SIZE(data16), 538 Dart_Handle ext16 = Dart_NewExternalUTF16String(data16, ARRAY_SIZE(data16),
539 NULL, NULL); 539 NULL, NULL);
540 EXPECT_VALID(ext16); 540 EXPECT_VALID(ext16);
541 EXPECT(Dart_IsString(ext16)); 541 EXPECT(Dart_IsString(ext16));
542 EXPECT(Dart_IsExternalString(ext16)); 542 EXPECT(Dart_IsExternalString(ext16));
543 543
544 uint32_t data32[] = { 'f', 'o', 'u', 'r', 0x10FFFF }; 544 uint32_t data32[] = { 'f', 'o', 'u', 'r', 0x10FFFF };
545 545
(...skipping 6710 matching lines...) Expand 10 before | Expand all | Expand 10 after
7256 EXPECT(Dart_IsString(empty_str)); 7256 EXPECT(Dart_IsString(empty_str));
7257 EXPECT(!Dart_IsExternalString(empty_str)); 7257 EXPECT(!Dart_IsExternalString(empty_str));
7258 uint8_t ext_empty_str[kLength]; 7258 uint8_t ext_empty_str[kLength];
7259 Dart_Handle str = Dart_MakeExternalString(empty_str, 7259 Dart_Handle str = Dart_MakeExternalString(empty_str,
7260 ext_empty_str, 7260 ext_empty_str,
7261 kLength, 7261 kLength,
7262 NULL, 7262 NULL,
7263 NULL); 7263 NULL);
7264 EXPECT(Dart_IsString(str)); 7264 EXPECT(Dart_IsString(str));
7265 EXPECT(Dart_IsString(empty_str)); 7265 EXPECT(Dart_IsString(empty_str));
7266 EXPECT(Dart_IsAsciiString(str)); 7266 EXPECT(Dart_IsStringLatin1(str));
7267 EXPECT(Dart_IsAsciiString(empty_str)); 7267 EXPECT(Dart_IsStringLatin1(empty_str));
7268 EXPECT(Dart_IsExternalString(str)); 7268 EXPECT(Dart_IsExternalString(str));
7269 EXPECT(Dart_IsExternalString(empty_str)); 7269 EXPECT(Dart_IsExternalString(empty_str));
7270 EXPECT_VALID(Dart_StringLength(str, &length)); 7270 EXPECT_VALID(Dart_StringLength(str, &length));
7271 EXPECT_EQ(0, length); 7271 EXPECT_EQ(0, length);
7272 7272
7273 // Test with a one byte ascii string. 7273 // Test with a one byte ascii string.
7274 const char* ascii = "string"; 7274 const char* ascii = "string";
7275 expected_length = strlen(ascii); 7275 expected_length = strlen(ascii);
7276 Dart_Handle ascii_str = NewString(ascii); 7276 Dart_Handle ascii_str = NewString(ascii);
7277 EXPECT_VALID(ascii_str); 7277 EXPECT_VALID(ascii_str);
7278 EXPECT(Dart_IsString(ascii_str)); 7278 EXPECT(Dart_IsString(ascii_str));
7279 EXPECT(Dart_IsAsciiString(ascii_str)); 7279 EXPECT(Dart_IsStringLatin1(ascii_str));
7280 EXPECT(!Dart_IsExternalString(ascii_str)); 7280 EXPECT(!Dart_IsExternalString(ascii_str));
7281 EXPECT_VALID(Dart_StringLength(ascii_str, &length)); 7281 EXPECT_VALID(Dart_StringLength(ascii_str, &length));
7282 EXPECT_EQ(expected_length, length); 7282 EXPECT_EQ(expected_length, length);
7283 7283
7284 uint8_t ext_ascii_str[kLength]; 7284 uint8_t ext_ascii_str[kLength];
7285 EXPECT_VALID(Dart_StringStorageSize(ascii_str, &size)); 7285 EXPECT_VALID(Dart_StringStorageSize(ascii_str, &size));
7286 str = Dart_MakeExternalString(ascii_str, 7286 str = Dart_MakeExternalString(ascii_str,
7287 ext_ascii_str, 7287 ext_ascii_str,
7288 size, 7288 size,
7289 &peer8, 7289 &peer8,
7290 MakeExternalCback); 7290 MakeExternalCback);
7291 EXPECT(Dart_IsString(str)); 7291 EXPECT(Dart_IsString(str));
7292 EXPECT(Dart_IsString(ascii_str)); 7292 EXPECT(Dart_IsString(ascii_str));
7293 EXPECT(Dart_IsAsciiString(str)); 7293 EXPECT(Dart_IsStringLatin1(str));
7294 EXPECT(Dart_IsAsciiString(ascii_str)); 7294 EXPECT(Dart_IsStringLatin1(ascii_str));
7295 EXPECT(Dart_IsExternalString(str)); 7295 EXPECT(Dart_IsExternalString(str));
7296 EXPECT(Dart_IsExternalString(ascii_str)); 7296 EXPECT(Dart_IsExternalString(ascii_str));
7297 EXPECT_VALID(Dart_StringLength(str, &length)); 7297 EXPECT_VALID(Dart_StringLength(str, &length));
7298 EXPECT_EQ(expected_length, length); 7298 EXPECT_EQ(expected_length, length);
7299 EXPECT_VALID(Dart_StringLength(ascii_str, &length)); 7299 EXPECT_VALID(Dart_StringLength(ascii_str, &length));
7300 EXPECT_EQ(expected_length, length); 7300 EXPECT_EQ(expected_length, length);
7301 EXPECT(Dart_IdentityEquals(str, ascii_str)); 7301 EXPECT(Dart_IdentityEquals(str, ascii_str));
7302 for (intptr_t i = 0; i < length; i++) { 7302 for (intptr_t i = 0; i < length; i++) {
7303 EXPECT_EQ(ascii[i], ext_ascii_str[i]); 7303 EXPECT_EQ(ascii[i], ext_ascii_str[i]);
7304 } 7304 }
7305 7305
7306 uint8_t data[] = { 0xE4, 0xBA, 0x8c }; // U+4E8C. 7306 uint8_t data[] = { 0xE4, 0xBA, 0x8c }; // U+4E8C.
7307 expected_length = 1; 7307 expected_length = 1;
7308 Dart_Handle utf16_str = Dart_NewStringFromUTF8(data, ARRAY_SIZE(data)); 7308 Dart_Handle utf16_str = Dart_NewStringFromUTF8(data, ARRAY_SIZE(data));
7309 EXPECT_VALID(utf16_str); 7309 EXPECT_VALID(utf16_str);
7310 EXPECT(Dart_IsString(utf16_str)); 7310 EXPECT(Dart_IsString(utf16_str));
7311 EXPECT(!Dart_IsAsciiString(utf16_str)); 7311 EXPECT(!Dart_IsStringLatin1(utf16_str));
7312 EXPECT(!Dart_IsExternalString(utf16_str)); 7312 EXPECT(!Dart_IsExternalString(utf16_str));
7313 EXPECT_VALID(Dart_StringLength(utf16_str, &length)); 7313 EXPECT_VALID(Dart_StringLength(utf16_str, &length));
7314 EXPECT_EQ(expected_length, length); 7314 EXPECT_EQ(expected_length, length);
7315 7315
7316 // Test with a two byte string. 7316 // Test with a two byte string.
7317 uint16_t ext_utf16_str[kLength]; 7317 uint16_t ext_utf16_str[kLength];
7318 EXPECT_VALID(Dart_StringStorageSize(utf16_str, &size)); 7318 EXPECT_VALID(Dart_StringStorageSize(utf16_str, &size));
7319 str = Dart_MakeExternalString(utf16_str, 7319 str = Dart_MakeExternalString(utf16_str,
7320 ext_utf16_str, 7320 ext_utf16_str,
7321 size, 7321 size,
7322 &peer16, 7322 &peer16,
7323 MakeExternalCback); 7323 MakeExternalCback);
7324 EXPECT(Dart_IsString(str)); 7324 EXPECT(Dart_IsString(str));
7325 EXPECT(Dart_IsString(utf16_str)); 7325 EXPECT(Dart_IsString(utf16_str));
7326 EXPECT(!Dart_IsAsciiString(str)); 7326 EXPECT(!Dart_IsStringLatin1(str));
7327 EXPECT(!Dart_IsAsciiString(utf16_str)); 7327 EXPECT(!Dart_IsStringLatin1(utf16_str));
7328 EXPECT(Dart_IsExternalString(str)); 7328 EXPECT(Dart_IsExternalString(str));
7329 EXPECT(Dart_IsExternalString(utf16_str)); 7329 EXPECT(Dart_IsExternalString(utf16_str));
7330 EXPECT_VALID(Dart_StringLength(str, &length)); 7330 EXPECT_VALID(Dart_StringLength(str, &length));
7331 EXPECT_EQ(expected_length, length); 7331 EXPECT_EQ(expected_length, length);
7332 EXPECT_VALID(Dart_StringLength(utf16_str, &length)); 7332 EXPECT_VALID(Dart_StringLength(utf16_str, &length));
7333 EXPECT_EQ(expected_length, length); 7333 EXPECT_EQ(expected_length, length);
7334 EXPECT(Dart_IdentityEquals(str, utf16_str)); 7334 EXPECT(Dart_IdentityEquals(str, utf16_str));
7335 for (intptr_t i = 0; i < length; i++) { 7335 for (intptr_t i = 0; i < length; i++) {
7336 EXPECT_EQ(0x4e8c, ext_utf16_str[i]); 7336 EXPECT_EQ(0x4e8c, ext_utf16_str[i]);
7337 } 7337 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
7380 Dart_LoadSource(TestCase::lib(), url, source); 7380 Dart_LoadSource(TestCase::lib(), url, source);
7381 7381
7382 dart_args[0] = Dart_NewInteger(1); 7382 dart_args[0] = Dart_NewInteger(1);
7383 result = Dart_Invoke(lib1, NewString("start"), 1, dart_args); 7383 result = Dart_Invoke(lib1, NewString("start"), 1, dart_args);
7384 EXPECT_VALID(result); 7384 EXPECT_VALID(result);
7385 } 7385 }
7386 7386
7387 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). 7387 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
7388 7388
7389 } // namespace dart 7389 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/dart_api_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698