| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 // VMOptions=--error_on_bad_type --error_on_bad_override | 4 // VMOptions=--error_on_bad_type --error_on_bad_override |
| 5 | 5 |
| 6 library get_object_rpc_test; | 6 library get_object_rpc_test; |
| 7 | 7 |
| 8 import 'dart:typed_data'; | 8 import 'dart:typed_data'; |
| 9 import 'dart:convert' show BASE64; |
| 9 import 'package:observatory/service_io.dart'; | 10 import 'package:observatory/service_io.dart'; |
| 10 import 'package:observatory/base64.dart'; | |
| 11 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
| 12 | |
| 13 import 'test_helper.dart'; | 12 import 'test_helper.dart'; |
| 14 | 13 |
| 15 class _DummyClass { | 14 class _DummyClass { |
| 16 static var dummyVar = 11; | 15 static var dummyVar = 11; |
| 17 void dummyFunction() { | 16 void dummyFunction() { |
| 18 } | 17 } |
| 19 } | 18 } |
| 20 | 19 |
| 21 class _DummySubClass extends _DummyClass { | 20 class _DummySubClass extends _DummyClass { |
| 22 } | 21 } |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 expect(result['id'], startsWith('objects/')); | 348 expect(result['id'], startsWith('objects/')); |
| 350 expect(result['valueAsString'], isNull); | 349 expect(result['valueAsString'], isNull); |
| 351 expect(result['class']['type'], equals('@Class')); | 350 expect(result['class']['type'], equals('@Class')); |
| 352 expect(result['class']['name'], equals('_Uint8Array')); | 351 expect(result['class']['name'], equals('_Uint8Array')); |
| 353 expect(result['size'], isPositive); | 352 expect(result['size'], isPositive); |
| 354 expect(result['fields'], isEmpty); | 353 expect(result['fields'], isEmpty); |
| 355 expect(result['length'], equals(3)); | 354 expect(result['length'], equals(3)); |
| 356 expect(result['offset'], isNull); | 355 expect(result['offset'], isNull); |
| 357 expect(result['count'], isNull); | 356 expect(result['count'], isNull); |
| 358 expect(result['bytes'], equals('AwIB')); | 357 expect(result['bytes'], equals('AwIB')); |
| 359 var bytes = decodeBase64(result['bytes']); | 358 var bytes = BASE64.decode(result['bytes']); |
| 360 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2, 1]')); | 359 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2, 1]')); |
| 361 }, | 360 }, |
| 362 | 361 |
| 363 // Uint8List prefix. | 362 // Uint8List prefix. |
| 364 (Isolate isolate) async { | 363 (Isolate isolate) async { |
| 365 // Call eval to get a Dart list. | 364 // Call eval to get a Dart list. |
| 366 var evalResult = await eval(isolate, 'uint8List'); | 365 var evalResult = await eval(isolate, 'uint8List'); |
| 367 var params = { | 366 var params = { |
| 368 'objectId': evalResult['id'], | 367 'objectId': evalResult['id'], |
| 369 'count' : 2, | 368 'count' : 2, |
| 370 }; | 369 }; |
| 371 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 370 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
| 372 expect(result['type'], equals('Instance')); | 371 expect(result['type'], equals('Instance')); |
| 373 expect(result['kind'], equals('Uint8List')); | 372 expect(result['kind'], equals('Uint8List')); |
| 374 expect(result['_vmType'], equals('TypedData')); | 373 expect(result['_vmType'], equals('TypedData')); |
| 375 expect(result['id'], startsWith('objects/')); | 374 expect(result['id'], startsWith('objects/')); |
| 376 expect(result['valueAsString'], isNull); | 375 expect(result['valueAsString'], isNull); |
| 377 expect(result['class']['type'], equals('@Class')); | 376 expect(result['class']['type'], equals('@Class')); |
| 378 expect(result['class']['name'], equals('_Uint8Array')); | 377 expect(result['class']['name'], equals('_Uint8Array')); |
| 379 expect(result['size'], isPositive); | 378 expect(result['size'], isPositive); |
| 380 expect(result['fields'], isEmpty); | 379 expect(result['fields'], isEmpty); |
| 381 expect(result['length'], equals(3)); | 380 expect(result['length'], equals(3)); |
| 382 expect(result['offset'], isNull); | 381 expect(result['offset'], isNull); |
| 383 expect(result['count'], equals(2)); | 382 expect(result['count'], equals(2)); |
| 384 expect(result['bytes'], equals('AwI=')); | 383 expect(result['bytes'], equals('AwI=')); |
| 385 var bytes = decodeBase64(result['bytes']); | 384 var bytes = BASE64.decode(result['bytes']); |
| 386 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2]')); | 385 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2]')); |
| 387 }, | 386 }, |
| 388 | 387 |
| 389 // Uint8List suffix. | 388 // Uint8List suffix. |
| 390 (Isolate isolate) async { | 389 (Isolate isolate) async { |
| 391 // Call eval to get a Dart list. | 390 // Call eval to get a Dart list. |
| 392 var evalResult = await eval(isolate, 'uint8List'); | 391 var evalResult = await eval(isolate, 'uint8List'); |
| 393 var params = { | 392 var params = { |
| 394 'objectId': evalResult['id'], | 393 'objectId': evalResult['id'], |
| 395 'offset' : 2, | 394 'offset' : 2, |
| 396 'count' : 2, | 395 'count' : 2, |
| 397 }; | 396 }; |
| 398 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 397 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
| 399 expect(result['type'], equals('Instance')); | 398 expect(result['type'], equals('Instance')); |
| 400 expect(result['kind'], equals('Uint8List')); | 399 expect(result['kind'], equals('Uint8List')); |
| 401 expect(result['_vmType'], equals('TypedData')); | 400 expect(result['_vmType'], equals('TypedData')); |
| 402 expect(result['id'], startsWith('objects/')); | 401 expect(result['id'], startsWith('objects/')); |
| 403 expect(result['valueAsString'], isNull); | 402 expect(result['valueAsString'], isNull); |
| 404 expect(result['class']['type'], equals('@Class')); | 403 expect(result['class']['type'], equals('@Class')); |
| 405 expect(result['class']['name'], equals('_Uint8Array')); | 404 expect(result['class']['name'], equals('_Uint8Array')); |
| 406 expect(result['size'], isPositive); | 405 expect(result['size'], isPositive); |
| 407 expect(result['fields'], isEmpty); | 406 expect(result['fields'], isEmpty); |
| 408 expect(result['length'], equals(3)); | 407 expect(result['length'], equals(3)); |
| 409 expect(result['offset'], equals(2)); | 408 expect(result['offset'], equals(2)); |
| 410 expect(result['count'], equals(1)); | 409 expect(result['count'], equals(1)); |
| 411 expect(result['bytes'], equals('AQ==')); | 410 expect(result['bytes'], equals('AQ==')); |
| 412 var bytes = decodeBase64(result['bytes']); | 411 var bytes = BASE64.decode(result['bytes']); |
| 413 expect(bytes.buffer.asUint8List().toString(), equals('[1]')); | 412 expect(bytes.buffer.asUint8List().toString(), equals('[1]')); |
| 414 }, | 413 }, |
| 415 | 414 |
| 416 // Uint8List with wacky offset. | 415 // Uint8List with wacky offset. |
| 417 (Isolate isolate) async { | 416 (Isolate isolate) async { |
| 418 // Call eval to get a Dart list. | 417 // Call eval to get a Dart list. |
| 419 var evalResult = await eval(isolate, 'uint8List'); | 418 var evalResult = await eval(isolate, 'uint8List'); |
| 420 var params = { | 419 var params = { |
| 421 'objectId': evalResult['id'], | 420 'objectId': evalResult['id'], |
| 422 'offset' : 100, | 421 'offset' : 100, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 452 expect(result['id'], startsWith('objects/')); | 451 expect(result['id'], startsWith('objects/')); |
| 453 expect(result['valueAsString'], isNull); | 452 expect(result['valueAsString'], isNull); |
| 454 expect(result['class']['type'], equals('@Class')); | 453 expect(result['class']['type'], equals('@Class')); |
| 455 expect(result['class']['name'], equals('_Uint64Array')); | 454 expect(result['class']['name'], equals('_Uint64Array')); |
| 456 expect(result['size'], isPositive); | 455 expect(result['size'], isPositive); |
| 457 expect(result['fields'], isEmpty); | 456 expect(result['fields'], isEmpty); |
| 458 expect(result['length'], equals(3)); | 457 expect(result['length'], equals(3)); |
| 459 expect(result['offset'], isNull); | 458 expect(result['offset'], isNull); |
| 460 expect(result['count'], isNull); | 459 expect(result['count'], isNull); |
| 461 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAAEAAAAAAAAA')); | 460 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAAEAAAAAAAAA')); |
| 462 var bytes = decodeBase64(result['bytes']); | 461 var bytes = BASE64.decode(result['bytes']); |
| 463 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2, 1]')); | 462 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2, 1]')); |
| 464 }, | 463 }, |
| 465 | 464 |
| 466 // Uint64List prefix. | 465 // Uint64List prefix. |
| 467 (Isolate isolate) async { | 466 (Isolate isolate) async { |
| 468 // Call eval to get a Dart list. | 467 // Call eval to get a Dart list. |
| 469 var evalResult = await eval(isolate, 'uint64List'); | 468 var evalResult = await eval(isolate, 'uint64List'); |
| 470 var params = { | 469 var params = { |
| 471 'objectId': evalResult['id'], | 470 'objectId': evalResult['id'], |
| 472 'count' : 2, | 471 'count' : 2, |
| 473 }; | 472 }; |
| 474 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 473 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
| 475 expect(result['type'], equals('Instance')); | 474 expect(result['type'], equals('Instance')); |
| 476 expect(result['kind'], equals('Uint64List')); | 475 expect(result['kind'], equals('Uint64List')); |
| 477 expect(result['_vmType'], equals('TypedData')); | 476 expect(result['_vmType'], equals('TypedData')); |
| 478 expect(result['id'], startsWith('objects/')); | 477 expect(result['id'], startsWith('objects/')); |
| 479 expect(result['valueAsString'], isNull); | 478 expect(result['valueAsString'], isNull); |
| 480 expect(result['class']['type'], equals('@Class')); | 479 expect(result['class']['type'], equals('@Class')); |
| 481 expect(result['class']['name'], equals('_Uint64Array')); | 480 expect(result['class']['name'], equals('_Uint64Array')); |
| 482 expect(result['size'], isPositive); | 481 expect(result['size'], isPositive); |
| 483 expect(result['fields'], isEmpty); | 482 expect(result['fields'], isEmpty); |
| 484 expect(result['length'], equals(3)); | 483 expect(result['length'], equals(3)); |
| 485 expect(result['offset'], isNull); | 484 expect(result['offset'], isNull); |
| 486 expect(result['count'], equals(2)); | 485 expect(result['count'], equals(2)); |
| 487 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAA==')); | 486 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAA==')); |
| 488 var bytes = decodeBase64(result['bytes']); | 487 var bytes = BASE64.decode(result['bytes']); |
| 489 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2]')); | 488 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2]')); |
| 490 }, | 489 }, |
| 491 | 490 |
| 492 // Uint64List suffix. | 491 // Uint64List suffix. |
| 493 (Isolate isolate) async { | 492 (Isolate isolate) async { |
| 494 // Call eval to get a Dart list. | 493 // Call eval to get a Dart list. |
| 495 var evalResult = await eval(isolate, 'uint64List'); | 494 var evalResult = await eval(isolate, 'uint64List'); |
| 496 var params = { | 495 var params = { |
| 497 'objectId': evalResult['id'], | 496 'objectId': evalResult['id'], |
| 498 'offset' : 2, | 497 'offset' : 2, |
| 499 'count' : 2, | 498 'count' : 2, |
| 500 }; | 499 }; |
| 501 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 500 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
| 502 expect(result['type'], equals('Instance')); | 501 expect(result['type'], equals('Instance')); |
| 503 expect(result['kind'], equals('Uint64List')); | 502 expect(result['kind'], equals('Uint64List')); |
| 504 expect(result['_vmType'], equals('TypedData')); | 503 expect(result['_vmType'], equals('TypedData')); |
| 505 expect(result['id'], startsWith('objects/')); | 504 expect(result['id'], startsWith('objects/')); |
| 506 expect(result['valueAsString'], isNull); | 505 expect(result['valueAsString'], isNull); |
| 507 expect(result['class']['type'], equals('@Class')); | 506 expect(result['class']['type'], equals('@Class')); |
| 508 expect(result['class']['name'], equals('_Uint64Array')); | 507 expect(result['class']['name'], equals('_Uint64Array')); |
| 509 expect(result['size'], isPositive); | 508 expect(result['size'], isPositive); |
| 510 expect(result['fields'], isEmpty); | 509 expect(result['fields'], isEmpty); |
| 511 expect(result['length'], equals(3)); | 510 expect(result['length'], equals(3)); |
| 512 expect(result['offset'], equals(2)); | 511 expect(result['offset'], equals(2)); |
| 513 expect(result['count'], equals(1)); | 512 expect(result['count'], equals(1)); |
| 514 expect(result['bytes'], equals('AQAAAAAAAAA=')); | 513 expect(result['bytes'], equals('AQAAAAAAAAA=')); |
| 515 var bytes = decodeBase64(result['bytes']); | 514 var bytes = BASE64.decode(result['bytes']); |
| 516 expect(bytes.buffer.asUint64List().toString(), equals('[1]')); | 515 expect(bytes.buffer.asUint64List().toString(), equals('[1]')); |
| 517 }, | 516 }, |
| 518 | 517 |
| 519 // Uint64List with wacky offset. | 518 // Uint64List with wacky offset. |
| 520 (Isolate isolate) async { | 519 (Isolate isolate) async { |
| 521 // Call eval to get a Dart list. | 520 // Call eval to get a Dart list. |
| 522 var evalResult = await eval(isolate, 'uint64List'); | 521 var evalResult = await eval(isolate, 'uint64List'); |
| 523 var params = { | 522 var params = { |
| 524 'objectId': evalResult['id'], | 523 'objectId': evalResult['id'], |
| 525 'offset' : 100, | 524 'offset' : 100, |
| (...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 855 caughtException = true; | 854 caughtException = true; |
| 856 expect(e.code, equals(ServerRpcException.kInvalidParams)); | 855 expect(e.code, equals(ServerRpcException.kInvalidParams)); |
| 857 expect(e.message, | 856 expect(e.message, |
| 858 "getObject: invalid 'objectId' parameter: code/0"); | 857 "getObject: invalid 'objectId' parameter: code/0"); |
| 859 } | 858 } |
| 860 expect(caughtException, isTrue); | 859 expect(caughtException, isTrue); |
| 861 }, | 860 }, |
| 862 ]; | 861 ]; |
| 863 | 862 |
| 864 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); | 863 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); |
| OLD | NEW |