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

Unified Diff: runtime/observatory/tests/service/instance_field_order_rpc_test.dart

Issue 1865553003: vm-service: Answer fields from superclass to subclass in declaration order (layout order). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/object_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « no previous file | runtime/vm/object_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698