OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 import 'dart:async'; | 6 import 'dart:async'; |
7 import 'package:observatory/object_graph.dart'; | 7 import 'package:observatory/object_graph.dart'; |
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 import 'test_helper.dart'; | 10 import 'test_helper.dart'; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 (ObjectVertex obj) => obj.succ.length == 2).first; | 62 (ObjectVertex obj) => obj.succ.length == 2).first; |
63 | 63 |
64 // TODO(koda): Check actual byte sizes. | 64 // TODO(koda): Check actual byte sizes. |
65 | 65 |
66 expect(aVertex.retainedSize, equals(aVertex.shallowSize)); | 66 expect(aVertex.retainedSize, equals(aVertex.shallowSize)); |
67 expect(bVertex.retainedSize, equals(bVertex.shallowSize)); | 67 expect(bVertex.retainedSize, equals(bVertex.shallowSize)); |
68 expect(rVertex.retainedSize, equals(aVertex.shallowSize + | 68 expect(rVertex.retainedSize, equals(aVertex.shallowSize + |
69 bVertex.shallowSize + | 69 bVertex.shallowSize + |
70 rVertex.shallowSize)); | 70 rVertex.shallowSize)); |
71 | 71 |
72 const int fixedSizeListCid = 61; | 72 const int fixedSizeListCid = 62; |
73 List<ObjectVertex> lists = new List.from(graph.vertices.where( | 73 List<ObjectVertex> lists = new List.from(graph.vertices.where( |
74 (ObjectVertex obj) => obj.classId == fixedSizeListCid)); | 74 (ObjectVertex obj) => obj.classId == fixedSizeListCid)); |
75 expect(lists.length >= 2, isTrue); | 75 expect(lists.length >= 2, isTrue); |
76 // Order by decreasing retained size. | 76 // Order by decreasing retained size. |
77 lists.sort((u, v) => v.retainedSize - u.retainedSize); | 77 lists.sort((u, v) => v.retainedSize - u.retainedSize); |
78 ObjectVertex first = lists[0]; | 78 ObjectVertex first = lists[0]; |
79 ObjectVertex second = lists[1]; | 79 ObjectVertex second = lists[1]; |
80 // Check that the short list retains more than the long list inside. | 80 // Check that the short list retains more than the long list inside. |
81 expect(first.succ.length, equals(2 + second.succ.length)); | 81 expect(first.succ.length, equals(2 + second.succ.length)); |
82 // ... and specifically, that it retains exactly itself + the long one. | 82 // ... and specifically, that it retains exactly itself + the long one. |
83 expect(first.retainedSize, | 83 expect(first.retainedSize, |
84 equals(first.shallowSize + second.shallowSize)); | 84 equals(first.shallowSize + second.shallowSize)); |
85 completer.complete(); | 85 completer.complete(); |
86 } | 86 } |
87 }); | 87 }); |
88 return isolate.rootLibrary.load().then((Library lib) { | 88 return isolate.rootLibrary.load().then((Library lib) { |
89 expect(lib.classes.length, equals(1)); | 89 expect(lib.classes.length, equals(1)); |
90 Class fooClass = lib.classes.first; | 90 Class fooClass = lib.classes.first; |
91 fooId = fooClass.vmCid; | 91 fooId = fooClass.vmCid; |
92 isolate.invokeRpcNoUpgrade('requestHeapSnapshot', {}); | 92 isolate.invokeRpcNoUpgrade('requestHeapSnapshot', {}); |
93 return completer.future; | 93 return completer.future; |
94 }); | 94 }); |
95 }, | 95 }, |
96 | 96 |
97 ]; | 97 ]; |
98 | 98 |
99 main(args) => runIsolateTests(args, tests, testeeBefore: script); | 99 main(args) => runIsolateTests(args, tests, testeeBefore: script); |
OLD | NEW |