| 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 |