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_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 5353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5364 EXPECT_VALID(cls); | 5364 EXPECT_VALID(cls); |
5365 recv = Dart_New(cls, Dart_Null(), 0, NULL); | 5365 recv = Dart_New(cls, Dart_Null(), 0, NULL); |
5366 result = Dart_Invoke(recv, Dart_NewString("bar"), 0, NULL); | 5366 result = Dart_Invoke(recv, Dart_NewString("bar"), 0, NULL); |
5367 EXPECT_VALID(result); | 5367 EXPECT_VALID(result); |
5368 EXPECT(Dart_IsString(result)); | 5368 EXPECT(Dart_IsString(result)); |
5369 result_cstr = ""; | 5369 result_cstr = ""; |
5370 EXPECT_VALID(Dart_StringToCString(result, &result_cstr)); | 5370 EXPECT_VALID(Dart_StringToCString(result, &result_cstr)); |
5371 EXPECT_STREQ("bar", result_cstr); | 5371 EXPECT_STREQ("bar", result_cstr); |
5372 } | 5372 } |
5373 | 5373 |
5374 | |
5375 TEST_CASE(ParsePatchLibrary) { | |
5376 const char* kLibraryChars = | |
5377 "#library('patched_library');\n" | |
5378 "class A {\n" | |
5379 " external method(var value);\n" | |
5380 "}\n" | |
5381 "external int topLevel(var value);\n"; | |
5382 | |
5383 const char* kPatchChars = | |
5384 "patch int topLevel(var value) => value * value;\n"; | |
5385 | |
5386 const char* kScriptChars = | |
5387 "#import('theLibrary');\n" | |
5388 "main() {\n" | |
5389 // TODO(iposva): Implement patching. | |
5390 " return 4 /* topLevel(2) */;\n" | |
siva
2012/07/30 17:12:39
Why not make this a test for ensuring an exception
Ivan Posva
2012/07/30 22:33:33
Adding a language test for some of this functional
| |
5391 "}\n"; | |
5392 | |
5393 Dart_Handle result = Dart_SetLibraryTagHandler(library_handler); | |
5394 EXPECT_VALID(result); | |
5395 | |
5396 Dart_Handle lib_url = Dart_NewString("theLibrary"); | |
5397 Dart_Handle source = Dart_NewString(kLibraryChars); | |
5398 result = Dart_LoadLibrary(lib_url, source); | |
5399 EXPECT_VALID(result); | |
5400 | |
5401 // TODO(iposva): Implement patching. | |
5402 source = Dart_NewString(kPatchChars); | |
5403 | |
5404 Dart_Handle script_url = Dart_NewString("theScript"); | |
5405 source = Dart_NewString(kScriptChars); | |
5406 result = Dart_LoadScript(script_url, source); | |
5407 EXPECT_VALID(result); | |
5408 result = Dart_Invoke(result, Dart_NewString("main"), 0, NULL); | |
5409 EXPECT_VALID(result); | |
5410 EXPECT(Dart_IsInteger(result)); | |
5411 int64_t value = 0; | |
5412 EXPECT_VALID(Dart_IntegerToInt64(result, &value)); | |
5413 EXPECT_EQ(4, value); | |
5414 } | |
5415 | |
5416 | |
5374 static void MyNativeFunction1(Dart_NativeArguments args) { | 5417 static void MyNativeFunction1(Dart_NativeArguments args) { |
5375 Dart_EnterScope(); | 5418 Dart_EnterScope(); |
5376 Dart_SetReturnValue(args, Dart_NewInteger(654321)); | 5419 Dart_SetReturnValue(args, Dart_NewInteger(654321)); |
5377 Dart_ExitScope(); | 5420 Dart_ExitScope(); |
5378 } | 5421 } |
5379 | 5422 |
5380 | 5423 |
5381 static void MyNativeFunction2(Dart_NativeArguments args) { | 5424 static void MyNativeFunction2(Dart_NativeArguments args) { |
5382 Dart_EnterScope(); | 5425 Dart_EnterScope(); |
5383 Dart_SetReturnValue(args, Dart_NewInteger(123456)); | 5426 Dart_SetReturnValue(args, Dart_NewInteger(123456)); |
(...skipping 948 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6332 EXPECT_VALID(result); | 6375 EXPECT_VALID(result); |
6333 EXPECT(Dart_IsInteger(result)); | 6376 EXPECT(Dart_IsInteger(result)); |
6334 int64_t value = 0; | 6377 int64_t value = 0; |
6335 EXPECT_VALID(Dart_IntegerToInt64(result, &value)); | 6378 EXPECT_VALID(Dart_IntegerToInt64(result, &value)); |
6336 EXPECT_EQ(0, value); | 6379 EXPECT_EQ(0, value); |
6337 } | 6380 } |
6338 | 6381 |
6339 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 6382 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
6340 | 6383 |
6341 } // namespace dart | 6384 } // namespace dart |
OLD | NEW |