| OLD | NEW |
| 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_debugger_api.h" | 5 #include "include/dart_debugger_api.h" |
| 6 #include "platform/assert.h" | 6 #include "platform/assert.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/dart_api_impl.h" | 9 #include "vm/dart_api_impl.h" |
| 10 #include "vm/dart_api_message.h" | 10 #include "vm/dart_api_message.h" |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 Dart_CObject* root = api_reader.ReadMessage(); | 521 Dart_CObject* root = api_reader.ReadMessage(); |
| 522 EXPECT_EQ(Dart_CObject::kString, root->type); | 522 EXPECT_EQ(Dart_CObject::kString, root->type); |
| 523 EXPECT_STREQ(cstr, root->value.as_string); | 523 EXPECT_STREQ(cstr, root->value.as_string); |
| 524 CheckEncodeDecodeMessage(root); | 524 CheckEncodeDecodeMessage(root); |
| 525 } | 525 } |
| 526 | 526 |
| 527 | 527 |
| 528 TEST_CASE(SerializeString) { | 528 TEST_CASE(SerializeString) { |
| 529 TestString("This string shall be serialized"); | 529 TestString("This string shall be serialized"); |
| 530 TestString("æøå"); // This file is UTF-8 encoded. | 530 TestString("æøå"); // This file is UTF-8 encoded. |
| 531 char data[] = {0x01, | 531 const char* data = "\x01" |
| 532 0x7f, | 532 "\x7F" |
| 533 0xc2, 0x80, // 0x80 | 533 "\xC2\x80" // U+0080 |
| 534 0xdf, 0xbf, // 0x7ff | 534 "\xDF\xBF" // U+07FF |
| 535 0xe0, 0xa0, 0x80, // 0x800 | 535 "\xE0\xA0\x80" // U+0800 |
| 536 0xef, 0xbf, 0xbf, // 0xffff | 536 "\xEF\xBF\xBF"; // U+FFFF |
| 537 0x00}; // String termination. | 537 |
| 538 TestString(data); | 538 TestString(data); |
| 539 // TODO(sgjesse): Add tests with non-BMP characters. | 539 // TODO(sgjesse): Add tests with non-BMP characters. |
| 540 } | 540 } |
| 541 | 541 |
| 542 | 542 |
| 543 TEST_CASE(SerializeArray) { | 543 TEST_CASE(SerializeArray) { |
| 544 StackZone zone(Isolate::Current()); | 544 StackZone zone(Isolate::Current()); |
| 545 | 545 |
| 546 // Write snapshot with object content. | 546 // Write snapshot with object content. |
| 547 uint8_t* buffer; | 547 uint8_t* buffer; |
| (...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2100 | 2100 |
| 2101 object.type = Dart_CObject::kString; | 2101 object.type = Dart_CObject::kString; |
| 2102 object.value.as_string = const_cast<char*>("456"); | 2102 object.value.as_string = const_cast<char*>("456"); |
| 2103 EXPECT(Dart_PostCObject(send_port_id, &object)); | 2103 EXPECT(Dart_PostCObject(send_port_id, &object)); |
| 2104 | 2104 |
| 2105 object.type = Dart_CObject::kString; | 2105 object.type = Dart_CObject::kString; |
| 2106 object.value.as_string = const_cast<char*>("æøå"); | 2106 object.value.as_string = const_cast<char*>("æøå"); |
| 2107 EXPECT(Dart_PostCObject(send_port_id, &object)); | 2107 EXPECT(Dart_PostCObject(send_port_id, &object)); |
| 2108 | 2108 |
| 2109 // Try to post an invalid UTF-8 sequence (lead surrogate). | 2109 // Try to post an invalid UTF-8 sequence (lead surrogate). |
| 2110 char data[] = {0xed, 0xa0, 0x80, 0}; // 0xd800 | 2110 const char* data = "\xED\xA0\x80"; // U+D800 |
| 2111 object.type = Dart_CObject::kString; | 2111 object.type = Dart_CObject::kString; |
| 2112 object.value.as_string = const_cast<char*>(data); | 2112 object.value.as_string = const_cast<char*>(data); |
| 2113 EXPECT(!Dart_PostCObject(send_port_id, &object)); | 2113 EXPECT(!Dart_PostCObject(send_port_id, &object)); |
| 2114 | 2114 |
| 2115 object.type = Dart_CObject::kDouble; | 2115 object.type = Dart_CObject::kDouble; |
| 2116 object.value.as_double = 3.14; | 2116 object.value.as_double = 3.14; |
| 2117 EXPECT(Dart_PostCObject(send_port_id, &object)); | 2117 EXPECT(Dart_PostCObject(send_port_id, &object)); |
| 2118 | 2118 |
| 2119 object.type = Dart_CObject::kArray; | 2119 object.type = Dart_CObject::kArray; |
| 2120 object.value.as_array.length = 0; | 2120 object.value.as_array.length = 0; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2144 EXPECT(Dart_ErrorHasException(result)); | 2144 EXPECT(Dart_ErrorHasException(result)); |
| 2145 EXPECT_SUBSTRING("Exception: nulltruefalse123456æøå3.14[]100123456789\n", | 2145 EXPECT_SUBSTRING("Exception: nulltruefalse123456æøå3.14[]100123456789\n", |
| 2146 Dart_GetError(result)); | 2146 Dart_GetError(result)); |
| 2147 | 2147 |
| 2148 Dart_ExitScope(); | 2148 Dart_ExitScope(); |
| 2149 } | 2149 } |
| 2150 | 2150 |
| 2151 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 2151 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 2152 | 2152 |
| 2153 } // namespace dart | 2153 } // namespace dart |
| OLD | NEW |