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

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

Issue 2992093002: [vm] Several unit tests are corrected for limited ints (Closed)
Patch Set: Add explanation for chosen value as comment Created 3 years, 4 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
« no previous file with comments | « runtime/vm/dart_api_impl_test.cc ('k') | no next file » | 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/globals.h" 5 #include "platform/globals.h"
6 6
7 #include "include/dart_tools_api.h" 7 #include "include/dart_tools_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/class_finalizer.h" 9 #include "vm/class_finalizer.h"
10 #include "vm/clustered_snapshot.h" 10 #include "vm/clustered_snapshot.h"
(...skipping 1837 matching lines...) Expand 10 before | Expand all | Expand 10 after
1848 1848
1849 // Read object back from the snapshot into a C structure. 1849 // Read object back from the snapshot into a C structure.
1850 ApiNativeScope scope; 1850 ApiNativeScope scope;
1851 ApiMessageReader api_reader(buffer, buffer_len); 1851 ApiMessageReader api_reader(buffer, buffer_len);
1852 Dart_CObject* root = api_reader.ReadMessage(); 1852 Dart_CObject* root = api_reader.ReadMessage();
1853 EXPECT_NOTNULL(root); 1853 EXPECT_NOTNULL(root);
1854 EXPECT_EQ(Dart_CObject_kUnsupported, root->type); 1854 EXPECT_EQ(Dart_CObject_kUnsupported, root->type);
1855 } 1855 }
1856 1856
1857 VM_UNIT_TEST_CASE(DartGeneratedMessages) { 1857 VM_UNIT_TEST_CASE(DartGeneratedMessages) {
1858 static const char* kCustomIsolateScriptChars = 1858 static const char* kCustomIsolateScriptCommonChars =
1859 "getSmi() {\n" 1859 "getSmi() {\n"
1860 " return 42;\n" 1860 " return 42;\n"
1861 "}\n" 1861 "}\n"
1862 "getBigint() {\n"
1863 " return -0x424242424242424242424242424242424242;\n"
1864 "}\n"
1865 "getAsciiString() {\n" 1862 "getAsciiString() {\n"
1866 " return \"Hello, world!\";\n" 1863 " return \"Hello, world!\";\n"
1867 "}\n" 1864 "}\n"
1868 "getNonAsciiString() {\n" 1865 "getNonAsciiString() {\n"
1869 " return \"Blåbærgrød\";\n" 1866 " return \"Blåbærgrød\";\n"
1870 "}\n" 1867 "}\n"
1871 "getNonBMPString() {\n" 1868 "getNonBMPString() {\n"
1872 " return \"\\u{10000}\\u{1F601}\\u{1F637}\\u{20000}\";\n" 1869 " return \"\\u{10000}\\u{1F601}\\u{1F637}\\u{20000}\";\n"
1873 "}\n" 1870 "}\n"
1874 "getLeadSurrogateString() {\n" 1871 "getLeadSurrogateString() {\n"
1875 " return new String.fromCharCodes([0xd800]);\n" 1872 " return new String.fromCharCodes([0xd800]);\n"
1876 "}\n" 1873 "}\n"
1877 "getTrailSurrogateString() {\n" 1874 "getTrailSurrogateString() {\n"
1878 " return \"\\u{10000}\".substring(1);\n" 1875 " return \"\\u{10000}\".substring(1);\n"
1879 "}\n" 1876 "}\n"
1880 "getSurrogatesString() {\n" 1877 "getSurrogatesString() {\n"
1881 " return new String.fromCharCodes([0xdc00, 0xdc00, 0xd800, 0xd800]);\n" 1878 " return new String.fromCharCodes([0xdc00, 0xdc00, 0xd800, 0xd800]);\n"
1882 "}\n" 1879 "}\n"
1883 "getCrappyString() {\n" 1880 "getCrappyString() {\n"
1884 " return new String.fromCharCodes([0xd800, 32, 0xdc00, 32]);\n" 1881 " return new String.fromCharCodes([0xd800, 32, 0xdc00, 32]);\n"
1885 "}\n" 1882 "}\n"
1886 "getList() {\n" 1883 "getList() {\n"
1887 " return new List(kArrayLength);\n" 1884 " return new List(kArrayLength);\n"
1888 "}\n"; 1885 "}\n";
1886 static const char* kCustomIsolateScriptBigintChars =
1887 "getBigint() {\n"
1888 " return -0x424242424242424242424242424242424242;\n"
1889 "}\n";
1889 1890
1890 TestCase::CreateTestIsolate(); 1891 TestCase::CreateTestIsolate();
1891 Isolate* isolate = Isolate::Current(); 1892 Isolate* isolate = Isolate::Current();
1892 EXPECT(isolate != NULL); 1893 EXPECT(isolate != NULL);
1893 Dart_EnterScope(); 1894 Dart_EnterScope();
1894 1895
1895 Dart_Handle lib = TestCase::LoadTestScript(kCustomIsolateScriptChars, NULL); 1896 const char* scriptChars = kCustomIsolateScriptCommonChars;
1897 if (!Bigint::IsDisabled()) {
1898 scriptChars = OS::SCreate(Thread::Current()->zone(), "%s%s", scriptChars,
1899 kCustomIsolateScriptBigintChars);
1900 }
1901
1902 Dart_Handle lib = TestCase::LoadTestScript(scriptChars, NULL);
1896 EXPECT_VALID(lib); 1903 EXPECT_VALID(lib);
1897 Dart_Handle smi_result; 1904 Dart_Handle smi_result;
1898 smi_result = Dart_Invoke(lib, NewString("getSmi"), 0, NULL); 1905 smi_result = Dart_Invoke(lib, NewString("getSmi"), 0, NULL);
1899 EXPECT_VALID(smi_result); 1906 EXPECT_VALID(smi_result);
1900 Dart_Handle bigint_result; 1907
1901 bigint_result = Dart_Invoke(lib, NewString("getBigint"), 0, NULL); 1908 Dart_Handle bigint_result = NULL;
1902 EXPECT_VALID(bigint_result); 1909 if (!Bigint::IsDisabled()) {
1910 bigint_result = Dart_Invoke(lib, NewString("getBigint"), 0, NULL);
1911 EXPECT_VALID(bigint_result);
1912 }
1903 1913
1904 Dart_Handle ascii_string_result; 1914 Dart_Handle ascii_string_result;
1905 ascii_string_result = Dart_Invoke(lib, NewString("getAsciiString"), 0, NULL); 1915 ascii_string_result = Dart_Invoke(lib, NewString("getAsciiString"), 0, NULL);
1906 EXPECT_VALID(ascii_string_result); 1916 EXPECT_VALID(ascii_string_result);
1907 EXPECT(Dart_IsString(ascii_string_result)); 1917 EXPECT(Dart_IsString(ascii_string_result));
1908 1918
1909 Dart_Handle non_ascii_string_result; 1919 Dart_Handle non_ascii_string_result;
1910 non_ascii_string_result = 1920 non_ascii_string_result =
1911 Dart_Invoke(lib, NewString("getNonAsciiString"), 0, NULL); 1921 Dart_Invoke(lib, NewString("getNonAsciiString"), 0, NULL);
1912 EXPECT_VALID(non_ascii_string_result); 1922 EXPECT_VALID(non_ascii_string_result);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1958 1968
1959 // Read object back from the snapshot into a C structure. 1969 // Read object back from the snapshot into a C structure.
1960 ApiNativeScope scope; 1970 ApiNativeScope scope;
1961 ApiMessageReader api_reader(buffer, buffer_len); 1971 ApiMessageReader api_reader(buffer, buffer_len);
1962 Dart_CObject* root = api_reader.ReadMessage(); 1972 Dart_CObject* root = api_reader.ReadMessage();
1963 EXPECT_NOTNULL(root); 1973 EXPECT_NOTNULL(root);
1964 EXPECT_EQ(Dart_CObject_kInt32, root->type); 1974 EXPECT_EQ(Dart_CObject_kInt32, root->type);
1965 EXPECT_EQ(42, root->value.as_int32); 1975 EXPECT_EQ(42, root->value.as_int32);
1966 CheckEncodeDecodeMessage(root); 1976 CheckEncodeDecodeMessage(root);
1967 } 1977 }
1968 { 1978 if (!Bigint::IsDisabled()) {
1969 StackZone zone(thread); 1979 StackZone zone(thread);
1970 Bigint& bigint = Bigint::Handle(); 1980 Bigint& bigint = Bigint::Handle();
1971 bigint ^= Api::UnwrapHandle(bigint_result); 1981 bigint ^= Api::UnwrapHandle(bigint_result);
1972 uint8_t* buffer; 1982 uint8_t* buffer;
1973 MessageWriter writer(&buffer, &zone_allocator, &zone_deallocator, false); 1983 MessageWriter writer(&buffer, &zone_allocator, &zone_deallocator, false);
1974 writer.WriteMessage(bigint); 1984 writer.WriteMessage(bigint);
1975 intptr_t buffer_len = writer.BytesWritten(); 1985 intptr_t buffer_len = writer.BytesWritten();
1976 1986
1977 // Read object back from the snapshot into a C structure. 1987 // Read object back from the snapshot into a C structure.
1978 ApiNativeScope scope; 1988 ApiNativeScope scope;
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
2326 EXPECT_EQ(i + 1, e->value.as_int32); 2336 EXPECT_EQ(i + 1, e->value.as_int32);
2327 } 2337 }
2328 } 2338 }
2329 } 2339 }
2330 Dart_ExitScope(); 2340 Dart_ExitScope();
2331 Dart_ShutdownIsolate(); 2341 Dart_ShutdownIsolate();
2332 } 2342 }
2333 2343
2334 VM_UNIT_TEST_CASE(DartGeneratedListMessagesWithBackref) { 2344 VM_UNIT_TEST_CASE(DartGeneratedListMessagesWithBackref) {
2335 const int kArrayLength = 10; 2345 const int kArrayLength = 10;
2336 static const char* kScriptChars = 2346 static const char* kScriptCommonChars =
2337 "import 'dart:typed_data';\n" 2347 "import 'dart:typed_data';\n"
2338 "final int kArrayLength = 10;\n" 2348 "final int kArrayLength = 10;\n"
2339 "getStringList() {\n" 2349 "getStringList() {\n"
2340 " var s = 'Hello, world!';\n" 2350 " var s = 'Hello, world!';\n"
2341 " var list = new List<String>(kArrayLength);\n" 2351 " var list = new List<String>(kArrayLength);\n"
2342 " for (var i = 0; i < kArrayLength; i++) list[i] = s;\n" 2352 " for (var i = 0; i < kArrayLength; i++) list[i] = s;\n"
2343 " return list;\n" 2353 " return list;\n"
2344 "}\n" 2354 "}\n"
2345 "getMintList() {\n" 2355 "getMintList() {\n"
2346 " var mint = 0x7FFFFFFFFFFFFFFF;\n" 2356 " var mint = 0x7FFFFFFFFFFFFFFF;\n"
2347 " var list = new List(kArrayLength);\n" 2357 " var list = new List(kArrayLength);\n"
2348 " for (var i = 0; i < kArrayLength; i++) list[i] = mint;\n" 2358 " for (var i = 0; i < kArrayLength; i++) list[i] = mint;\n"
2349 " return list;\n" 2359 " return list;\n"
2350 "}\n" 2360 "}\n"
2351 "getBigintList() {\n"
2352 " var bigint = 0x1234567890123456789012345678901234567890;\n"
2353 " var list = new List(kArrayLength);\n"
2354 " for (var i = 0; i < kArrayLength; i++) list[i] = bigint;\n"
2355 " return list;\n"
2356 "}\n"
2357 "getDoubleList() {\n" 2361 "getDoubleList() {\n"
2358 " var d = 3.14;\n" 2362 " var d = 3.14;\n"
2359 " var list = new List<double>(kArrayLength);\n" 2363 " var list = new List<double>(kArrayLength);\n"
2360 " for (var i = 0; i < kArrayLength; i++) list[i] = d;\n" 2364 " for (var i = 0; i < kArrayLength; i++) list[i] = d;\n"
2361 " return list;\n" 2365 " return list;\n"
2362 "}\n" 2366 "}\n"
2363 "getTypedDataList() {\n" 2367 "getTypedDataList() {\n"
2364 " var byte_array = new Uint8List(256);\n" 2368 " var byte_array = new Uint8List(256);\n"
2365 " var list = new List(kArrayLength);\n" 2369 " var list = new List(kArrayLength);\n"
2366 " for (var i = 0; i < kArrayLength; i++) list[i] = byte_array;\n" 2370 " for (var i = 0; i < kArrayLength; i++) list[i] = byte_array;\n"
(...skipping 15 matching lines...) Expand all
2382 " }\n" 2386 " }\n"
2383 " return list;\n" 2387 " return list;\n"
2384 "}\n" 2388 "}\n"
2385 "getSelfRefList() {\n" 2389 "getSelfRefList() {\n"
2386 " var list = new List(kArrayLength);\n" 2390 " var list = new List(kArrayLength);\n"
2387 " for (var i = 0; i < kArrayLength; i++) {\n" 2391 " for (var i = 0; i < kArrayLength; i++) {\n"
2388 " list[i] = list;\n" 2392 " list[i] = list;\n"
2389 " }\n" 2393 " }\n"
2390 " return list;\n" 2394 " return list;\n"
2391 "}\n"; 2395 "}\n";
2396 static const char* kScriptBigintChars =
2397 "getBigintList() {\n"
2398 " var bigint = 0x1234567890123456789012345678901234567890;\n"
2399 " var list = new List(kArrayLength);\n"
2400 " for (var i = 0; i < kArrayLength; i++) list[i] = bigint;\n"
2401 " return list;\n"
2402 "}\n";
2392 2403
2393 TestCase::CreateTestIsolate(); 2404 TestCase::CreateTestIsolate();
2394 Thread* thread = Thread::Current(); 2405 Thread* thread = Thread::Current();
2395 EXPECT(thread->isolate() != NULL); 2406 EXPECT(thread->isolate() != NULL);
2396 Dart_EnterScope(); 2407 Dart_EnterScope();
2397 2408
2398 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 2409 const char* scriptChars = kScriptCommonChars;
2410 if (!Bigint::IsDisabled()) {
2411 scriptChars =
2412 OS::SCreate(thread->zone(), "%s%s", scriptChars, kScriptBigintChars);
2413 }
2414
2415 Dart_Handle lib = TestCase::LoadTestScript(scriptChars, NULL);
2399 EXPECT_VALID(lib); 2416 EXPECT_VALID(lib);
2400 2417
2401 { 2418 {
2402 CHECK_API_SCOPE(thread); 2419 CHECK_API_SCOPE(thread);
2403 HANDLESCOPE(thread); 2420 HANDLESCOPE(thread);
2404 StackZone zone(thread); 2421 StackZone zone(thread);
2405 intptr_t buf_len = 0; 2422 intptr_t buf_len = 0;
2406 { 2423 {
2407 // Generate a list of strings from Dart code. 2424 // Generate a list of strings from Dart code.
2408 uint8_t* buf = GetSerialized(lib, "getStringList", &buf_len); 2425 uint8_t* buf = GetSerialized(lib, "getStringList", &buf_len);
(...skipping 17 matching lines...) Expand all
2426 EXPECT_NOTNULL(root); 2443 EXPECT_NOTNULL(root);
2427 EXPECT_EQ(Dart_CObject_kArray, root->type); 2444 EXPECT_EQ(Dart_CObject_kArray, root->type);
2428 EXPECT_EQ(kArrayLength, root->value.as_array.length); 2445 EXPECT_EQ(kArrayLength, root->value.as_array.length);
2429 for (int i = 0; i < kArrayLength; i++) { 2446 for (int i = 0; i < kArrayLength; i++) {
2430 Dart_CObject* element = root->value.as_array.values[i]; 2447 Dart_CObject* element = root->value.as_array.values[i];
2431 EXPECT_EQ(root->value.as_array.values[0], element); 2448 EXPECT_EQ(root->value.as_array.values[0], element);
2432 EXPECT_EQ(Dart_CObject_kInt64, element->type); 2449 EXPECT_EQ(Dart_CObject_kInt64, element->type);
2433 EXPECT_EQ(DART_INT64_C(0x7FFFFFFFFFFFFFFF), element->value.as_int64); 2450 EXPECT_EQ(DART_INT64_C(0x7FFFFFFFFFFFFFFF), element->value.as_int64);
2434 } 2451 }
2435 } 2452 }
2436 { 2453 if (!Bigint::IsDisabled()) {
2437 // Generate a list of bigints from Dart code. 2454 // Generate a list of bigints from Dart code.
2438 uint8_t* buf = GetSerialized(lib, "getBigintList", &buf_len); 2455 uint8_t* buf = GetSerialized(lib, "getBigintList", &buf_len);
2439 ApiNativeScope scope; 2456 ApiNativeScope scope;
2440 Dart_CObject* root = GetDeserialized(buf, buf_len); 2457 Dart_CObject* root = GetDeserialized(buf, buf_len);
2441 EXPECT_NOTNULL(root); 2458 EXPECT_NOTNULL(root);
2442 EXPECT_EQ(Dart_CObject_kArray, root->type); 2459 EXPECT_EQ(Dart_CObject_kArray, root->type);
2443 EXPECT_EQ(kArrayLength, root->value.as_array.length); 2460 EXPECT_EQ(kArrayLength, root->value.as_array.length);
2444 for (int i = 0; i < kArrayLength; i++) { 2461 for (int i = 0; i < kArrayLength; i++) {
2445 Dart_CObject* element = root->value.as_array.values[i]; 2462 Dart_CObject* element = root->value.as_array.values[i];
2446 EXPECT_EQ(root->value.as_array.values[0], element); 2463 EXPECT_EQ(root->value.as_array.values[0], element);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
2545 EXPECT_EQ(root, element); 2562 EXPECT_EQ(root, element);
2546 } 2563 }
2547 } 2564 }
2548 } 2565 }
2549 Dart_ExitScope(); 2566 Dart_ExitScope();
2550 Dart_ShutdownIsolate(); 2567 Dart_ShutdownIsolate();
2551 } 2568 }
2552 2569
2553 VM_UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) { 2570 VM_UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) {
2554 const int kArrayLength = 10; 2571 const int kArrayLength = 10;
2555 static const char* kScriptChars = 2572 static const char* kScriptCommonChars =
2556 "import 'dart:typed_data';\n" 2573 "import 'dart:typed_data';\n"
2557 "final int kArrayLength = 10;\n" 2574 "final int kArrayLength = 10;\n"
2558 "getStringList() {\n" 2575 "getStringList() {\n"
2559 " var s = 'Hello, world!';\n" 2576 " var s = 'Hello, world!';\n"
2560 " var list = [s, s, s, s, s, s, s, s, s, s];\n" 2577 " var list = [s, s, s, s, s, s, s, s, s, s];\n"
2561 " return list;\n" 2578 " return list;\n"
2562 "}\n" 2579 "}\n"
2563 "getMintList() {\n" 2580 "getMintList() {\n"
2564 " var mint = 0x7FFFFFFFFFFFFFFF;\n" 2581 " var mint = 0x7FFFFFFFFFFFFFFF;\n"
2565 " var list = [mint, mint, mint, mint, mint,\n" 2582 " var list = [mint, mint, mint, mint, mint,\n"
2566 " mint, mint, mint, mint, mint];\n" 2583 " mint, mint, mint, mint, mint];\n"
2567 " return list;\n" 2584 " return list;\n"
2568 "}\n" 2585 "}\n"
2569 "getBigintList() {\n"
2570 " var bigint = 0x1234567890123456789012345678901234567890;\n"
2571 " var list = [bigint, bigint, bigint, bigint, bigint,\n"
2572 " bigint, bigint, bigint, bigint, bigint];\n"
2573 " return list;\n"
2574 "}\n"
2575 "getDoubleList() {\n" 2586 "getDoubleList() {\n"
2576 " var d = 3.14;\n" 2587 " var d = 3.14;\n"
2577 " var list = [3.14, 3.14, 3.14, 3.14, 3.14, 3.14];\n" 2588 " var list = [3.14, 3.14, 3.14, 3.14, 3.14, 3.14];\n"
2578 " list.add(3.14);\n" 2589 " list.add(3.14);\n"
2579 " list.add(3.14);\n" 2590 " list.add(3.14);\n"
2580 " list.add(3.14);\n" 2591 " list.add(3.14);\n"
2581 " list.add(3.14);\n" 2592 " list.add(3.14);\n"
2582 " return list;\n" 2593 " return list;\n"
2583 "}\n" 2594 "}\n"
2584 "getTypedDataList() {\n" 2595 "getTypedDataList() {\n"
(...skipping 22 matching lines...) Expand all
2607 " }\n" 2618 " }\n"
2608 " return list;\n" 2619 " return list;\n"
2609 "}\n" 2620 "}\n"
2610 "getSelfRefList() {\n" 2621 "getSelfRefList() {\n"
2611 " var list = [];\n" 2622 " var list = [];\n"
2612 " for (var i = 0; i < kArrayLength; i++) {\n" 2623 " for (var i = 0; i < kArrayLength; i++) {\n"
2613 " list.add(list);\n" 2624 " list.add(list);\n"
2614 " }\n" 2625 " }\n"
2615 " return list;\n" 2626 " return list;\n"
2616 "}\n"; 2627 "}\n";
2628 static const char* kScriptBigintChars =
2629 "getBigintList() {\n"
2630 " var bigint = 0x1234567890123456789012345678901234567890;\n"
2631 " var list = [bigint, bigint, bigint, bigint, bigint,\n"
2632 " bigint, bigint, bigint, bigint, bigint];\n"
2633 " return list;\n"
2634 "}\n";
2617 2635
2618 TestCase::CreateTestIsolate(); 2636 TestCase::CreateTestIsolate();
2619 Thread* thread = Thread::Current(); 2637 Thread* thread = Thread::Current();
2620 EXPECT(thread->isolate() != NULL); 2638 EXPECT(thread->isolate() != NULL);
2621 Dart_EnterScope(); 2639 Dart_EnterScope();
2622 2640
2623 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 2641 const char* scriptChars = kScriptCommonChars;
2642 if (!Bigint::IsDisabled()) {
2643 scriptChars =
2644 OS::SCreate(thread->zone(), "%s%s", scriptChars, kScriptBigintChars);
2645 }
2646 Dart_Handle lib = TestCase::LoadTestScript(scriptChars, NULL);
2624 EXPECT_VALID(lib); 2647 EXPECT_VALID(lib);
2625 2648
2626 { 2649 {
2627 CHECK_API_SCOPE(thread); 2650 CHECK_API_SCOPE(thread);
2628 HANDLESCOPE(thread); 2651 HANDLESCOPE(thread);
2629 StackZone zone(thread); 2652 StackZone zone(thread);
2630 intptr_t buf_len = 0; 2653 intptr_t buf_len = 0;
2631 { 2654 {
2632 // Generate a list of strings from Dart code. 2655 // Generate a list of strings from Dart code.
2633 uint8_t* buf = GetSerialized(lib, "getStringList", &buf_len); 2656 uint8_t* buf = GetSerialized(lib, "getStringList", &buf_len);
(...skipping 17 matching lines...) Expand all
2651 EXPECT_NOTNULL(root); 2674 EXPECT_NOTNULL(root);
2652 EXPECT_EQ(Dart_CObject_kArray, root->type); 2675 EXPECT_EQ(Dart_CObject_kArray, root->type);
2653 EXPECT_EQ(kArrayLength, root->value.as_array.length); 2676 EXPECT_EQ(kArrayLength, root->value.as_array.length);
2654 for (int i = 0; i < kArrayLength; i++) { 2677 for (int i = 0; i < kArrayLength; i++) {
2655 Dart_CObject* element = root->value.as_array.values[i]; 2678 Dart_CObject* element = root->value.as_array.values[i];
2656 EXPECT_EQ(root->value.as_array.values[0], element); 2679 EXPECT_EQ(root->value.as_array.values[0], element);
2657 EXPECT_EQ(Dart_CObject_kInt64, element->type); 2680 EXPECT_EQ(Dart_CObject_kInt64, element->type);
2658 EXPECT_EQ(DART_INT64_C(0x7FFFFFFFFFFFFFFF), element->value.as_int64); 2681 EXPECT_EQ(DART_INT64_C(0x7FFFFFFFFFFFFFFF), element->value.as_int64);
2659 } 2682 }
2660 } 2683 }
2661 { 2684 if (!Bigint::IsDisabled()) {
2662 // Generate a list of bigints from Dart code. 2685 // Generate a list of bigints from Dart code.
2663 uint8_t* buf = GetSerialized(lib, "getBigintList", &buf_len); 2686 uint8_t* buf = GetSerialized(lib, "getBigintList", &buf_len);
2664 ApiNativeScope scope; 2687 ApiNativeScope scope;
2665 Dart_CObject* root = GetDeserialized(buf, buf_len); 2688 Dart_CObject* root = GetDeserialized(buf, buf_len);
2666 EXPECT_NOTNULL(root); 2689 EXPECT_NOTNULL(root);
2667 EXPECT_EQ(Dart_CObject_kArray, root->type); 2690 EXPECT_EQ(Dart_CObject_kArray, root->type);
2668 EXPECT_EQ(kArrayLength, root->value.as_array.length); 2691 EXPECT_EQ(kArrayLength, root->value.as_array.length);
2669 for (int i = 0; i < kArrayLength; i++) { 2692 for (int i = 0; i < kArrayLength; i++) {
2670 Dart_CObject* element = root->value.as_array.values[i]; 2693 Dart_CObject* element = root->value.as_array.values[i];
2671 EXPECT_EQ(root->value.as_array.values[0], element); 2694 EXPECT_EQ(root->value.as_array.values[0], element);
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
3069 StackZone zone(Thread::Current()); 3092 StackZone zone(Thread::Current());
3070 uint8_t* buffer; 3093 uint8_t* buffer;
3071 MessageWriter writer(&buffer, &zone_allocator, &zone_deallocator, true); 3094 MessageWriter writer(&buffer, &zone_allocator, &zone_deallocator, true);
3072 writer.WriteInlinedObjectHeader(kOmittedObjectId); 3095 writer.WriteInlinedObjectHeader(kOmittedObjectId);
3073 // For performance, we'd like single-byte headers when ids are omitted. 3096 // For performance, we'd like single-byte headers when ids are omitted.
3074 // If this starts failing, consider renumbering the snapshot ids. 3097 // If this starts failing, consider renumbering the snapshot ids.
3075 EXPECT_EQ(1, writer.BytesWritten()); 3098 EXPECT_EQ(1, writer.BytesWritten());
3076 } 3099 }
3077 3100
3078 } // namespace dart 3101 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698