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=--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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 var params = { | 205 var params = { |
206 'objectId': evalResult['class']['id'], | 206 'objectId': evalResult['class']['id'], |
207 }; | 207 }; |
208 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 208 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
209 expect(result['type'], equals('Class')); | 209 expect(result['type'], equals('Class')); |
210 expect(result['id'], startsWith('classes/')); | 210 expect(result['id'], startsWith('classes/')); |
211 expect(result['name'], equals('_DummyClass')); | 211 expect(result['name'], equals('_DummyClass')); |
212 expect(result['_vmName'], startsWith('_DummyClass@')); | 212 expect(result['_vmName'], startsWith('_DummyClass@')); |
213 expect(result['abstract'], equals(false)); | 213 expect(result['abstract'], equals(false)); |
214 expect(result['const'], equals(false)); | 214 expect(result['const'], equals(false)); |
215 expect(result['finalized'], equals(true)); | 215 expect(result['_finalized'], equals(true)); |
216 expect(result['implemented'], equals(false)); | 216 expect(result['_implemented'], equals(false)); |
217 expect(result['patch'], equals(false)); | 217 expect(result['_patch'], equals(false)); |
218 expect(result['library']['type'], equals('@Library')); | 218 expect(result['library']['type'], equals('@Library')); |
219 expect(result['script']['type'], equals('@Script')); | 219 expect(result['script']['type'], equals('@Script')); |
220 expect(result['super']['type'], equals('@Class')); | 220 expect(result['super']['type'], equals('@Class')); |
221 expect(result['interfaces'].length, isZero); | 221 expect(result['interfaces'].length, isZero); |
222 expect(result['fields'].length, isPositive); | 222 expect(result['fields'].length, isPositive); |
223 expect(result['fields'][0]['type'], equals('@Field')); | 223 expect(result['fields'][0]['type'], equals('@Field')); |
224 expect(result['functions'].length, isPositive); | 224 expect(result['functions'].length, isPositive); |
225 expect(result['functions'][0]['type'], equals('@Function')); | 225 expect(result['functions'][0]['type'], equals('@Function')); |
226 expect(result['subclasses'].length, isPositive); | 226 expect(result['subclasses'].length, isPositive); |
227 expect(result['subclasses'][0]['type'], equals('@Class')); | 227 expect(result['subclasses'][0]['type'], equals('@Class')); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 // Call eval to get a class id. | 289 // Call eval to get a class id. |
290 var evalResult = await eval(isolate, 'new _DummyClass()'); | 290 var evalResult = await eval(isolate, 'new _DummyClass()'); |
291 var id = "${evalResult['class']['id']}/functions/dummyFunction"; | 291 var id = "${evalResult['class']['id']}/functions/dummyFunction"; |
292 var params = { | 292 var params = { |
293 'objectId': id, | 293 'objectId': id, |
294 }; | 294 }; |
295 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 295 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
296 expect(result['type'], equals('Function')); | 296 expect(result['type'], equals('Function')); |
297 expect(result['id'], equals(id)); | 297 expect(result['id'], equals(id)); |
298 expect(result['name'], equals('dummyFunction')); | 298 expect(result['name'], equals('dummyFunction')); |
299 expect(result['kind'], equals('RegularFunction')); | 299 expect(result['_kind'], equals('RegularFunction')); |
300 expect(result['static'], equals(false)); | 300 expect(result['static'], equals(false)); |
301 expect(result['const'], equals(false)); | 301 expect(result['const'], equals(false)); |
302 expect(result['script']['type'], equals('@Script')); | 302 expect(result['script']['type'], equals('@Script')); |
303 expect(result['tokenPos'], isPositive); | 303 expect(result['tokenPos'], isPositive); |
304 expect(result['code']['type'], equals('@Code')); | 304 expect(result['code']['type'], equals('@Code')); |
305 expect(result['_optimizable'], equals(true)); | 305 expect(result['_optimizable'], equals(true)); |
306 expect(result['_inlinable'], equals(true)); | 306 expect(result['_inlinable'], equals(true)); |
307 expect(result['_usageCounter'], isPositive); | 307 expect(result['_usageCounter'], isPositive); |
308 expect(result['_optimizedCallSiteCount'], isZero); | 308 expect(result['_optimizedCallSiteCount'], isZero); |
309 expect(result['_deoptimizations'], isZero); | 309 expect(result['_deoptimizations'], isZero); |
(...skipping 25 matching lines...) Expand all Loading... |
335 // Call eval to get a class id. | 335 // Call eval to get a class id. |
336 var evalResult = await eval(isolate, 'new _DummyClass()'); | 336 var evalResult = await eval(isolate, 'new _DummyClass()'); |
337 var id = "${evalResult['class']['id']}/fields/0"; | 337 var id = "${evalResult['class']['id']}/fields/0"; |
338 var params = { | 338 var params = { |
339 'objectId': id, | 339 'objectId': id, |
340 }; | 340 }; |
341 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 341 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
342 expect(result['type'], equals('Field')); | 342 expect(result['type'], equals('Field')); |
343 expect(result['id'], equals(id)); | 343 expect(result['id'], equals(id)); |
344 expect(result['name'], equals('dummyVar')); | 344 expect(result['name'], equals('dummyVar')); |
345 expect(result['value']['valueAsString'], equals('11')); | |
346 expect(result['const'], equals(false)); | 345 expect(result['const'], equals(false)); |
347 expect(result['static'], equals(true)); | 346 expect(result['static'], equals(true)); |
348 expect(result['final'], equals(false)); | 347 expect(result['final'], equals(false)); |
349 expect(result['script']['type'], equals('@Script')); | 348 expect(result['script']['type'], equals('@Script')); |
350 expect(result['tokenPos'], isPositive); | 349 expect(result['tokenPos'], isPositive); |
| 350 expect(result['staticValue']['valueAsString'], equals('11')); |
351 expect(result['_guardNullable'], isNotNull); | 351 expect(result['_guardNullable'], isNotNull); |
352 expect(result['_guardClass'], isNotNull); | 352 expect(result['_guardClass'], isNotNull); |
353 expect(result['_guardLength'], isNotNull); | 353 expect(result['_guardLength'], isNotNull); |
354 }, | 354 }, |
355 | 355 |
356 // invalid field. | 356 // invalid field. |
357 (Isolate isolate) async { | 357 (Isolate isolate) async { |
358 // Call eval to get a class id. | 358 // Call eval to get a class id. |
359 var evalResult = await eval(isolate, 'new _DummyClass()'); | 359 var evalResult = await eval(isolate, 'new _DummyClass()'); |
360 var id = "${evalResult['class']['id']}/fields/9999"; | 360 var id = "${evalResult['class']['id']}/fields/9999"; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 caughtException = true; | 415 caughtException = true; |
416 expect(e.code, equals(ServerRpcException.kInvalidParams)); | 416 expect(e.code, equals(ServerRpcException.kInvalidParams)); |
417 expect(e.message, | 417 expect(e.message, |
418 "getObject: invalid 'objectId' parameter: code/0"); | 418 "getObject: invalid 'objectId' parameter: code/0"); |
419 } | 419 } |
420 expect(caughtException, isTrue); | 420 expect(caughtException, isTrue); |
421 }, | 421 }, |
422 ]; | 422 ]; |
423 | 423 |
424 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); | 424 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); |
OLD | NEW |