| 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/utils.h" | 7 #include "platform/utils.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_state.h" | 10 #include "vm/dart_api_state.h" |
| (...skipping 3407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3418 // Create a port with a bogus handler. | 3418 // Create a port with a bogus handler. |
| 3419 Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true); | 3419 Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true); |
| 3420 EXPECT_EQ(kIllegalPort, error_port); | 3420 EXPECT_EQ(kIllegalPort, error_port); |
| 3421 | 3421 |
| 3422 // Create the port w/o a current isolate, just to make sure that works. | 3422 // Create the port w/o a current isolate, just to make sure that works. |
| 3423 Dart_Port port_id1 = | 3423 Dart_Port port_id1 = |
| 3424 Dart_NewNativePort("Port123", NewNativePort_send123, true); | 3424 Dart_NewNativePort("Port123", NewNativePort_send123, true); |
| 3425 | 3425 |
| 3426 TestIsolateScope __test_isolate__; | 3426 TestIsolateScope __test_isolate__; |
| 3427 const char* kScriptChars = | 3427 const char* kScriptChars = |
| 3428 "#import('dart:isolate');\n" |
| 3428 "void callPort(SendPort port) {\n" | 3429 "void callPort(SendPort port) {\n" |
| 3429 " port.call(null).receive((message, replyTo) {\n" | 3430 " port.call(null).receive((message, replyTo) {\n" |
| 3430 " throw new Exception(message);\n" | 3431 " throw new Exception(message);\n" |
| 3431 " });\n" | 3432 " });\n" |
| 3432 "}\n"; | 3433 "}\n"; |
| 3433 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); | 3434 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| 3434 Dart_EnterScope(); | 3435 Dart_EnterScope(); |
| 3435 | 3436 |
| 3436 // Create a port w/ a current isolate, to make sure that works too. | 3437 // Create a port w/ a current isolate, to make sure that works too. |
| 3437 Dart_Port port_id2 = | 3438 Dart_Port port_id2 = |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3474 // Delete the native ports. | 3475 // Delete the native ports. |
| 3475 EXPECT(Dart_CloseNativePort(port_id1)); | 3476 EXPECT(Dart_CloseNativePort(port_id1)); |
| 3476 EXPECT(Dart_CloseNativePort(port_id2)); | 3477 EXPECT(Dart_CloseNativePort(port_id2)); |
| 3477 } | 3478 } |
| 3478 | 3479 |
| 3479 | 3480 |
| 3480 static bool RunLoopTestCallback(const char* name_prefix, | 3481 static bool RunLoopTestCallback(const char* name_prefix, |
| 3481 void* data, char** error) { | 3482 void* data, char** error) { |
| 3482 const char* kScriptChars = | 3483 const char* kScriptChars = |
| 3483 "#import('builtin');\n" | 3484 "#import('builtin');\n" |
| 3485 "#import('dart:isolate');\n" |
| 3484 "class MyIsolate extends Isolate {\n" | 3486 "class MyIsolate extends Isolate {\n" |
| 3485 " MyIsolate() : super() { }\n" | 3487 " MyIsolate() : super() { }\n" |
| 3486 " void main() {\n" | 3488 " void main() {\n" |
| 3487 " port.receive((message, replyTo) {\n" | 3489 " port.receive((message, replyTo) {\n" |
| 3488 " if (message) {\n" | 3490 " if (message) {\n" |
| 3489 " throw new Exception('MakeChildExit');\n" | 3491 " throw new Exception('MakeChildExit');\n" |
| 3490 " } else {\n" | 3492 " } else {\n" |
| 3491 " replyTo.call('hello');\n" | 3493 " replyTo.call('hello');\n" |
| 3492 " port.close();\n" | 3494 " port.close();\n" |
| 3493 " }\n" | 3495 " }\n" |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3733 // We should have received the expected number of interrupts. | 3735 // We should have received the expected number of interrupts. |
| 3734 EXPECT_EQ(kInterruptCount, interrupt_count); | 3736 EXPECT_EQ(kInterruptCount, interrupt_count); |
| 3735 | 3737 |
| 3736 // Give the spawned thread enough time to properly exit. | 3738 // Give the spawned thread enough time to properly exit. |
| 3737 Isolate::SetInterruptCallback(saved); | 3739 Isolate::SetInterruptCallback(saved); |
| 3738 } | 3740 } |
| 3739 | 3741 |
| 3740 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 3742 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 3741 | 3743 |
| 3742 } // namespace dart | 3744 } // namespace dart |
| OLD | NEW |