| Index: runtime/vm/dart_api_impl_test.cc
|
| diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
|
| index eb8464594dce0d13dc001346f9c034c5bf420837..85f1fbbd70a2887ec38e19726b413399d11be663 100644
|
| --- a/runtime/vm/dart_api_impl_test.cc
|
| +++ b/runtime/vm/dart_api_impl_test.cc
|
| @@ -7150,12 +7150,19 @@ TEST_CASE(ImportLibrary5) {
|
| }
|
|
|
|
|
| -void NewNativePort_send123(Dart_Port dest_port_id, Dart_CObject* message) {
|
| +void NewNativePort_send123(Dart_Port dest_port_id,
|
| + Dart_CObject* message,
|
| + void* peer) {
|
| // Gets a send port message.
|
| EXPECT_NOTNULL(message);
|
| EXPECT_EQ(Dart_CObject_kArray, message->type);
|
| EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type);
|
|
|
| + // Check peer validity.
|
| + EXPECT_NOTNULL(peer);
|
| + EXPECT_EQ(0xDEADBEEF, *static_cast<intptr_t*>(peer));
|
| + *static_cast<intptr_t*>(peer) = 123;
|
| +
|
| // Post integer value.
|
| Dart_CObject* response =
|
| reinterpret_cast<Dart_CObject*>(Dart_ScopeAllocate(sizeof(Dart_CObject)));
|
| @@ -7166,12 +7173,19 @@ void NewNativePort_send123(Dart_Port dest_port_id, Dart_CObject* message) {
|
| }
|
|
|
|
|
| -void NewNativePort_send321(Dart_Port dest_port_id, Dart_CObject* message) {
|
| +void NewNativePort_send321(Dart_Port dest_port_id,
|
| + Dart_CObject* message,
|
| + void* peer) {
|
| // Gets a null message.
|
| EXPECT_NOTNULL(message);
|
| EXPECT_EQ(Dart_CObject_kArray, message->type);
|
| EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type);
|
|
|
| + // Check peer validity.
|
| + EXPECT_NOTNULL(peer);
|
| + EXPECT_EQ(0xDEADBEEF, *static_cast<intptr_t*>(peer));
|
| + *static_cast<intptr_t*>(peer) = 321;
|
| +
|
| // Post integer value.
|
| Dart_CObject* response =
|
| reinterpret_cast<Dart_CObject*>(Dart_ScopeAllocate(sizeof(Dart_CObject)));
|
| @@ -7198,12 +7212,13 @@ TEST_CASE(IllegalPost) {
|
|
|
| UNIT_TEST_CASE(NewNativePort) {
|
| // Create a port with a bogus handler.
|
| - Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true);
|
| + Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true, NULL);
|
| EXPECT_EQ(ILLEGAL_PORT, error_port);
|
|
|
| + intptr_t peer1 = 0xDEADBEEF;
|
| // Create the port w/o a current isolate, just to make sure that works.
|
| Dart_Port port_id1 =
|
| - Dart_NewNativePort("Port123", NewNativePort_send123, true);
|
| + Dart_NewNativePort("Port123", NewNativePort_send123, true, &peer1);
|
|
|
| TestIsolateScope __test_isolate__;
|
| const char* kScriptChars =
|
| @@ -7221,8 +7236,9 @@ UNIT_TEST_CASE(NewNativePort) {
|
| Dart_EnterScope();
|
|
|
| // Create a port w/ a current isolate, to make sure that works too.
|
| + intptr_t peer2 = 0xDEADBEEF;
|
| Dart_Port port_id2 =
|
| - Dart_NewNativePort("Port321", NewNativePort_send321, true);
|
| + Dart_NewNativePort("Port321", NewNativePort_send321, true, &peer2);
|
|
|
| Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
|
| EXPECT_VALID(send_port1);
|
| @@ -7238,6 +7254,7 @@ UNIT_TEST_CASE(NewNativePort) {
|
| EXPECT(Dart_IsError(result));
|
| EXPECT(Dart_ErrorHasException(result));
|
| EXPECT_SUBSTRING("Exception: 123\n", Dart_GetError(result));
|
| + EXPECT_EQ(123, peer1);
|
|
|
| // result second port.
|
| dart_args[0] = send_port2;
|
| @@ -7247,6 +7264,7 @@ UNIT_TEST_CASE(NewNativePort) {
|
| EXPECT(Dart_IsError(result));
|
| EXPECT(Dart_ErrorHasException(result));
|
| EXPECT_SUBSTRING("Exception: 321\n", Dart_GetError(result));
|
| + EXPECT_EQ(321, peer2);
|
|
|
| Dart_ExitScope();
|
|
|
| @@ -7257,7 +7275,8 @@ UNIT_TEST_CASE(NewNativePort) {
|
|
|
|
|
| void NewNativePort_sendInteger123(Dart_Port dest_port_id,
|
| - Dart_CObject* message) {
|
| + Dart_CObject* message,
|
| + void* peer) {
|
| // Gets a send port message.
|
| EXPECT_NOTNULL(message);
|
| EXPECT_EQ(Dart_CObject_kArray, message->type);
|
| @@ -7270,7 +7289,8 @@ void NewNativePort_sendInteger123(Dart_Port dest_port_id,
|
|
|
|
|
| void NewNativePort_sendInteger321(Dart_Port dest_port_id,
|
| - Dart_CObject* message) {
|
| + Dart_CObject* message,
|
| + void* peer) {
|
| // Gets a null message.
|
| EXPECT_NOTNULL(message);
|
| EXPECT_EQ(Dart_CObject_kArray, message->type);
|
| @@ -7298,9 +7318,9 @@ TEST_CASE(NativePortPostInteger) {
|
| Dart_EnterScope();
|
|
|
| Dart_Port port_id1 =
|
| - Dart_NewNativePort("Port123", NewNativePort_sendInteger123, true);
|
| + Dart_NewNativePort("Port123", NewNativePort_sendInteger123, true, NULL);
|
| Dart_Port port_id2 =
|
| - Dart_NewNativePort("Port321", NewNativePort_sendInteger321, true);
|
| + Dart_NewNativePort("Port321", NewNativePort_sendInteger321, true, NULL);
|
|
|
| Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
|
| EXPECT_VALID(send_port1);
|
| @@ -7335,7 +7355,8 @@ TEST_CASE(NativePortPostInteger) {
|
|
|
|
|
| void NewNativePort_nativeReceiveNull(Dart_Port dest_port_id,
|
| - Dart_CObject* message) {
|
| + Dart_CObject* message,
|
| + void* peer) {
|
| EXPECT_NOTNULL(message);
|
|
|
| if ((message->type == Dart_CObject_kArray) &&
|
| @@ -7365,8 +7386,8 @@ TEST_CASE(NativePortReceiveNull) {
|
| Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
|
| Dart_EnterScope();
|
|
|
| - Dart_Port port_id1 =
|
| - Dart_NewNativePort("PortNull", NewNativePort_nativeReceiveNull, true);
|
| + Dart_Port port_id1 = Dart_NewNativePort(
|
| + "PortNull", NewNativePort_nativeReceiveNull, true, NULL);
|
| Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
|
| EXPECT_VALID(send_port1);
|
|
|
| @@ -7388,7 +7409,8 @@ TEST_CASE(NativePortReceiveNull) {
|
|
|
|
|
| void NewNativePort_nativeReceiveInteger(Dart_Port dest_port_id,
|
| - Dart_CObject* message) {
|
| + Dart_CObject* message,
|
| + void* peer) {
|
| EXPECT_NOTNULL(message);
|
|
|
| if ((message->type == Dart_CObject_kArray) &&
|
| @@ -7419,8 +7441,8 @@ TEST_CASE(NativePortReceiveInteger) {
|
| Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
|
| Dart_EnterScope();
|
|
|
| - Dart_Port port_id1 =
|
| - Dart_NewNativePort("PortNull", NewNativePort_nativeReceiveInteger, true);
|
| + Dart_Port port_id1 = Dart_NewNativePort(
|
| + "PortNull", NewNativePort_nativeReceiveInteger, true, NULL);
|
| Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
|
| EXPECT_VALID(send_port1);
|
|
|
|
|