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

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

Issue 2651633002: VM: [Kernel] Fix bootstraping when Kernel isolate is used. (Closed)
Patch Set: Landing issue Created 3 years, 10 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.cc ('k') | runtime/vm/dart_api_message.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 "bin/builtin.h" 5 #include "bin/builtin.h"
6 #include "vm/compiler.h" 6 #include "vm/compiler.h"
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "include/dart_mirrors_api.h" 8 #include "include/dart_mirrors_api.h"
9 #include "include/dart_native_api.h" 9 #include "include/dart_native_api.h"
10 #include "include/dart_tools_api.h" 10 #include "include/dart_tools_api.h"
(...skipping 7132 matching lines...) Expand 10 before | Expand all | Expand 10 after
7143 url = NewString("lib.dart"); 7143 url = NewString("lib.dart");
7144 source = NewString(kLibraryChars); 7144 source = NewString(kLibraryChars);
7145 Dart_LoadLibrary(url, Dart_Null(), source, 0, 0); 7145 Dart_LoadLibrary(url, Dart_Null(), source, 0, 0);
7146 Dart_FinalizeLoading(false); 7146 Dart_FinalizeLoading(false);
7147 7147
7148 result = Dart_Invoke(result, NewString("main"), 0, NULL); 7148 result = Dart_Invoke(result, NewString("main"), 0, NULL);
7149 EXPECT_VALID(result); 7149 EXPECT_VALID(result);
7150 } 7150 }
7151 7151
7152 7152
7153 void NewNativePort_send123(Dart_Port dest_port_id, Dart_CObject* message) { 7153 void NewNativePort_send123(Dart_Port dest_port_id,
7154 Dart_CObject* message,
7155 void* peer) {
7154 // Gets a send port message. 7156 // Gets a send port message.
7155 EXPECT_NOTNULL(message); 7157 EXPECT_NOTNULL(message);
7156 EXPECT_EQ(Dart_CObject_kArray, message->type); 7158 EXPECT_EQ(Dart_CObject_kArray, message->type);
7157 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type); 7159 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type);
7158 7160
7161 // Check peer validity.
7162 EXPECT_NOTNULL(peer);
7163 EXPECT_EQ(0xDEADBEEF, *static_cast<intptr_t*>(peer));
7164 *static_cast<intptr_t*>(peer) = 123;
7165
7159 // Post integer value. 7166 // Post integer value.
7160 Dart_CObject* response = 7167 Dart_CObject* response =
7161 reinterpret_cast<Dart_CObject*>(Dart_ScopeAllocate(sizeof(Dart_CObject))); 7168 reinterpret_cast<Dart_CObject*>(Dart_ScopeAllocate(sizeof(Dart_CObject)));
7162 response->type = Dart_CObject_kInt32; 7169 response->type = Dart_CObject_kInt32;
7163 response->value.as_int32 = 123; 7170 response->value.as_int32 = 123;
7164 Dart_PostCObject(message->value.as_array.values[0]->value.as_send_port.id, 7171 Dart_PostCObject(message->value.as_array.values[0]->value.as_send_port.id,
7165 response); 7172 response);
7166 } 7173 }
7167 7174
7168 7175
7169 void NewNativePort_send321(Dart_Port dest_port_id, Dart_CObject* message) { 7176 void NewNativePort_send321(Dart_Port dest_port_id,
7177 Dart_CObject* message,
7178 void* peer) {
7170 // Gets a null message. 7179 // Gets a null message.
7171 EXPECT_NOTNULL(message); 7180 EXPECT_NOTNULL(message);
7172 EXPECT_EQ(Dart_CObject_kArray, message->type); 7181 EXPECT_EQ(Dart_CObject_kArray, message->type);
7173 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type); 7182 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type);
7174 7183
7184 // Check peer validity.
7185 EXPECT_NOTNULL(peer);
7186 EXPECT_EQ(0xDEADBEEF, *static_cast<intptr_t*>(peer));
7187 *static_cast<intptr_t*>(peer) = 321;
7188
7175 // Post integer value. 7189 // Post integer value.
7176 Dart_CObject* response = 7190 Dart_CObject* response =
7177 reinterpret_cast<Dart_CObject*>(Dart_ScopeAllocate(sizeof(Dart_CObject))); 7191 reinterpret_cast<Dart_CObject*>(Dart_ScopeAllocate(sizeof(Dart_CObject)));
7178 response->type = Dart_CObject_kInt32; 7192 response->type = Dart_CObject_kInt32;
7179 response->value.as_int32 = 321; 7193 response->value.as_int32 = 321;
7180 Dart_PostCObject(message->value.as_array.values[0]->value.as_send_port.id, 7194 Dart_PostCObject(message->value.as_array.values[0]->value.as_send_port.id,
7181 response); 7195 response);
7182 } 7196 }
7183 7197
7184 7198
7185 TEST_CASE(IllegalNewSendPort) { 7199 TEST_CASE(IllegalNewSendPort) {
7186 Dart_Handle error = Dart_NewSendPort(ILLEGAL_PORT); 7200 Dart_Handle error = Dart_NewSendPort(ILLEGAL_PORT);
7187 EXPECT(Dart_IsError(error)); 7201 EXPECT(Dart_IsError(error));
7188 EXPECT(Dart_IsApiError(error)); 7202 EXPECT(Dart_IsApiError(error));
7189 } 7203 }
7190 7204
7191 7205
7192 TEST_CASE(IllegalPost) { 7206 TEST_CASE(IllegalPost) {
7193 Dart_Handle message = Dart_True(); 7207 Dart_Handle message = Dart_True();
7194 bool success = Dart_Post(ILLEGAL_PORT, message); 7208 bool success = Dart_Post(ILLEGAL_PORT, message);
7195 EXPECT(!success); 7209 EXPECT(!success);
7196 } 7210 }
7197 7211
7198 7212
7199 UNIT_TEST_CASE(NewNativePort) { 7213 UNIT_TEST_CASE(NewNativePort) {
7200 // Create a port with a bogus handler. 7214 // Create a port with a bogus handler.
7201 Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true); 7215 Dart_Port error_port = Dart_NewNativePort("Foo", NULL, true, NULL);
7202 EXPECT_EQ(ILLEGAL_PORT, error_port); 7216 EXPECT_EQ(ILLEGAL_PORT, error_port);
7203 7217
7218 intptr_t peer1 = 0xDEADBEEF;
7204 // Create the port w/o a current isolate, just to make sure that works. 7219 // Create the port w/o a current isolate, just to make sure that works.
7205 Dart_Port port_id1 = 7220 Dart_Port port_id1 =
7206 Dart_NewNativePort("Port123", NewNativePort_send123, true); 7221 Dart_NewNativePort("Port123", NewNativePort_send123, true, &peer1);
7207 7222
7208 TestIsolateScope __test_isolate__; 7223 TestIsolateScope __test_isolate__;
7209 const char* kScriptChars = 7224 const char* kScriptChars =
7210 "import 'dart:isolate';\n" 7225 "import 'dart:isolate';\n"
7211 "void callPort(SendPort port) {\n" 7226 "void callPort(SendPort port) {\n"
7212 " var receivePort = new RawReceivePort();\n" 7227 " var receivePort = new RawReceivePort();\n"
7213 " var replyPort = receivePort.sendPort;\n" 7228 " var replyPort = receivePort.sendPort;\n"
7214 " port.send([replyPort]);\n" 7229 " port.send([replyPort]);\n"
7215 " receivePort.handler = (message) {\n" 7230 " receivePort.handler = (message) {\n"
7216 " receivePort.close();\n" 7231 " receivePort.close();\n"
7217 " throw new Exception(message);\n" 7232 " throw new Exception(message);\n"
7218 " };\n" 7233 " };\n"
7219 "}\n"; 7234 "}\n";
7220 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 7235 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
7221 Dart_EnterScope(); 7236 Dart_EnterScope();
7222 7237
7223 // Create a port w/ a current isolate, to make sure that works too. 7238 // Create a port w/ a current isolate, to make sure that works too.
7239 intptr_t peer2 = 0xDEADBEEF;
7224 Dart_Port port_id2 = 7240 Dart_Port port_id2 =
7225 Dart_NewNativePort("Port321", NewNativePort_send321, true); 7241 Dart_NewNativePort("Port321", NewNativePort_send321, true, &peer2);
7226 7242
7227 Dart_Handle send_port1 = Dart_NewSendPort(port_id1); 7243 Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
7228 EXPECT_VALID(send_port1); 7244 EXPECT_VALID(send_port1);
7229 Dart_Handle send_port2 = Dart_NewSendPort(port_id2); 7245 Dart_Handle send_port2 = Dart_NewSendPort(port_id2);
7230 EXPECT_VALID(send_port2); 7246 EXPECT_VALID(send_port2);
7231 7247
7232 // Test first port. 7248 // Test first port.
7233 Dart_Handle dart_args[1]; 7249 Dart_Handle dart_args[1];
7234 dart_args[0] = send_port1; 7250 dart_args[0] = send_port1;
7235 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args); 7251 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args);
7236 EXPECT_VALID(result); 7252 EXPECT_VALID(result);
7237 result = Dart_RunLoop(); 7253 result = Dart_RunLoop();
7238 EXPECT(Dart_IsError(result)); 7254 EXPECT(Dart_IsError(result));
7239 EXPECT(Dart_ErrorHasException(result)); 7255 EXPECT(Dart_ErrorHasException(result));
7240 EXPECT_SUBSTRING("Exception: 123\n", Dart_GetError(result)); 7256 EXPECT_SUBSTRING("Exception: 123\n", Dart_GetError(result));
7257 EXPECT_EQ(123, peer1);
7241 7258
7242 // result second port. 7259 // result second port.
7243 dart_args[0] = send_port2; 7260 dart_args[0] = send_port2;
7244 result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args); 7261 result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args);
7245 EXPECT_VALID(result); 7262 EXPECT_VALID(result);
7246 result = Dart_RunLoop(); 7263 result = Dart_RunLoop();
7247 EXPECT(Dart_IsError(result)); 7264 EXPECT(Dart_IsError(result));
7248 EXPECT(Dart_ErrorHasException(result)); 7265 EXPECT(Dart_ErrorHasException(result));
7249 EXPECT_SUBSTRING("Exception: 321\n", Dart_GetError(result)); 7266 EXPECT_SUBSTRING("Exception: 321\n", Dart_GetError(result));
7267 EXPECT_EQ(321, peer2);
7250 7268
7251 Dart_ExitScope(); 7269 Dart_ExitScope();
7252 7270
7253 // Delete the native ports. 7271 // Delete the native ports.
7254 EXPECT(Dart_CloseNativePort(port_id1)); 7272 EXPECT(Dart_CloseNativePort(port_id1));
7255 EXPECT(Dart_CloseNativePort(port_id2)); 7273 EXPECT(Dart_CloseNativePort(port_id2));
7256 } 7274 }
7257 7275
7258 7276
7259 void NewNativePort_sendInteger123(Dart_Port dest_port_id, 7277 void NewNativePort_sendInteger123(Dart_Port dest_port_id,
7260 Dart_CObject* message) { 7278 Dart_CObject* message,
7279 void* peer) {
7261 // Gets a send port message. 7280 // Gets a send port message.
7262 EXPECT_NOTNULL(message); 7281 EXPECT_NOTNULL(message);
7263 EXPECT_EQ(Dart_CObject_kArray, message->type); 7282 EXPECT_EQ(Dart_CObject_kArray, message->type);
7264 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type); 7283 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type);
7265 7284
7266 // Post integer value. 7285 // Post integer value.
7267 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id, 7286 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id,
7268 123); 7287 123);
7269 } 7288 }
7270 7289
7271 7290
7272 void NewNativePort_sendInteger321(Dart_Port dest_port_id, 7291 void NewNativePort_sendInteger321(Dart_Port dest_port_id,
7273 Dart_CObject* message) { 7292 Dart_CObject* message,
7293 void* peer) {
7274 // Gets a null message. 7294 // Gets a null message.
7275 EXPECT_NOTNULL(message); 7295 EXPECT_NOTNULL(message);
7276 EXPECT_EQ(Dart_CObject_kArray, message->type); 7296 EXPECT_EQ(Dart_CObject_kArray, message->type);
7277 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type); 7297 EXPECT_EQ(Dart_CObject_kSendPort, message->value.as_array.values[0]->type);
7278 7298
7279 // Post integer value. 7299 // Post integer value.
7280 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id, 7300 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id,
7281 321); 7301 321);
7282 } 7302 }
7283 7303
7284 7304
7285 TEST_CASE(NativePortPostInteger) { 7305 TEST_CASE(NativePortPostInteger) {
7286 const char* kScriptChars = 7306 const char* kScriptChars =
7287 "import 'dart:isolate';\n" 7307 "import 'dart:isolate';\n"
7288 "void callPort(SendPort port) {\n" 7308 "void callPort(SendPort port) {\n"
7289 " var receivePort = new RawReceivePort();\n" 7309 " var receivePort = new RawReceivePort();\n"
7290 " var replyPort = receivePort.sendPort;\n" 7310 " var replyPort = receivePort.sendPort;\n"
7291 " port.send([replyPort]);\n" 7311 " port.send([replyPort]);\n"
7292 " receivePort.handler = (message) {\n" 7312 " receivePort.handler = (message) {\n"
7293 " receivePort.close();\n" 7313 " receivePort.close();\n"
7294 " throw new Exception(message);\n" 7314 " throw new Exception(message);\n"
7295 " };\n" 7315 " };\n"
7296 "}\n"; 7316 "}\n";
7297 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 7317 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
7298 Dart_EnterScope(); 7318 Dart_EnterScope();
7299 7319
7300 Dart_Port port_id1 = 7320 Dart_Port port_id1 =
7301 Dart_NewNativePort("Port123", NewNativePort_sendInteger123, true); 7321 Dart_NewNativePort("Port123", NewNativePort_sendInteger123, true, NULL);
7302 Dart_Port port_id2 = 7322 Dart_Port port_id2 =
7303 Dart_NewNativePort("Port321", NewNativePort_sendInteger321, true); 7323 Dart_NewNativePort("Port321", NewNativePort_sendInteger321, true, NULL);
7304 7324
7305 Dart_Handle send_port1 = Dart_NewSendPort(port_id1); 7325 Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
7306 EXPECT_VALID(send_port1); 7326 EXPECT_VALID(send_port1);
7307 Dart_Handle send_port2 = Dart_NewSendPort(port_id2); 7327 Dart_Handle send_port2 = Dart_NewSendPort(port_id2);
7308 EXPECT_VALID(send_port2); 7328 EXPECT_VALID(send_port2);
7309 7329
7310 // Test first port. 7330 // Test first port.
7311 Dart_Handle dart_args[1]; 7331 Dart_Handle dart_args[1];
7312 dart_args[0] = send_port1; 7332 dart_args[0] = send_port1;
7313 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args); 7333 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args);
(...skipping 14 matching lines...) Expand all
7328 7348
7329 Dart_ExitScope(); 7349 Dart_ExitScope();
7330 7350
7331 // Delete the native ports. 7351 // Delete the native ports.
7332 EXPECT(Dart_CloseNativePort(port_id1)); 7352 EXPECT(Dart_CloseNativePort(port_id1));
7333 EXPECT(Dart_CloseNativePort(port_id2)); 7353 EXPECT(Dart_CloseNativePort(port_id2));
7334 } 7354 }
7335 7355
7336 7356
7337 void NewNativePort_nativeReceiveNull(Dart_Port dest_port_id, 7357 void NewNativePort_nativeReceiveNull(Dart_Port dest_port_id,
7338 Dart_CObject* message) { 7358 Dart_CObject* message,
7359 void* peer) {
7339 EXPECT_NOTNULL(message); 7360 EXPECT_NOTNULL(message);
7340 7361
7341 if ((message->type == Dart_CObject_kArray) && 7362 if ((message->type == Dart_CObject_kArray) &&
7342 (message->value.as_array.values[0]->type == Dart_CObject_kSendPort)) { 7363 (message->value.as_array.values[0]->type == Dart_CObject_kSendPort)) {
7343 // Post integer value. 7364 // Post integer value.
7344 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id, 7365 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id,
7345 123); 7366 123);
7346 } else { 7367 } else {
7347 EXPECT_EQ(message->type, Dart_CObject_kNull); 7368 EXPECT_EQ(message->type, Dart_CObject_kNull);
7348 } 7369 }
7349 } 7370 }
7350 7371
7351 7372
7352 TEST_CASE(NativePortReceiveNull) { 7373 TEST_CASE(NativePortReceiveNull) {
7353 const char* kScriptChars = 7374 const char* kScriptChars =
7354 "import 'dart:isolate';\n" 7375 "import 'dart:isolate';\n"
7355 "void callPort(SendPort port) {\n" 7376 "void callPort(SendPort port) {\n"
7356 " var receivePort = new RawReceivePort();\n" 7377 " var receivePort = new RawReceivePort();\n"
7357 " var replyPort = receivePort.sendPort;\n" 7378 " var replyPort = receivePort.sendPort;\n"
7358 " port.send(null);\n" 7379 " port.send(null);\n"
7359 " port.send([replyPort]);\n" 7380 " port.send([replyPort]);\n"
7360 " receivePort.handler = (message) {\n" 7381 " receivePort.handler = (message) {\n"
7361 " receivePort.close();\n" 7382 " receivePort.close();\n"
7362 " throw new Exception(message);\n" 7383 " throw new Exception(message);\n"
7363 " };\n" 7384 " };\n"
7364 "}\n"; 7385 "}\n";
7365 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 7386 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
7366 Dart_EnterScope(); 7387 Dart_EnterScope();
7367 7388
7368 Dart_Port port_id1 = 7389 Dart_Port port_id1 = Dart_NewNativePort(
7369 Dart_NewNativePort("PortNull", NewNativePort_nativeReceiveNull, true); 7390 "PortNull", NewNativePort_nativeReceiveNull, true, NULL);
7370 Dart_Handle send_port1 = Dart_NewSendPort(port_id1); 7391 Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
7371 EXPECT_VALID(send_port1); 7392 EXPECT_VALID(send_port1);
7372 7393
7373 // Test first port. 7394 // Test first port.
7374 Dart_Handle dart_args[1]; 7395 Dart_Handle dart_args[1];
7375 dart_args[0] = send_port1; 7396 dart_args[0] = send_port1;
7376 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args); 7397 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args);
7377 EXPECT_VALID(result); 7398 EXPECT_VALID(result);
7378 result = Dart_RunLoop(); 7399 result = Dart_RunLoop();
7379 EXPECT(Dart_IsError(result)); 7400 EXPECT(Dart_IsError(result));
7380 EXPECT(Dart_ErrorHasException(result)); 7401 EXPECT(Dart_ErrorHasException(result));
7381 EXPECT_SUBSTRING("Exception: 123\n", Dart_GetError(result)); 7402 EXPECT_SUBSTRING("Exception: 123\n", Dart_GetError(result));
7382 7403
7383 Dart_ExitScope(); 7404 Dart_ExitScope();
7384 7405
7385 // Delete the native ports. 7406 // Delete the native ports.
7386 EXPECT(Dart_CloseNativePort(port_id1)); 7407 EXPECT(Dart_CloseNativePort(port_id1));
7387 } 7408 }
7388 7409
7389 7410
7390 void NewNativePort_nativeReceiveInteger(Dart_Port dest_port_id, 7411 void NewNativePort_nativeReceiveInteger(Dart_Port dest_port_id,
7391 Dart_CObject* message) { 7412 Dart_CObject* message,
7413 void* peer) {
7392 EXPECT_NOTNULL(message); 7414 EXPECT_NOTNULL(message);
7393 7415
7394 if ((message->type == Dart_CObject_kArray) && 7416 if ((message->type == Dart_CObject_kArray) &&
7395 (message->value.as_array.values[0]->type == Dart_CObject_kSendPort)) { 7417 (message->value.as_array.values[0]->type == Dart_CObject_kSendPort)) {
7396 // Post integer value. 7418 // Post integer value.
7397 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id, 7419 Dart_PostInteger(message->value.as_array.values[0]->value.as_send_port.id,
7398 123); 7420 123);
7399 } else { 7421 } else {
7400 EXPECT_EQ(message->type, Dart_CObject_kInt32); 7422 EXPECT_EQ(message->type, Dart_CObject_kInt32);
7401 EXPECT_EQ(message->value.as_int32, 321); 7423 EXPECT_EQ(message->value.as_int32, 321);
(...skipping 10 matching lines...) Expand all
7412 " port.send(321);\n" 7434 " port.send(321);\n"
7413 " port.send([replyPort]);\n" 7435 " port.send([replyPort]);\n"
7414 " receivePort.handler = (message) {\n" 7436 " receivePort.handler = (message) {\n"
7415 " receivePort.close();\n" 7437 " receivePort.close();\n"
7416 " throw new Exception(message);\n" 7438 " throw new Exception(message);\n"
7417 " };\n" 7439 " };\n"
7418 "}\n"; 7440 "}\n";
7419 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 7441 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
7420 Dart_EnterScope(); 7442 Dart_EnterScope();
7421 7443
7422 Dart_Port port_id1 = 7444 Dart_Port port_id1 = Dart_NewNativePort(
7423 Dart_NewNativePort("PortNull", NewNativePort_nativeReceiveInteger, true); 7445 "PortNull", NewNativePort_nativeReceiveInteger, true, NULL);
7424 Dart_Handle send_port1 = Dart_NewSendPort(port_id1); 7446 Dart_Handle send_port1 = Dart_NewSendPort(port_id1);
7425 EXPECT_VALID(send_port1); 7447 EXPECT_VALID(send_port1);
7426 7448
7427 // Test first port. 7449 // Test first port.
7428 Dart_Handle dart_args[1]; 7450 Dart_Handle dart_args[1];
7429 dart_args[0] = send_port1; 7451 dart_args[0] = send_port1;
7430 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args); 7452 Dart_Handle result = Dart_Invoke(lib, NewString("callPort"), 1, dart_args);
7431 EXPECT_VALID(result); 7453 EXPECT_VALID(result);
7432 result = Dart_RunLoop(); 7454 result = Dart_RunLoop();
7433 EXPECT(Dart_IsError(result)); 7455 EXPECT(Dart_IsError(result));
(...skipping 2480 matching lines...) Expand 10 before | Expand all | Expand 10 after
9914 EXPECT_VALID(result); 9936 EXPECT_VALID(result);
9915 result = Dart_FinalizeLoading(false); 9937 result = Dart_FinalizeLoading(false);
9916 EXPECT_VALID(result); 9938 EXPECT_VALID(result);
9917 result = Dart_Invoke(lib, NewString("foozoo"), 0, NULL); 9939 result = Dart_Invoke(lib, NewString("foozoo"), 0, NULL);
9918 EXPECT(Dart_IsError(result)); 9940 EXPECT(Dart_IsError(result));
9919 } 9941 }
9920 9942
9921 #endif // !PRODUCT 9943 #endif // !PRODUCT
9922 9944
9923 } // namespace dart 9945 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/dart_api_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698