| 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 --checked | 4 // VMOptions=--compile-all --error_on_bad_type --error_on_bad_override --checked | 
| 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 = 62; | 72       const int fixedSizeListCid = 61; | 
| 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.rootLib.load().then((Library lib) { | 88   return isolate.rootLib.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 | 
|---|