Chromium Code Reviews| Index: runtime/observatory/tests/service/instance_field_order_rpc_test.dart |
| diff --git a/runtime/observatory/tests/service/instance_field_order_rpc_test.dart b/runtime/observatory/tests/service/instance_field_order_rpc_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5a1fdf1122bfd421964878dae765df9d0505241f |
| --- /dev/null |
| +++ b/runtime/observatory/tests/service/instance_field_order_rpc_test.dart |
| @@ -0,0 +1,54 @@ |
| +// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| +// VMOptions=--error_on_bad_type --error_on_bad_override |
| + |
| +library get_object_rpc_test; |
| + |
| +import 'dart:typed_data'; |
| +import 'package:observatory/service_io.dart'; |
| +import 'package:unittest/unittest.dart'; |
| +import 'test_helper.dart'; |
| + |
| +class Super { |
| + var a = 1; |
| + var b = 2; |
|
turnidge
2016/04/18 22:48:03
Maybe reverse a and b these so that we can see tha
rmacnak
2016/04/18 23:07:59
Done.
|
| +} |
| +class Sub extends Super { |
| + var b = 3; |
| + var c = 4; |
| +} |
| + |
| +eval(Isolate isolate, String expression) async { |
| + Map params = { |
| + 'targetId': isolate.rootLibrary.id, |
| + 'expression': expression, |
| + }; |
| + return await isolate.invokeRpcNoUpgrade('evaluate', params); |
| +} |
| + |
| +var tests = [ |
| + (Isolate isolate) async { |
| + // Call eval to get a Dart list. |
| + var evalResult = await eval(isolate, 'new Sub()'); |
| + var params = { |
| + 'objectId': evalResult['id'], |
| + }; |
| + var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
| + print(result); |
| + expect(result['type'], equals('Instance')); |
| + expect(result['kind'], equals('PlainInstance')); |
| + expect(result['class']['name'], equals('Sub')); |
| + expect(result['size'], isPositive); |
| + expect(result['fields'][0]['decl']['name'], 'a'); |
| + expect(result['fields'][0]['value']['valueAsString'], '1'); |
| + expect(result['fields'][1]['decl']['name'], 'b'); |
| + expect(result['fields'][1]['value']['valueAsString'], '2'); |
| + expect(result['fields'][2]['decl']['name'], 'b'); |
| + expect(result['fields'][2]['value']['valueAsString'], '3'); |
| + expect(result['fields'][3]['decl']['name'], 'c'); |
| + expect(result['fields'][3]['value']['valueAsString'], '4'); |
| + }, |
| +]; |
| + |
| +main(args) async => runIsolateTests(args, tests); |