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

Side by Side Diff: runtime/observatory/tests/service/get_object_rpc_test.dart

Issue 1162133002: Introduce Instance.kind. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: regis feedback Created 5 years, 6 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
OLDNEW
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=--compile-all --error_on_bad_type --error_on_bad_override 4 // VMOptions=--compile-all --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 'package:observatory/service_io.dart'; 8 import 'package:observatory/service_io.dart';
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 10
(...skipping 22 matching lines...) Expand all
33 return await isolate.invokeRpcNoUpgrade('evaluate', params); 33 return await isolate.invokeRpcNoUpgrade('evaluate', params);
34 } 34 }
35 35
36 var tests = [ 36 var tests = [
37 // null object. 37 // null object.
38 (Isolate isolate) async { 38 (Isolate isolate) async {
39 var params = { 39 var params = {
40 'objectId': 'objects/null', 40 'objectId': 'objects/null',
41 }; 41 };
42 var result = await isolate.invokeRpcNoUpgrade('getObject', params); 42 var result = await isolate.invokeRpcNoUpgrade('getObject', params);
43 expect(result['type'], equals('null')); 43 expect(result['type'], equals('Instance'));
44 expect(result['kind'], equals('Null'));
44 expect(result['id'], equals('objects/null')); 45 expect(result['id'], equals('objects/null'));
45 expect(result['valueAsString'], equals('null')); 46 expect(result['valueAsString'], equals('null'));
46 expect(result['class']['type'], equals('@Class')); 47 expect(result['class']['type'], equals('@Class'));
47 expect(result['class']['name'], equals('Null')); 48 expect(result['class']['name'], equals('Null'));
48 expect(result['size'], isPositive); 49 expect(result['size'], isPositive);
49 }, 50 },
50 51
51 // bool object. 52 // bool object.
52 (Isolate isolate) async { 53 (Isolate isolate) async {
53 var params = { 54 var params = {
54 'objectId': 'objects/bool-true', 55 'objectId': 'objects/bool-true',
55 }; 56 };
56 var result = await isolate.invokeRpcNoUpgrade('getObject', params); 57 var result = await isolate.invokeRpcNoUpgrade('getObject', params);
57 expect(result['type'], equals('bool')); 58 expect(result['type'], equals('Instance'));
59 expect(result['kind'], equals('Bool'));
58 expect(result['id'], equals('objects/bool-true')); 60 expect(result['id'], equals('objects/bool-true'));
59 expect(result['valueAsString'], equals('true')); 61 expect(result['valueAsString'], equals('true'));
60 expect(result['class']['type'], equals('@Class')); 62 expect(result['class']['type'], equals('@Class'));
61 expect(result['class']['name'], equals('bool')); 63 expect(result['class']['name'], equals('bool'));
62 expect(result['size'], isPositive); 64 expect(result['size'], isPositive);
63 expect(result['fields'], isEmpty); 65 expect(result['fields'], isEmpty);
64 }, 66 },
65 67
66 // int object. 68 // int object.
67 (Isolate isolate) async { 69 (Isolate isolate) async {
68 var params = { 70 var params = {
69 'objectId': 'objects/int-123', 71 'objectId': 'objects/int-123',
70 }; 72 };
71 var result = await isolate.invokeRpcNoUpgrade('getObject', params); 73 var result = await isolate.invokeRpcNoUpgrade('getObject', params);
72 expect(result['type'], equals('int')); 74 expect(result['type'], equals('Instance'));
75 expect(result['kind'], equals('Int'));
73 expect(result['_vmType'], equals('Smi')); 76 expect(result['_vmType'], equals('Smi'));
74 expect(result['id'], equals('objects/int-123')); 77 expect(result['id'], equals('objects/int-123'));
75 expect(result['valueAsString'], equals('123')); 78 expect(result['valueAsString'], equals('123'));
76 expect(result['class']['type'], equals('@Class')); 79 expect(result['class']['type'], equals('@Class'));
77 expect(result['class']['name'], equals('_Smi')); 80 expect(result['class']['name'], equals('_Smi'));
78 expect(result['size'], isZero); 81 expect(result['size'], isZero);
79 expect(result['fields'], isEmpty); 82 expect(result['fields'], isEmpty);
80 }, 83 },
81 84
82 // A general Dart object. 85 // A built-in List.
83 (Isolate isolate) async { 86 (Isolate isolate) async {
84 // Call eval to get a Dart list. 87 // Call eval to get a Dart list.
85 var evalResult = await eval(isolate, '[3, 2, 1]'); 88 var evalResult = await eval(isolate, '[3, 2, 1]');
86 var params = { 89 var params = {
87 'objectId': evalResult['id'], 90 'objectId': evalResult['id'],
88 }; 91 };
89 var result = await isolate.invokeRpcNoUpgrade('getObject', params); 92 var result = await isolate.invokeRpcNoUpgrade('getObject', params);
90 expect(result['type'], equals('List')); 93 expect(result['type'], equals('Instance'));
94 expect(result['kind'], equals('List'));
91 expect(result['_vmType'], equals('GrowableObjectArray')); 95 expect(result['_vmType'], equals('GrowableObjectArray'));
92 expect(result['id'], startsWith('objects/')); 96 expect(result['id'], startsWith('objects/'));
93 expect(result['valueAsString'], isNull); 97 expect(result['valueAsString'], isNull);
94 expect(result['class']['type'], equals('@Class')); 98 expect(result['class']['type'], equals('@Class'));
95 expect(result['class']['name'], equals('_GrowableList')); 99 expect(result['class']['name'], equals('_GrowableList'));
96 expect(result['size'], isPositive); 100 expect(result['size'], isPositive);
97 expect(result['fields'], isEmpty); 101 expect(result['fields'], isEmpty);
98 expect(result['elements'].length, equals(3)); 102 expect(result['elements'].length, equals(3));
99 expect(result['elements'][0]['index'], equals(0)); 103 expect(result['elements'][0]['index'], equals(0));
100 expect(result['elements'][0]['value']['type'], equals('@int')); 104 expect(result['elements'][0]['value']['type'], equals('@Instance'));
105 expect(result['elements'][0]['value']['kind'], equals('Int'));
101 expect(result['elements'][0]['value']['valueAsString'], equals('3')); 106 expect(result['elements'][0]['value']['valueAsString'], equals('3'));
102 }, 107 },
103 108
104 // An expired object. 109 // An expired object.
105 (Isolate isolate) async { 110 (Isolate isolate) async {
106 var params = { 111 var params = {
107 'objectId': 'objects/99999999', 112 'objectId': 'objects/99999999',
108 }; 113 };
109 var result = await isolate.invokeRpcNoUpgrade('getObject', params); 114 var result = await isolate.invokeRpcNoUpgrade('getObject', params);
110 expect(result['type'], equals('Sentinel')); 115 expect(result['type'], equals('Sentinel'));
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 253
249 // type. 254 // type.
250 (Isolate isolate) async { 255 (Isolate isolate) async {
251 // Call eval to get a class id. 256 // Call eval to get a class id.
252 var evalResult = await eval(isolate, 'new _DummyClass()'); 257 var evalResult = await eval(isolate, 'new _DummyClass()');
253 var id = "${evalResult['class']['id']}/types/0"; 258 var id = "${evalResult['class']['id']}/types/0";
254 var params = { 259 var params = {
255 'objectId': id, 260 'objectId': id,
256 }; 261 };
257 var result = await isolate.invokeRpcNoUpgrade('getObject', params); 262 var result = await isolate.invokeRpcNoUpgrade('getObject', params);
258 expect(result['type'], equals('Type')); 263 expect(result['type'], equals('Instance'));
264 expect(result['kind'], equals('Type'));
259 expect(result['id'], equals(id)); 265 expect(result['id'], equals(id));
260 expect(result['class']['type'], equals('@Class')); 266 expect(result['class']['type'], equals('@Class'));
261 expect(result['class']['name'], equals('_Type')); 267 expect(result['class']['name'], equals('_Type'));
262 expect(result['size'], isPositive); 268 expect(result['size'], isPositive);
263 expect(result['fields'], isEmpty); 269 expect(result['fields'], isEmpty);
264 expect(result['typeClass']['type'], equals('@Class')); 270 expect(result['typeClass']['type'], equals('@Class'));
265 expect(result['typeClass']['name'], equals('_DummyClass')); 271 expect(result['typeClass']['name'], equals('_DummyClass'));
266 }, 272 },
267 273
268 // invalid type. 274 // invalid type.
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 caughtException = true; 422 caughtException = true;
417 expect(e.code, equals(ServerRpcException.kInvalidParams)); 423 expect(e.code, equals(ServerRpcException.kInvalidParams));
418 expect(e.message, 424 expect(e.message,
419 "getObject: invalid 'objectId' parameter: code/0"); 425 "getObject: invalid 'objectId' parameter: code/0");
420 } 426 }
421 expect(caughtException, isTrue); 427 expect(caughtException, isTrue);
422 }, 428 },
423 ]; 429 ];
424 430
425 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); 431 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup);
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/service/object.dart ('k') | runtime/observatory/tests/service/get_retained_size_rpc_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698