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 import 'package:observatory/service_io.dart'; | 6 import 'package:observatory/service_io.dart'; |
7 import 'package:unittest/unittest.dart'; | 7 import 'package:unittest/unittest.dart'; |
8 import 'test_helper.dart'; | 8 import 'test_helper.dart'; |
9 import 'dart:async'; | |
10 | 9 |
11 import 'dart:math' as math; | 10 import 'dart:math' as math; |
12 | 11 |
13 breakHere() {} | 12 breakHere() {} |
14 | 13 |
| 14 use(dynamic v) => v; |
| 15 |
15 class C { | 16 class C { |
16 var instVar = 1; | 17 var instVar = 1; |
17 static var classVar = 2; | 18 static var classVar = 2; |
18 | 19 |
19 method(methodParam) { | 20 method(methodParam) { |
20 var methodTemp = 4; | 21 var methodTemp = 4; |
| 22 use(methodTemp); |
21 [5].forEach((outerParam) { | 23 [5].forEach((outerParam) { |
22 var outerTemp = 6; | 24 var outerTemp = 6; |
| 25 use(outerTemp); |
23 [7].forEach((innerParam) { | 26 [7].forEach((innerParam) { |
24 var innerTemp = 8; | 27 var innerTemp = 8; |
| 28 use(innerTemp); |
25 breakHere(); | 29 breakHere(); |
26 }); | 30 }); |
27 }); | 31 }); |
28 } | 32 } |
29 | 33 |
30 static method2(methodParam) { | 34 static method2(methodParam) { |
31 var methodTemp = 4; | 35 var methodTemp = 4; |
| 36 use(methodTemp); |
32 [5].forEach((outerParam) { | 37 [5].forEach((outerParam) { |
33 var outerTemp = 6; | 38 var outerTemp = 6; |
| 39 use(outerTemp); |
34 [7].forEach((innerParam) { | 40 [7].forEach((innerParam) { |
35 var innerTemp = 8; | 41 var innerTemp = 8; |
| 42 use(innerTemp); |
36 breakHere(); | 43 breakHere(); |
37 }); | 44 }); |
38 }); | 45 }); |
39 } | 46 } |
40 | 47 |
41 method3(methodParam) { | 48 method3(methodParam) { |
42 var methodTemp = 4; | 49 var methodTemp = 4; |
| 50 use(methodTemp); |
43 breakHere(); | 51 breakHere(); |
44 } | 52 } |
45 | 53 |
46 static var closureWithReturnedHome; | 54 static var closureWithReturnedHome; |
47 method4(methodParam) { | 55 method4(methodParam) { |
48 var methodTemp = 4; | 56 var methodTemp = 4; |
| 57 use(methodTemp); |
49 [5].forEach((outerParam) { | 58 [5].forEach((outerParam) { |
50 var outerTemp = 6; | 59 var outerTemp = 6; |
| 60 use(outerTemp); |
51 closureWithReturnedHome = (innerParam) { | 61 closureWithReturnedHome = (innerParam) { |
52 var innerTemp = 8; | 62 var innerTemp = 8; |
| 63 use(innerTemp); |
53 breakHere(); | 64 breakHere(); |
54 }; | 65 }; |
55 }); | 66 }); |
56 } | 67 } |
57 } | 68 } |
58 | 69 |
59 testMethod(Isolate isolate) async { | 70 testMethod(Isolate isolate) async { |
| 71 // silence analyzer. |
| 72 expect(math.sqrt(4), equals(2)); |
60 Library rootLib = await isolate.rootLib.load(); | 73 Library rootLib = await isolate.rootLib.load(); |
61 ServiceFunction function = | 74 ServiceFunction function = |
62 rootLib.functions.singleWhere((f) => f.name == 'breakHere'); | 75 rootLib.functions.singleWhere((f) => f.name == 'breakHere'); |
63 Breakpoint bpt = await isolate.addBreakpointAtEntry(function); | 76 Breakpoint bpt = await isolate.addBreakpointAtEntry(function); |
64 print("Breakpoint: $bpt"); | 77 print("Breakpoint: $bpt"); |
65 expect(bpt is Breakpoint, isTrue); // I.e, not null. | 78 expect(bpt is Breakpoint, isTrue); // I.e, not null. |
66 | 79 |
67 bool hitBreakpoint = false; | 80 bool hitBreakpoint = false; |
68 var sub; | 81 var sub; |
69 sub = isolate.vm.events.stream.listen((ServiceEvent event) async { | 82 sub = isolate.vm.events.stream.listen((ServiceEvent event) async { |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 } | 256 } |
244 | 257 |
245 var tests = [ | 258 var tests = [ |
246 testMethod, | 259 testMethod, |
247 testMethod2, | 260 testMethod2, |
248 testMethod3, | 261 testMethod3, |
249 testMethod4, | 262 testMethod4, |
250 ]; | 263 ]; |
251 | 264 |
252 main(args) => runIsolateTests(args, tests); | 265 main(args) => runIsolateTests(args, tests); |
OLD | NEW |