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

Side by Side Diff: vm/dart_api_impl_test.cc

Issue 11412048: Change the library directive syntax in the VM unit tests, (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
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 | « vm/custom_isolate_test.cc ('k') | vm/isolate_test.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 2629 matching lines...) Expand 10 before | Expand all | Expand 10 after
2640 "\n" 2640 "\n"
2641 "Fields test() {\n" 2641 "Fields test() {\n"
2642 " Fields.Init();\n" 2642 " Fields.Init();\n"
2643 " top_fld = 'top';\n" 2643 " top_fld = 'top';\n"
2644 " _top_fld = 'hidden top';\n" 2644 " _top_fld = 'hidden top';\n"
2645 " top_getset_fld = 'top getset';\n" 2645 " top_getset_fld = 'top getset';\n"
2646 " _top_getset_fld = 'hidden top getset';\n" 2646 " _top_getset_fld = 'hidden top getset';\n"
2647 " return new Fields();\n" 2647 " return new Fields();\n"
2648 "}\n"; 2648 "}\n";
2649 const char* kImportedScriptChars = 2649 const char* kImportedScriptChars =
2650 "#library('library_name');\n" 2650 "library library_name;\n"
2651 "var imported_fld = 'imported';\n" 2651 "var imported_fld = 'imported';\n"
2652 "var _imported_fld = 'hidden imported';\n" 2652 "var _imported_fld = 'hidden imported';\n"
2653 "get imported_getset_fld { return _gs_fld1; }\n" 2653 "get imported_getset_fld { return _gs_fld1; }\n"
2654 "void set imported_getset_fld(var value) { _gs_fld1 = value; }\n" 2654 "void set imported_getset_fld(var value) { _gs_fld1 = value; }\n"
2655 "get _imported_getset_fld { return _gs_fld2; }\n" 2655 "get _imported_getset_fld { return _gs_fld2; }\n"
2656 "void set _imported_getset_fld(var value) { _gs_fld2 = value; }\n" 2656 "void set _imported_getset_fld(var value) { _gs_fld2 = value; }\n"
2657 "var _gs_fld1;\n" 2657 "var _gs_fld1;\n"
2658 "var _gs_fld2;\n" 2658 "var _gs_fld2;\n"
2659 "void test2() {\n" 2659 "void test2() {\n"
2660 " imported_getset_fld = 'imported getset';\n" 2660 " imported_getset_fld = 'imported getset';\n"
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
2944 2944
2945 // We expect this to fail as class "NativeFields" extends 2945 // We expect this to fail as class "NativeFields" extends
2946 // "NativeFieldsWrapper" and there is no definition of it either 2946 // "NativeFieldsWrapper" and there is no definition of it either
2947 // in the dart code or through the native field injection mechanism. 2947 // in the dart code or through the native field injection mechanism.
2948 EXPECT(Dart_IsError(result)); 2948 EXPECT(Dart_IsError(result));
2949 } 2949 }
2950 2950
2951 2951
2952 TEST_CASE(InjectNativeFields3) { 2952 TEST_CASE(InjectNativeFields3) {
2953 const char* kScriptChars = 2953 const char* kScriptChars =
2954 "#import('dart:nativewrappers');" 2954 "import 'dart:nativewrappers';"
2955 "class NativeFields extends NativeFieldWrapperClass2 {\n" 2955 "class NativeFields extends NativeFieldWrapperClass2 {\n"
2956 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n" 2956 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
2957 " int fld1;\n" 2957 " int fld1;\n"
2958 " final int fld2;\n" 2958 " final int fld2;\n"
2959 " static int fld3;\n" 2959 " static int fld3;\n"
2960 " static const int fld4 = 10;\n" 2960 " static const int fld4 = 10;\n"
2961 "}\n" 2961 "}\n"
2962 "NativeFields testMain() {\n" 2962 "NativeFields testMain() {\n"
2963 " NativeFields obj = new NativeFields(10, 20);\n" 2963 " NativeFields obj = new NativeFields(10, 20);\n"
2964 " return obj;\n" 2964 " return obj;\n"
(...skipping 21 matching lines...) Expand all
2986 intptr_t header_size = sizeof(RawObject); 2986 intptr_t header_size = sizeof(RawObject);
2987 EXPECT_EQ(Utils::RoundUp(((1 + 2) * kWordSize) + header_size, 2987 EXPECT_EQ(Utils::RoundUp(((1 + 2) * kWordSize) + header_size,
2988 kObjectAlignment), 2988 kObjectAlignment),
2989 cls.instance_size()); 2989 cls.instance_size());
2990 EXPECT_EQ(kNumNativeFields, cls.num_native_fields()); 2990 EXPECT_EQ(kNumNativeFields, cls.num_native_fields());
2991 } 2991 }
2992 2992
2993 2993
2994 TEST_CASE(InjectNativeFields4) { 2994 TEST_CASE(InjectNativeFields4) {
2995 const char* kScriptChars = 2995 const char* kScriptChars =
2996 "#import('dart:nativewrappers');" 2996 "import 'dart:nativewrappers';"
2997 "class NativeFields extends NativeFieldWrapperClass2 {\n" 2997 "class NativeFields extends NativeFieldWrapperClass2 {\n"
2998 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n" 2998 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
2999 " int fld1;\n" 2999 " int fld1;\n"
3000 " final int fld2;\n" 3000 " final int fld2;\n"
3001 " static int fld3;\n" 3001 " static int fld3;\n"
3002 " static const int fld4 = 10;\n" 3002 " static const int fld4 = 10;\n"
3003 "}\n" 3003 "}\n"
3004 "NativeFields testMain() {\n" 3004 "NativeFields testMain() {\n"
3005 " NativeFields obj = new NativeFields(10, 20);\n" 3005 " NativeFields obj = new NativeFields(10, 20);\n"
3006 " return obj;\n" 3006 " return obj;\n"
3007 "}\n"; 3007 "}\n";
3008 Dart_Handle result; 3008 Dart_Handle result;
3009 // Load up a test script in the test library. 3009 // Load up a test script in the test library.
3010 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 3010 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
3011 3011
3012 // Invoke a function which returns an object of type NativeFields. 3012 // Invoke a function which returns an object of type NativeFields.
3013 result = Dart_Invoke(lib, NewString("testMain"), 0, NULL); 3013 result = Dart_Invoke(lib, NewString("testMain"), 0, NULL);
3014 3014
3015 // We expect the test script to fail finalization with the error below: 3015 // We expect the test script to fail finalization with the error below:
3016 EXPECT(Dart_IsError(result)); 3016 EXPECT(Dart_IsError(result));
3017 Dart_Handle expected_error = Dart_Error( 3017 Dart_Handle expected_error = Dart_Error(
3018 "'dart:test-lib': Error: line 1 pos 38: " 3018 "'dart:test-lib': Error: line 1 pos 36: "
3019 "class 'NativeFields' is trying to extend a native fields class, " 3019 "class 'NativeFields' is trying to extend a native fields class, "
3020 "but library '%s' has no native resolvers", 3020 "but library '%s' has no native resolvers",
3021 TestCase::url()); 3021 TestCase::url());
3022 EXPECT_SUBSTRING(Dart_GetError(expected_error), Dart_GetError(result)); 3022 EXPECT_SUBSTRING(Dart_GetError(expected_error), Dart_GetError(result));
3023 } 3023 }
3024 3024
3025 3025
3026 TEST_CASE(InjectNativeFieldsSuperClass) { 3026 TEST_CASE(InjectNativeFieldsSuperClass) {
3027 const char* kScriptChars = 3027 const char* kScriptChars =
3028 "#import('dart:nativewrappers');" 3028 "import 'dart:nativewrappers';"
3029 "class NativeFieldsSuper extends NativeFieldWrapperClass1 {\n" 3029 "class NativeFieldsSuper extends NativeFieldWrapperClass1 {\n"
3030 " NativeFieldsSuper() : fld1 = 42 {}\n" 3030 " NativeFieldsSuper() : fld1 = 42 {}\n"
3031 " int fld1;\n" 3031 " int fld1;\n"
3032 "}\n" 3032 "}\n"
3033 "class NativeFields extends NativeFieldsSuper {\n" 3033 "class NativeFields extends NativeFieldsSuper {\n"
3034 " fld() => fld1;\n" 3034 " fld() => fld1;\n"
3035 "}\n" 3035 "}\n"
3036 "int testMain() {\n" 3036 "int testMain() {\n"
3037 " NativeFields obj = new NativeFields();\n" 3037 " NativeFields obj = new NativeFields();\n"
3038 " return obj.fld();\n" 3038 " return obj.fld();\n"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
3178 EXPECT_STREQ("myerror", Dart_GetError(result)); 3178 EXPECT_STREQ("myerror", Dart_GetError(result));
3179 3179
3180 result = Dart_SetNativeInstanceField(error, 0, 1); 3180 result = Dart_SetNativeInstanceField(error, 0, 1);
3181 EXPECT(Dart_IsError(result)); 3181 EXPECT(Dart_IsError(result));
3182 EXPECT_STREQ("myerror", Dart_GetError(result)); 3182 EXPECT_STREQ("myerror", Dart_GetError(result));
3183 } 3183 }
3184 3184
3185 3185
3186 TEST_CASE(ImplicitNativeFieldAccess) { 3186 TEST_CASE(ImplicitNativeFieldAccess) {
3187 const char* kScriptChars = 3187 const char* kScriptChars =
3188 "#import('dart:nativewrappers');" 3188 "import 'dart:nativewrappers';"
3189 "class NativeFields extends NativeFieldWrapperClass4 {\n" 3189 "class NativeFields extends NativeFieldWrapperClass4 {\n"
3190 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n" 3190 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
3191 " int fld0;\n" 3191 " int fld0;\n"
3192 " int fld1;\n" 3192 " int fld1;\n"
3193 " final int fld2;\n" 3193 " final int fld2;\n"
3194 " static int fld3;\n" 3194 " static int fld3;\n"
3195 " static const int fld4 = 10;\n" 3195 " static const int fld4 = 10;\n"
3196 "}\n" 3196 "}\n"
3197 "NativeFields testMain() {\n" 3197 "NativeFields testMain() {\n"
3198 " NativeFields obj = new NativeFields(10, 20);\n" 3198 " NativeFields obj = new NativeFields(10, 20);\n"
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
3804 function_name2, 3804 function_name2,
3805 number_of_arguments, 3805 number_of_arguments,
3806 dart_arguments); 3806 dart_arguments);
3807 EXPECT(Dart_IsError(result)); 3807 EXPECT(Dart_IsError(result));
3808 EXPECT(Dart_ErrorHasException(result)); */ 3808 EXPECT(Dart_ErrorHasException(result)); */
3809 } 3809 }
3810 3810
3811 3811
3812 TEST_CASE(Invoke_CrossLibrary) { 3812 TEST_CASE(Invoke_CrossLibrary) {
3813 const char* kLibrary1Chars = 3813 const char* kLibrary1Chars =
3814 "#library('library1_name');\n" 3814 "library library1_name;\n"
3815 "void local() {}\n" 3815 "void local() {}\n"
3816 "void _local() {}\n"; 3816 "void _local() {}\n";
3817 const char* kLibrary2Chars = 3817 const char* kLibrary2Chars =
3818 "#library('library2_name');\n" 3818 "library library2_name;\n"
3819 "void imported() {}\n" 3819 "void imported() {}\n"
3820 "void _imported() {}\n"; 3820 "void _imported() {}\n";
3821 3821
3822 // Load lib1 3822 // Load lib1
3823 Dart_Handle url = NewString("library1_url"); 3823 Dart_Handle url = NewString("library1_url");
3824 Dart_Handle source = NewString(kLibrary1Chars); 3824 Dart_Handle source = NewString(kLibrary1Chars);
3825 Dart_Handle lib1 = Dart_LoadLibrary(url, source); 3825 Dart_Handle lib1 = Dart_LoadLibrary(url, source);
3826 EXPECT_VALID(lib1); 3826 EXPECT_VALID(lib1);
3827 3827
3828 // Load lib2 3828 // Load lib2
(...skipping 1279 matching lines...) Expand 10 before | Expand all | Expand 10 after
5108 Dart_Handle result = Dart_SetLibraryTagHandler(import_library_handler); 5108 Dart_Handle result = Dart_SetLibraryTagHandler(import_library_handler);
5109 EXPECT_VALID(result); 5109 EXPECT_VALID(result);
5110 result = Dart_LoadScript(url, source); 5110 result = Dart_LoadScript(url, source);
5111 EXPECT(Dart_IsError(result)); 5111 EXPECT(Dart_IsError(result));
5112 EXPECT(strstr(Dart_GetError(result), "unexpected token ')'")); 5112 EXPECT(strstr(Dart_GetError(result), "unexpected token ')'"));
5113 } 5113 }
5114 5114
5115 5115
5116 TEST_CASE(LookupLibrary) { 5116 TEST_CASE(LookupLibrary) {
5117 const char* kScriptChars = 5117 const char* kScriptChars =
5118 "#import('library1.dart');" 5118 "import 'library1_dart';"
5119 "main() {}"; 5119 "main() {}";
5120 const char* kLibrary1Chars = 5120 const char* kLibrary1Chars =
5121 "#library('library1.dart');" 5121 "library library1_dart;"
5122 "#import('library2.dart');"; 5122 "import 'library2_dart';";
5123 5123
5124 // Create a test library and Load up a test script in it. 5124 // Create a test library and Load up a test script in it.
5125 Dart_Handle url = NewString(TestCase::url()); 5125 Dart_Handle url = NewString(TestCase::url());
5126 Dart_Handle source = NewString(kScriptChars); 5126 Dart_Handle source = NewString(kScriptChars);
5127 Dart_Handle result = Dart_SetLibraryTagHandler(library_handler); 5127 Dart_Handle result = Dart_SetLibraryTagHandler(library_handler);
5128 EXPECT_VALID(result); 5128 EXPECT_VALID(result);
5129 result = Dart_LoadScript(url, source); 5129 result = Dart_LoadScript(url, source);
5130 EXPECT_VALID(result); 5130 EXPECT_VALID(result);
5131 5131
5132 url = NewString("library1.dart"); 5132 url = NewString("library1_dart");
5133 source = NewString(kLibrary1Chars); 5133 source = NewString(kLibrary1Chars);
5134 result = Dart_LoadLibrary(url, source); 5134 result = Dart_LoadLibrary(url, source);
5135 EXPECT_VALID(result); 5135 EXPECT_VALID(result);
5136 5136
5137 result = Dart_LookupLibrary(url); 5137 result = Dart_LookupLibrary(url);
5138 EXPECT_VALID(result); 5138 EXPECT_VALID(result);
5139 5139
5140 result = Dart_LookupLibrary(Dart_Null()); 5140 result = Dart_LookupLibrary(Dart_Null());
5141 EXPECT(Dart_IsError(result)); 5141 EXPECT(Dart_IsError(result));
5142 EXPECT_STREQ("Dart_LookupLibrary expects argument 'url' to be non-null.", 5142 EXPECT_STREQ("Dart_LookupLibrary expects argument 'url' to be non-null.",
(...skipping 12 matching lines...) Expand all
5155 url = NewString("noodles.dart"); 5155 url = NewString("noodles.dart");
5156 result = Dart_LookupLibrary(url); 5156 result = Dart_LookupLibrary(url);
5157 EXPECT(Dart_IsError(result)); 5157 EXPECT(Dart_IsError(result));
5158 EXPECT_STREQ("Dart_LookupLibrary: library 'noodles.dart' not found.", 5158 EXPECT_STREQ("Dart_LookupLibrary: library 'noodles.dart' not found.",
5159 Dart_GetError(result)); 5159 Dart_GetError(result));
5160 } 5160 }
5161 5161
5162 5162
5163 TEST_CASE(LibraryName) { 5163 TEST_CASE(LibraryName) {
5164 const char* kLibrary1Chars = 5164 const char* kLibrary1Chars =
5165 "#library('library1_name');"; 5165 "library library1_name;";
5166 Dart_Handle url = NewString("library1_url"); 5166 Dart_Handle url = NewString("library1_url");
5167 Dart_Handle source = NewString(kLibrary1Chars); 5167 Dart_Handle source = NewString(kLibrary1Chars);
5168 Dart_Handle lib = Dart_LoadLibrary(url, source); 5168 Dart_Handle lib = Dart_LoadLibrary(url, source);
5169 Dart_Handle error = Dart_Error("incoming error"); 5169 Dart_Handle error = Dart_Error("incoming error");
5170 EXPECT_VALID(lib); 5170 EXPECT_VALID(lib);
5171 5171
5172 Dart_Handle result = Dart_LibraryName(Dart_Null()); 5172 Dart_Handle result = Dart_LibraryName(Dart_Null());
5173 EXPECT(Dart_IsError(result)); 5173 EXPECT(Dart_IsError(result));
5174 EXPECT_STREQ("Dart_LibraryName expects argument 'library' to be non-null.", 5174 EXPECT_STREQ("Dart_LibraryName expects argument 'library' to be non-null.",
5175 Dart_GetError(result)); 5175 Dart_GetError(result));
(...skipping 12 matching lines...) Expand all
5188 EXPECT_VALID(result); 5188 EXPECT_VALID(result);
5189 EXPECT(Dart_IsString(result)); 5189 EXPECT(Dart_IsString(result));
5190 const char* cstr = NULL; 5190 const char* cstr = NULL;
5191 EXPECT_VALID(Dart_StringToCString(result, &cstr)); 5191 EXPECT_VALID(Dart_StringToCString(result, &cstr));
5192 EXPECT_STREQ("library1_name", cstr); 5192 EXPECT_STREQ("library1_name", cstr);
5193 } 5193 }
5194 5194
5195 5195
5196 TEST_CASE(LibraryUrl) { 5196 TEST_CASE(LibraryUrl) {
5197 const char* kLibrary1Chars = 5197 const char* kLibrary1Chars =
5198 "#library('library1_name');"; 5198 "library library1_name;";
5199 Dart_Handle url = NewString("library1_url"); 5199 Dart_Handle url = NewString("library1_url");
5200 Dart_Handle source = NewString(kLibrary1Chars); 5200 Dart_Handle source = NewString(kLibrary1Chars);
5201 Dart_Handle lib = Dart_LoadLibrary(url, source); 5201 Dart_Handle lib = Dart_LoadLibrary(url, source);
5202 Dart_Handle error = Dart_Error("incoming error"); 5202 Dart_Handle error = Dart_Error("incoming error");
5203 EXPECT_VALID(lib); 5203 EXPECT_VALID(lib);
5204 5204
5205 Dart_Handle result = Dart_LibraryUrl(Dart_Null()); 5205 Dart_Handle result = Dart_LibraryUrl(Dart_Null());
5206 EXPECT(Dart_IsError(result)); 5206 EXPECT(Dart_IsError(result));
5207 EXPECT_STREQ("Dart_LibraryUrl expects argument 'library' to be non-null.", 5207 EXPECT_STREQ("Dart_LibraryUrl expects argument 'library' to be non-null.",
5208 Dart_GetError(result)); 5208 Dart_GetError(result));
(...skipping 12 matching lines...) Expand all
5221 EXPECT_VALID(result); 5221 EXPECT_VALID(result);
5222 EXPECT(Dart_IsString(result)); 5222 EXPECT(Dart_IsString(result));
5223 const char* cstr = NULL; 5223 const char* cstr = NULL;
5224 EXPECT_VALID(Dart_StringToCString(result, &cstr)); 5224 EXPECT_VALID(Dart_StringToCString(result, &cstr));
5225 EXPECT_STREQ("library1_url", cstr); 5225 EXPECT_STREQ("library1_url", cstr);
5226 } 5226 }
5227 5227
5228 5228
5229 TEST_CASE(LibraryGetClassNames) { 5229 TEST_CASE(LibraryGetClassNames) {
5230 const char* kLibraryChars = 5230 const char* kLibraryChars =
5231 "#library('library_name');\n" 5231 "library library_name;\n"
5232 "\n" 5232 "\n"
5233 "class A {}\n" 5233 "class A {}\n"
5234 "class B {}\n" 5234 "class B {}\n"
5235 "interface C {}\n" 5235 "interface C {}\n"
5236 "class _A {}\n" 5236 "class _A {}\n"
5237 "class _B {}\n" 5237 "class _B {}\n"
5238 "interface _C {}\n" 5238 "interface _C {}\n"
5239 "\n" 5239 "\n"
5240 "_compare(String a, String b) => a.compareTo(b);\n" 5240 "_compare(String a, String b) => a.compareTo(b);\n"
5241 "sort(list) => list.sort(_compare);\n"; 5241 "sort(list) => list.sort(_compare);\n";
(...skipping 16 matching lines...) Expand all
5258 Dart_Handle list_string = Dart_ToString(list); 5258 Dart_Handle list_string = Dart_ToString(list);
5259 EXPECT_VALID(list_string); 5259 EXPECT_VALID(list_string);
5260 const char* list_cstr = ""; 5260 const char* list_cstr = "";
5261 EXPECT_VALID(Dart_StringToCString(list_string, &list_cstr)); 5261 EXPECT_VALID(Dart_StringToCString(list_string, &list_cstr));
5262 EXPECT_STREQ("[A, B, C, _A, _B, _C]", list_cstr); 5262 EXPECT_STREQ("[A, B, C, _A, _B, _C]", list_cstr);
5263 } 5263 }
5264 5264
5265 5265
5266 TEST_CASE(GetFunctionNames) { 5266 TEST_CASE(GetFunctionNames) {
5267 const char* kLibraryChars = 5267 const char* kLibraryChars =
5268 "#library('library_name');\n" 5268 "library library_name;\n"
5269 "\n" 5269 "\n"
5270 "void A() {}\n" 5270 "void A() {}\n"
5271 "get B => 11;\n" 5271 "get B => 11;\n"
5272 "set C(x) { }\n" 5272 "set C(x) { }\n"
5273 "var D;\n" 5273 "var D;\n"
5274 "void _A() {}\n" 5274 "void _A() {}\n"
5275 "get _B => 11;\n" 5275 "get _B => 11;\n"
5276 "set _C(x) { }\n" 5276 "set _C(x) { }\n"
5277 "var _D;\n" 5277 "var _D;\n"
5278 "\n" 5278 "\n"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
5328 list_string = Dart_ToString(list); 5328 list_string = Dart_ToString(list);
5329 EXPECT_VALID(list_string); 5329 EXPECT_VALID(list_string);
5330 list_cstr = ""; 5330 list_cstr = "";
5331 EXPECT_VALID(Dart_StringToCString(list_string, &list_cstr)); 5331 EXPECT_VALID(Dart_StringToCString(list_string, &list_cstr));
5332 EXPECT_STREQ("[A2, B2, C2=, MyClass, _A2, _B2, _C2=]", list_cstr); 5332 EXPECT_STREQ("[A2, B2, C2=, MyClass, _A2, _B2, _C2=]", list_cstr);
5333 } 5333 }
5334 5334
5335 5335
5336 TEST_CASE(GetVariableNames) { 5336 TEST_CASE(GetVariableNames) {
5337 const char* kLibraryChars = 5337 const char* kLibraryChars =
5338 "#library('library_name');\n" 5338 "library library_name;\n"
5339 "\n" 5339 "\n"
5340 "var A;\n" 5340 "var A;\n"
5341 "get B => 12;\n" 5341 "get B => 12;\n"
5342 "set C(x) { }\n" 5342 "set C(x) { }\n"
5343 "D(x) => (x + 1);\n" 5343 "D(x) => (x + 1);\n"
5344 "var _A;\n" 5344 "var _A;\n"
5345 "get _B => 12;\n" 5345 "get _B => 12;\n"
5346 "set _C(x) { }\n" 5346 "set _C(x) { }\n"
5347 "_D(x) => (x + 1);\n" 5347 "_D(x) => (x + 1);\n"
5348 "\n" 5348 "\n"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
5393 list_string = Dart_ToString(list); 5393 list_string = Dart_ToString(list);
5394 EXPECT_VALID(list_string); 5394 EXPECT_VALID(list_string);
5395 list_cstr = ""; 5395 list_cstr = "";
5396 EXPECT_VALID(Dart_StringToCString(list_string, &list_cstr)); 5396 EXPECT_VALID(Dart_StringToCString(list_string, &list_cstr));
5397 EXPECT_STREQ("[A2, _A2]", list_cstr); 5397 EXPECT_STREQ("[A2, _A2]", list_cstr);
5398 } 5398 }
5399 5399
5400 5400
5401 TEST_CASE(LibraryImportLibrary) { 5401 TEST_CASE(LibraryImportLibrary) {
5402 const char* kLibrary1Chars = 5402 const char* kLibrary1Chars =
5403 "#library('library1_name');"; 5403 "library library1_name;";
5404 const char* kLibrary2Chars = 5404 const char* kLibrary2Chars =
5405 "#library('library2_name');"; 5405 "library library2_name;";
5406 Dart_Handle error = Dart_Error("incoming error"); 5406 Dart_Handle error = Dart_Error("incoming error");
5407 Dart_Handle result; 5407 Dart_Handle result;
5408 5408
5409 Dart_Handle url = NewString("library1_url"); 5409 Dart_Handle url = NewString("library1_url");
5410 Dart_Handle source = NewString(kLibrary1Chars); 5410 Dart_Handle source = NewString(kLibrary1Chars);
5411 Dart_Handle lib1 = Dart_LoadLibrary(url, source); 5411 Dart_Handle lib1 = Dart_LoadLibrary(url, source);
5412 EXPECT_VALID(lib1); 5412 EXPECT_VALID(lib1);
5413 5413
5414 url = NewString("library2_url"); 5414 url = NewString("library2_url");
5415 source = NewString(kLibrary2Chars); 5415 source = NewString(kLibrary2Chars);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
5448 EXPECT(Dart_IsError(result)); 5448 EXPECT(Dart_IsError(result));
5449 EXPECT_STREQ("incoming error", Dart_GetError(result)); 5449 EXPECT_STREQ("incoming error", Dart_GetError(result));
5450 5450
5451 result = Dart_LibraryImportLibrary(lib1, lib2, Dart_Null()); 5451 result = Dart_LibraryImportLibrary(lib1, lib2, Dart_Null());
5452 EXPECT_VALID(result); 5452 EXPECT_VALID(result);
5453 } 5453 }
5454 5454
5455 5455
5456 TEST_CASE(ImportLibraryWithPrefix) { 5456 TEST_CASE(ImportLibraryWithPrefix) {
5457 const char* kLibrary1Chars = 5457 const char* kLibrary1Chars =
5458 "#library('library1_name');" 5458 "library library1_name;"
5459 "int bar() => 42;"; 5459 "int bar() => 42;";
5460 Dart_Handle url1 = NewString("library1_url"); 5460 Dart_Handle url1 = NewString("library1_url");
5461 Dart_Handle source1 = NewString(kLibrary1Chars); 5461 Dart_Handle source1 = NewString(kLibrary1Chars);
5462 Dart_Handle lib1 = Dart_LoadLibrary(url1, source1); 5462 Dart_Handle lib1 = Dart_LoadLibrary(url1, source1);
5463 EXPECT_VALID(lib1); 5463 EXPECT_VALID(lib1);
5464 EXPECT(Dart_IsLibrary(lib1)); 5464 EXPECT(Dart_IsLibrary(lib1));
5465 5465
5466 const char* kLibrary2Chars = 5466 const char* kLibrary2Chars =
5467 "#library('library2_name');" 5467 "library library2_name;"
5468 "int foobar() => foo.bar();"; 5468 "int foobar() => foo.bar();";
5469 Dart_Handle url2 = NewString("library2_url"); 5469 Dart_Handle url2 = NewString("library2_url");
5470 Dart_Handle source2 = NewString(kLibrary2Chars); 5470 Dart_Handle source2 = NewString(kLibrary2Chars);
5471 Dart_Handle lib2 = Dart_LoadLibrary(url2, source2); 5471 Dart_Handle lib2 = Dart_LoadLibrary(url2, source2);
5472 EXPECT_VALID(lib2); 5472 EXPECT_VALID(lib2);
5473 EXPECT(Dart_IsLibrary(lib2)); 5473 EXPECT(Dart_IsLibrary(lib2));
5474 5474
5475 Dart_Handle prefix = NewString("foo"); 5475 Dart_Handle prefix = NewString("foo");
5476 Dart_Handle result = Dart_LibraryImportLibrary(lib2, lib1, prefix); 5476 Dart_Handle result = Dart_LibraryImportLibrary(lib2, lib1, prefix);
5477 EXPECT_VALID(result); 5477 EXPECT_VALID(result);
(...skipping 11 matching lines...) Expand all
5489 EXPECT(Dart_IsInteger(result)); 5489 EXPECT(Dart_IsInteger(result));
5490 int64_t value = 0; 5490 int64_t value = 0;
5491 EXPECT_VALID(Dart_IntegerToInt64(result, &value)); 5491 EXPECT_VALID(Dart_IntegerToInt64(result, &value));
5492 EXPECT_EQ(42, value); 5492 EXPECT_EQ(42, value);
5493 } 5493 }
5494 5494
5495 5495
5496 5496
5497 TEST_CASE(LoadLibrary) { 5497 TEST_CASE(LoadLibrary) {
5498 const char* kLibrary1Chars = 5498 const char* kLibrary1Chars =
5499 "#library('library1_name');"; 5499 "library library1_name;";
5500 Dart_Handle error = Dart_Error("incoming error"); 5500 Dart_Handle error = Dart_Error("incoming error");
5501 Dart_Handle result; 5501 Dart_Handle result;
5502 5502
5503 Dart_Handle url = NewString("library1_url"); 5503 Dart_Handle url = NewString("library1_url");
5504 Dart_Handle source = NewString(kLibrary1Chars); 5504 Dart_Handle source = NewString(kLibrary1Chars);
5505 5505
5506 result = Dart_LoadLibrary(Dart_Null(), source); 5506 result = Dart_LoadLibrary(Dart_Null(), source);
5507 EXPECT(Dart_IsError(result)); 5507 EXPECT(Dart_IsError(result));
5508 EXPECT_STREQ("Dart_LoadLibrary expects argument 'url' to be non-null.", 5508 EXPECT_STREQ("Dart_LoadLibrary expects argument 'url' to be non-null.",
5509 Dart_GetError(result)); 5509 Dart_GetError(result));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
5541 result = Dart_LoadLibrary(url, source); 5541 result = Dart_LoadLibrary(url, source);
5542 EXPECT(Dart_IsError(result)); 5542 EXPECT(Dart_IsError(result));
5543 EXPECT_STREQ( 5543 EXPECT_STREQ(
5544 "Dart_LoadLibrary: library 'library1_url' has already been loaded.", 5544 "Dart_LoadLibrary: library 'library1_url' has already been loaded.",
5545 Dart_GetError(result)); 5545 Dart_GetError(result));
5546 } 5546 }
5547 5547
5548 5548
5549 TEST_CASE(LoadLibrary_CompileError) { 5549 TEST_CASE(LoadLibrary_CompileError) {
5550 const char* kLibrary1Chars = 5550 const char* kLibrary1Chars =
5551 "#library('library1_name');" 5551 "library library1_name;"
5552 ")"; 5552 ")";
5553 Dart_Handle url = NewString("library1_url"); 5553 Dart_Handle url = NewString("library1_url");
5554 Dart_Handle source = NewString(kLibrary1Chars); 5554 Dart_Handle source = NewString(kLibrary1Chars);
5555 Dart_Handle result = Dart_LoadLibrary(url, source); 5555 Dart_Handle result = Dart_LoadLibrary(url, source);
5556 EXPECT(Dart_IsError(result)); 5556 EXPECT(Dart_IsError(result));
5557 EXPECT(strstr(Dart_GetError(result), "unexpected token ')'")); 5557 EXPECT(strstr(Dart_GetError(result), "unexpected token ')'"));
5558 } 5558 }
5559 5559
5560 5560
5561 TEST_CASE(LoadSource) { 5561 TEST_CASE(LoadSource) {
5562 const char* kLibrary1Chars = 5562 const char* kLibrary1Chars =
5563 "#library('library1_name');"; 5563 "library library1_name;";
5564 const char* kSourceChars = 5564 const char* kSourceChars =
5565 "// Something innocuous"; 5565 "// Something innocuous";
5566 const char* kBadSourceChars = 5566 const char* kBadSourceChars =
5567 ")"; 5567 ")";
5568 Dart_Handle error = Dart_Error("incoming error"); 5568 Dart_Handle error = Dart_Error("incoming error");
5569 Dart_Handle result; 5569 Dart_Handle result;
5570 5570
5571 // Load up a library. 5571 // Load up a library.
5572 Dart_Handle url = NewString("library1_url"); 5572 Dart_Handle url = NewString("library1_url");
5573 Dart_Handle source = NewString(kLibrary1Chars); 5573 Dart_Handle source = NewString(kLibrary1Chars);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
5636 5636
5637 // Language errors are detected. 5637 // Language errors are detected.
5638 source = NewString(kBadSourceChars); 5638 source = NewString(kBadSourceChars);
5639 result = Dart_LoadSource(lib, url, source); 5639 result = Dart_LoadSource(lib, url, source);
5640 EXPECT(Dart_IsError(result)); 5640 EXPECT(Dart_IsError(result));
5641 } 5641 }
5642 5642
5643 5643
5644 TEST_CASE(LoadSource_LateLoad) { 5644 TEST_CASE(LoadSource_LateLoad) {
5645 const char* kLibrary1Chars = 5645 const char* kLibrary1Chars =
5646 "#library('library1_name');\n" 5646 "library library1_name;\n"
5647 "class OldClass {\n" 5647 "class OldClass {\n"
5648 " foo() => 'foo';\n" 5648 " foo() => 'foo';\n"
5649 "}\n"; 5649 "}\n";
5650 const char* kSourceChars = 5650 const char* kSourceChars =
5651 "class NewClass extends OldClass{\n" 5651 "class NewClass extends OldClass{\n"
5652 " bar() => 'bar';\n" 5652 " bar() => 'bar';\n"
5653 "}\n"; 5653 "}\n";
5654 Dart_Handle url = NewString("library1_url"); 5654 Dart_Handle url = NewString("library1_url");
5655 Dart_Handle source = NewString(kLibrary1Chars); 5655 Dart_Handle source = NewString(kLibrary1Chars);
5656 Dart_Handle lib = Dart_LoadLibrary(url, source); 5656 Dart_Handle lib = Dart_LoadLibrary(url, source);
(...skipping 24 matching lines...) Expand all
5681 EXPECT_VALID(result); 5681 EXPECT_VALID(result);
5682 EXPECT(Dart_IsString(result)); 5682 EXPECT(Dart_IsString(result));
5683 result_cstr = ""; 5683 result_cstr = "";
5684 EXPECT_VALID(Dart_StringToCString(result, &result_cstr)); 5684 EXPECT_VALID(Dart_StringToCString(result, &result_cstr));
5685 EXPECT_STREQ("bar", result_cstr); 5685 EXPECT_STREQ("bar", result_cstr);
5686 } 5686 }
5687 5687
5688 5688
5689 TEST_CASE(LoadPatch) { 5689 TEST_CASE(LoadPatch) {
5690 const char* kLibrary1Chars = 5690 const char* kLibrary1Chars =
5691 "#library('library1_name');"; 5691 "library library1_name;";
5692 const char* kSourceChars = 5692 const char* kSourceChars =
5693 "external int foo();"; 5693 "external int foo();";
5694 const char* kPatchChars = 5694 const char* kPatchChars =
5695 "patch int foo() => 42;"; 5695 "patch int foo() => 42;";
5696 5696
5697 // Load up a library. 5697 // Load up a library.
5698 Dart_Handle url = NewString("library1_url"); 5698 Dart_Handle url = NewString("library1_url");
5699 Dart_Handle source = NewString(kLibrary1Chars); 5699 Dart_Handle source = NewString(kLibrary1Chars);
5700 Dart_Handle lib = Dart_LoadLibrary(url, source); 5700 Dart_Handle lib = Dart_LoadLibrary(url, source);
5701 EXPECT_VALID(lib); 5701 EXPECT_VALID(lib);
(...skipping 28 matching lines...) Expand all
5730 5730
5731 5731
5732 static Dart_NativeFunction PatchNativeResolver(Dart_Handle name, 5732 static Dart_NativeFunction PatchNativeResolver(Dart_Handle name,
5733 int arg_count) { 5733 int arg_count) {
5734 return &PatchNativeFunction; 5734 return &PatchNativeFunction;
5735 } 5735 }
5736 5736
5737 5737
5738 TEST_CASE(ParsePatchLibrary) { 5738 TEST_CASE(ParsePatchLibrary) {
5739 const char* kLibraryChars = 5739 const char* kLibraryChars =
5740 "#library('patched_library');\n" 5740 "library patched_library;\n"
5741 "class A {\n" 5741 "class A {\n"
5742 " final fvalue;\n" 5742 " final fvalue;\n"
5743 " var _f;\n" 5743 " var _f;\n"
5744 " callFunc(x, y) => x(y);\n" 5744 " callFunc(x, y) => x(y);\n"
5745 " external method(var value);\n" 5745 " external method(var value);\n"
5746 " get field => _field;\n" 5746 " get field => _field;\n"
5747 "}\n" 5747 "}\n"
5748 "class B {\n" 5748 "class B {\n"
5749 " var val;\n" 5749 " var val;\n"
5750 " external B.named(x);\n" 5750 " external B.named(x);\n"
(...skipping 21 matching lines...) Expand all
5772 " /*patch*/ factory B(v) native \"const_B_factory\";\n" 5772 " /*patch*/ factory B(v) native \"const_B_factory\";\n"
5773 "}\n" 5773 "}\n"
5774 "var _topLevelValue = -1;\n" 5774 "var _topLevelValue = -1;\n"
5775 "patch int topLevel(var value) => value * value;\n" 5775 "patch int topLevel(var value) => value * value;\n"
5776 "patch int set topLevelSetter(value) { _topLevelValue = value; }\n" 5776 "patch int set topLevelSetter(value) { _topLevelValue = value; }\n"
5777 "patch int get topLevelGetter => 2 * _topLevelValue;\n" 5777 "patch int get topLevelGetter => 2 * _topLevelValue;\n"
5778 // Allow top level methods named patch. 5778 // Allow top level methods named patch.
5779 "patch(x) => x*3;\n"; 5779 "patch(x) => x*3;\n";
5780 5780
5781 const char* kScriptChars = 5781 const char* kScriptChars =
5782 "#import('theLibrary');\n" 5782 "import 'theLibrary';\n"
5783 "e1() => unpatched();\n" 5783 "e1() => unpatched();\n"
5784 "m1() => topLevel(2);\n" 5784 "m1() => topLevel(2);\n"
5785 "m2() {\n" 5785 "m2() {\n"
5786 " topLevelSetter = 20;\n" 5786 " topLevelSetter = 20;\n"
5787 " return topLevelGetter;\n" 5787 " return topLevelGetter;\n"
5788 "}\n" 5788 "}\n"
5789 "m3() => patch(7);\n" 5789 "m3() => patch(7);\n"
5790 "m4() {\n" 5790 "m4() {\n"
5791 " var a = new A();\n" 5791 " var a = new A();\n"
5792 " a.method(5);\n" 5792 " a.method(5);\n"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
5975 5975
5976 EXPECT_ERROR(Dart_Invoke(cls, NewString("baz"), 0, NULL), 5976 EXPECT_ERROR(Dart_Invoke(cls, NewString("baz"), 0, NULL),
5977 "native function 'SomeNativeFunction3' cannot be found"); 5977 "native function 'SomeNativeFunction3' cannot be found");
5978 } 5978 }
5979 5979
5980 5980
5981 // Test that an imported name does not clash with the same name defined 5981 // Test that an imported name does not clash with the same name defined
5982 // in the importing library. 5982 // in the importing library.
5983 TEST_CASE(ImportLibrary2) { 5983 TEST_CASE(ImportLibrary2) {
5984 const char* kScriptChars = 5984 const char* kScriptChars =
5985 "#import('library1.dart');\n" 5985 "import 'library1_dart';\n"
5986 "var foo;\n" 5986 "var foo;\n"
5987 "main() { foo = 0; }\n"; 5987 "main() { foo = 0; }\n";
5988 const char* kLibrary1Chars = 5988 const char* kLibrary1Chars =
5989 "#library('library1.dart');\n" 5989 "library library1_dart;\n"
5990 "#import('library2.dart');\n" 5990 "import 'library2_dart';\n"
5991 "var foo;\n"; 5991 "var foo;\n";
5992 const char* kLibrary2Chars = 5992 const char* kLibrary2Chars =
5993 "#library('library2.dart');\n" 5993 "library library2_dart;\n"
5994 "#import('library1.dart');\n" 5994 "import 'library1_dart';\n"
5995 "var foo;\n"; 5995 "var foo;\n";
5996 Dart_Handle result; 5996 Dart_Handle result;
5997 // Create a test library and Load up a test script in it. 5997 // Create a test library and Load up a test script in it.
5998 Dart_Handle url = NewString(TestCase::url()); 5998 Dart_Handle url = NewString(TestCase::url());
5999 Dart_Handle source = NewString(kScriptChars); 5999 Dart_Handle source = NewString(kScriptChars);
6000 result = Dart_SetLibraryTagHandler(library_handler); 6000 result = Dart_SetLibraryTagHandler(library_handler);
6001 EXPECT_VALID(result); 6001 EXPECT_VALID(result);
6002 result = Dart_LoadScript(url, source); 6002 result = Dart_LoadScript(url, source);
6003 6003
6004 url = NewString("library1.dart"); 6004 url = NewString("library1_dart");
6005 source = NewString(kLibrary1Chars); 6005 source = NewString(kLibrary1Chars);
6006 Dart_LoadLibrary(url, source); 6006 Dart_LoadLibrary(url, source);
6007 6007
6008 url = NewString("library2.dart"); 6008 url = NewString("library2_dart");
6009 source = NewString(kLibrary2Chars); 6009 source = NewString(kLibrary2Chars);
6010 Dart_LoadLibrary(url, source); 6010 Dart_LoadLibrary(url, source);
6011 6011
6012 result = Dart_Invoke(result, NewString("main"), 0, NULL); 6012 result = Dart_Invoke(result, NewString("main"), 0, NULL);
6013 EXPECT_VALID(result); 6013 EXPECT_VALID(result);
6014 } 6014 }
6015 6015
6016 6016
6017 // Test that if the same name is imported from two libraries, it is 6017 // Test that if the same name is imported from two libraries, it is
6018 // an error if that name is referenced. 6018 // an error if that name is referenced.
6019 TEST_CASE(ImportLibrary3) { 6019 TEST_CASE(ImportLibrary3) {
6020 const char* kScriptChars = 6020 const char* kScriptChars =
6021 "#import('library2.dart');\n" 6021 "import 'library2_dart';\n"
6022 "#import('library1.dart');\n" 6022 "import 'library1_dart';\n"
6023 "var foo_top = 10; // foo has dup def. So should be an error.\n" 6023 "var foo_top = 10; // foo has dup def. So should be an error.\n"
6024 "main() { foo = 0; }\n"; 6024 "main() { foo = 0; }\n";
6025 const char* kLibrary1Chars = 6025 const char* kLibrary1Chars =
6026 "#library('library1.dart');\n" 6026 "library library1_dart;\n"
6027 "var foo;"; 6027 "var foo;";
6028 const char* kLibrary2Chars = 6028 const char* kLibrary2Chars =
6029 "#library('library2.dart');\n" 6029 "library library2_dart;\n"
6030 "var foo;"; 6030 "var foo;";
6031 Dart_Handle result; 6031 Dart_Handle result;
6032 6032
6033 // Create a test library and Load up a test script in it. 6033 // Create a test library and Load up a test script in it.
6034 Dart_Handle url = NewString(TestCase::url()); 6034 Dart_Handle url = NewString(TestCase::url());
6035 Dart_Handle source = NewString(kScriptChars); 6035 Dart_Handle source = NewString(kScriptChars);
6036 result = Dart_SetLibraryTagHandler(library_handler); 6036 result = Dart_SetLibraryTagHandler(library_handler);
6037 EXPECT_VALID(result); 6037 EXPECT_VALID(result);
6038 result = Dart_LoadScript(url, source); 6038 result = Dart_LoadScript(url, source);
6039 EXPECT_VALID(result); 6039 EXPECT_VALID(result);
6040 6040
6041 url = NewString("library2.dart"); 6041 url = NewString("library2_dart");
6042 source = NewString(kLibrary2Chars); 6042 source = NewString(kLibrary2Chars);
6043 Dart_LoadLibrary(url, source); 6043 Dart_LoadLibrary(url, source);
6044 6044
6045 url = NewString("library1.dart"); 6045 url = NewString("library1_dart");
6046 source = NewString(kLibrary1Chars); 6046 source = NewString(kLibrary1Chars);
6047 Dart_LoadLibrary(url, source); 6047 Dart_LoadLibrary(url, source);
6048 6048
6049 result = Dart_Invoke(result, NewString("main"), 0, NULL); 6049 result = Dart_Invoke(result, NewString("main"), 0, NULL);
6050 EXPECT(Dart_IsError(result)); 6050 EXPECT(Dart_IsError(result));
6051 EXPECT_SUBSTRING("ambiguous reference: 'foo'", Dart_GetError(result)); 6051 EXPECT_SUBSTRING("ambiguous reference: 'foo'", Dart_GetError(result));
6052 } 6052 }
6053 6053
6054 6054
6055 // Test that if the same name is imported from two libraries, it is 6055 // Test that if the same name is imported from two libraries, it is
6056 // not an error if that name is not used. 6056 // not an error if that name is not used.
6057 TEST_CASE(ImportLibrary4) { 6057 TEST_CASE(ImportLibrary4) {
6058 const char* kScriptChars = 6058 const char* kScriptChars =
6059 "#import('library2.dart');\n" 6059 "import 'library2_dart';\n"
6060 "#import('library1.dart');\n" 6060 "import 'library1_dart';\n"
6061 "main() { }\n"; 6061 "main() { }\n";
6062 const char* kLibrary1Chars = 6062 const char* kLibrary1Chars =
6063 "#library('library1.dart');\n" 6063 "library library1_dart;\n"
6064 "var foo;"; 6064 "var foo;";
6065 const char* kLibrary2Chars = 6065 const char* kLibrary2Chars =
6066 "#library('library2.dart');\n" 6066 "library library2_dart;\n"
6067 "var foo;"; 6067 "var foo;";
6068 Dart_Handle result; 6068 Dart_Handle result;
6069 6069
6070 // Create a test library and Load up a test script in it. 6070 // Create a test library and Load up a test script in it.
6071 Dart_Handle url = NewString(TestCase::url()); 6071 Dart_Handle url = NewString(TestCase::url());
6072 Dart_Handle source = NewString(kScriptChars); 6072 Dart_Handle source = NewString(kScriptChars);
6073 result = Dart_SetLibraryTagHandler(library_handler); 6073 result = Dart_SetLibraryTagHandler(library_handler);
6074 EXPECT_VALID(result); 6074 EXPECT_VALID(result);
6075 result = Dart_LoadScript(url, source); 6075 result = Dart_LoadScript(url, source);
6076 EXPECT_VALID(result); 6076 EXPECT_VALID(result);
6077 6077
6078 url = NewString("library2.dart"); 6078 url = NewString("library2_dart");
6079 source = NewString(kLibrary2Chars); 6079 source = NewString(kLibrary2Chars);
6080 Dart_LoadLibrary(url, source); 6080 Dart_LoadLibrary(url, source);
6081 6081
6082 url = NewString("library1.dart"); 6082 url = NewString("library1_dart");
6083 source = NewString(kLibrary1Chars); 6083 source = NewString(kLibrary1Chars);
6084 Dart_LoadLibrary(url, source); 6084 Dart_LoadLibrary(url, source);
6085 6085
6086 result = Dart_Invoke(result, NewString("main"), 0, NULL); 6086 result = Dart_Invoke(result, NewString("main"), 0, NULL);
6087 EXPECT_VALID(result); 6087 EXPECT_VALID(result);
6088 } 6088 }
6089 6089
6090 6090
6091 TEST_CASE(ImportLibrary5) { 6091 TEST_CASE(ImportLibrary5) {
6092 const char* kScriptChars = 6092 const char* kScriptChars =
6093 "#import('lib.dart');\n" 6093 "import 'lib.dart';\n"
6094 "interface Y {\n" 6094 "interface Y {\n"
6095 " void set handler(void callback(List<int> x));\n" 6095 " void set handler(void callback(List<int> x));\n"
6096 "}\n" 6096 "}\n"
6097 "void main() {}\n"; 6097 "void main() {}\n";
6098 const char* kLibraryChars = 6098 const char* kLibraryChars =
6099 "#library('lib.dart');\n" 6099 "library lib.dart;\n"
6100 "interface X {\n" 6100 "interface X {\n"
6101 " void set handler(void callback(List<int> x));\n" 6101 " void set handler(void callback(List<int> x));\n"
6102 "}\n"; 6102 "}\n";
6103 Dart_Handle result; 6103 Dart_Handle result;
6104 6104
6105 // Create a test library and Load up a test script in it. 6105 // Create a test library and Load up a test script in it.
6106 Dart_Handle url = NewString(TestCase::url()); 6106 Dart_Handle url = NewString(TestCase::url());
6107 Dart_Handle source = NewString(kScriptChars); 6107 Dart_Handle source = NewString(kScriptChars);
6108 result = Dart_SetLibraryTagHandler(library_handler); 6108 result = Dart_SetLibraryTagHandler(library_handler);
6109 EXPECT_VALID(result); 6109 EXPECT_VALID(result);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
6154 // Create a port with a bogus handler. 6154 // Create a port with a bogus handler.
6155 Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true); 6155 Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true);
6156 EXPECT_EQ(ILLEGAL_PORT, error_port); 6156 EXPECT_EQ(ILLEGAL_PORT, error_port);
6157 6157
6158 // Create the port w/o a current isolate, just to make sure that works. 6158 // Create the port w/o a current isolate, just to make sure that works.
6159 Dart_Port port_id1 = 6159 Dart_Port port_id1 =
6160 Dart_NewNativePort("Port123", NewNativePort_send123, true); 6160 Dart_NewNativePort("Port123", NewNativePort_send123, true);
6161 6161
6162 TestIsolateScope __test_isolate__; 6162 TestIsolateScope __test_isolate__;
6163 const char* kScriptChars = 6163 const char* kScriptChars =
6164 "#import('dart:isolate');\n" 6164 "import 'dart:isolate';\n"
6165 "void callPort(SendPort port) {\n" 6165 "void callPort(SendPort port) {\n"
6166 " port.call(null).then((message) {\n" 6166 " port.call(null).then((message) {\n"
6167 " throw new Exception(message);\n" 6167 " throw new Exception(message);\n"
6168 " });\n" 6168 " });\n"
6169 "}\n"; 6169 "}\n";
6170 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 6170 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
6171 Dart_EnterScope(); 6171 Dart_EnterScope();
6172 6172
6173 // Create a port w/ a current isolate, to make sure that works too. 6173 // Create a port w/ a current isolate, to make sure that works too.
6174 Dart_Port port_id2 = 6174 Dart_Port port_id2 =
(...skipping 30 matching lines...) Expand all
6205 EXPECT(Dart_CloseNativePort(port_id1)); 6205 EXPECT(Dart_CloseNativePort(port_id1));
6206 EXPECT(Dart_CloseNativePort(port_id2)); 6206 EXPECT(Dart_CloseNativePort(port_id2));
6207 } 6207 }
6208 6208
6209 6209
6210 static bool RunLoopTestCallback(const char* script_name, 6210 static bool RunLoopTestCallback(const char* script_name,
6211 const char* main, 6211 const char* main,
6212 void* data, 6212 void* data,
6213 char** error) { 6213 char** error) {
6214 const char* kScriptChars = 6214 const char* kScriptChars =
6215 "#import('builtin');\n" 6215 "import 'builtin';\n"
6216 "#import('dart:isolate');\n" 6216 "import 'dart:isolate';\n"
6217 "void entry() {\n" 6217 "void entry() {\n"
6218 " port.receive((message, replyTo) {\n" 6218 " port.receive((message, replyTo) {\n"
6219 " if (message) {\n" 6219 " if (message) {\n"
6220 " throw new Exception('MakeChildExit');\n" 6220 " throw new Exception('MakeChildExit');\n"
6221 " } else {\n" 6221 " } else {\n"
6222 " replyTo.call('hello');\n" 6222 " replyTo.call('hello');\n"
6223 " port.close();\n" 6223 " port.close();\n"
6224 " }\n" 6224 " }\n"
6225 " });\n" 6225 " });\n"
6226 "}\n" 6226 "}\n"
(...skipping 968 matching lines...) Expand 10 before | Expand all | Expand 10 after
7195 EXPECT(o2 == reinterpret_cast<void*>(&p2)); 7195 EXPECT(o2 == reinterpret_cast<void*>(&p2));
7196 } 7196 }
7197 Dart_ExitScope(); 7197 Dart_ExitScope();
7198 isolate->heap()->CollectGarbage(Heap::kOld); 7198 isolate->heap()->CollectGarbage(Heap::kOld);
7199 EXPECT_EQ(0, isolate->heap()->PeerCount()); 7199 EXPECT_EQ(0, isolate->heap()->PeerCount());
7200 } 7200 }
7201 7201
7202 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). 7202 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
7203 7203
7204 } // namespace dart 7204 } // namespace dart
OLDNEW
« no previous file with comments | « vm/custom_isolate_test.cc ('k') | vm/isolate_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698