diff --git a/dwds/test/frontend_server_breakpoint_test.dart b/dwds/test/frontend_server_breakpoint_test.dart index 131ffcca9..1e9bd996b 100644 --- a/dwds/test/frontend_server_breakpoint_test.dart +++ b/dwds/test/frontend_server_breakpoint_test.dart @@ -2,8 +2,6 @@ // 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. -// @dart = 2.9 - @TestOn('vm') import 'dart:async'; @@ -53,33 +51,37 @@ void main() { group('breakpoint', () { VM vm; - Isolate isolate; + late Isolate isolate; + late String isolateId; ScriptList scripts; - ScriptRef mainScript; - Stream stream; + late ScriptRef mainScript; + late String mainScriptUri; + late Stream stream; setUp(() async { setCurrentLogWriter(debug: debug); vm = await service.getVM(); - isolate = await service.getIsolate(vm.isolates.first.id); - scripts = await service.getScripts(isolate.id); + isolate = await service.getIsolate(vm.isolates!.first.id!); + isolateId = isolate.id!; + scripts = await service.getScripts(isolateId); await service.streamListen('Debug'); stream = service.onEvent('Debug'); - mainScript = scripts.scripts - .firstWhere((each) => each.uri.contains('main.dart')); + mainScript = scripts.scripts! + .firstWhere((each) => each.uri!.contains('main.dart')); + mainScriptUri = mainScript.uri!; }); tearDown(() async { - await service.resume(isolate.id); + await service.resume(isolateId); }); test('set breakpoint', () async { final line = await context.findBreakpointLine( - 'printLocal', isolate.id, mainScript); + 'printLocal', isolateId, mainScript); final bp = await service.addBreakpointWithScriptUri( - isolate.id, mainScript.uri, line); + isolateId, mainScriptUri, line); await stream.firstWhere( (Event event) => event.kind == EventKind.kPauseBreakpoint); @@ -87,14 +89,14 @@ void main() { expect(bp, isNotNull); // Remove breakpoint so it doesn't impact other tests. - await service.removeBreakpoint(isolate.id, bp.id); + await service.removeBreakpoint(isolateId, bp.id!); }); test('set breakpoint again', () async { final line = await context.findBreakpointLine( - 'printLocal', isolate.id, mainScript); + 'printLocal', isolateId, mainScript); final bp = await service.addBreakpointWithScriptUri( - isolate.id, mainScript.uri, line); + isolateId, mainScriptUri, line); await stream.firstWhere( (Event event) => event.kind == EventKind.kPauseBreakpoint); @@ -102,15 +104,15 @@ void main() { expect(bp, isNotNull); // Remove breakpoint so it doesn't impact other tests. - await service.removeBreakpoint(isolate.id, bp.id); + await service.removeBreakpoint(isolateId, bp.id!); }); test('set breakpoint inside a JavaScript line succeeds', () async { final line = await context.findBreakpointLine( - 'printNestedObjectMultiLine', isolate.id, mainScript); + 'printNestedObjectMultiLine', isolateId, mainScript); final column = 0; final bp = await service.addBreakpointWithScriptUri( - isolate.id, mainScript.uri, line, + isolateId, mainScriptUri, line, column: column); await stream.firstWhere( @@ -125,7 +127,7 @@ void main() { .having((loc) => loc.column, 'column', greaterThan(column))); // Remove breakpoint so it doesn't impact other tests. - await service.removeBreakpoint(isolate.id, bp.id); + await service.removeBreakpoint(isolateId, bp.id!); }); }); }); diff --git a/dwds/test/frontend_server_callstack_test.dart b/dwds/test/frontend_server_callstack_test.dart index bfd57eaf6..e3b0e1b62 100644 --- a/dwds/test/frontend_server_callstack_test.dart +++ b/dwds/test/frontend_server_callstack_test.dart @@ -2,8 +2,6 @@ // 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. -// @dart = 2.9 - @TestOn('vm') import 'dart:async'; @@ -66,20 +64,22 @@ void main() { }); group('callStack |', () { - ChromeProxyService service; + late ChromeProxyService service; VM vm; - Isolate isolate; + late Isolate isolate; + late String isolateId; ScriptList scripts; - ScriptRef mainScript; - ScriptRef testLibraryScript; - Stream stream; + late ScriptRef mainScript; + late ScriptRef testLibraryScript; + late Stream stream; setUp(() async { setCurrentLogWriter(debug: debug); service = setup.service; vm = await service.getVM(); - isolate = await service.getIsolate(vm.isolates.first.id); - scripts = await service.getScripts(isolate.id); + isolate = await service.getIsolate(vm.isolates!.first.id!); + isolateId = isolate.id!; + scripts = await service.getScripts(isolateId); await service.streamListen('Debug'); stream = service.onEvent('Debug'); @@ -87,26 +87,26 @@ void main() { final testPackage = soundNullSafety ? '_test_package_sound' : '_test_package'; - mainScript = scripts.scripts - .firstWhere((each) => each.uri.contains('main.dart')); - testLibraryScript = scripts.scripts.firstWhere((each) => - each.uri.contains('package:$testPackage/test_library.dart')); + mainScript = scripts.scripts! + .firstWhere((each) => each.uri!.contains('main.dart')); + testLibraryScript = scripts.scripts!.firstWhere((each) => + each.uri!.contains('package:$testPackage/test_library.dart')); }); tearDown(() async { - await service.resume(isolate.id); + await service.resume(isolateId); }); Future onBreakPoint(BreakpointTestData breakpoint, Future Function() body) async { - Breakpoint bp; + Breakpoint? bp; try { final bpId = breakpoint.bpId; final script = breakpoint.script; final line = - await context.findBreakpointLine(bpId, isolate.id, script); + await context.findBreakpointLine(bpId, isolateId, script); bp = await setup.service - .addBreakpointWithScriptUri(isolate.id, script.uri, line); + .addBreakpointWithScriptUri(isolateId, script.uri!, line); expect(bp, isNotNull); expect(bp.location, _matchBpLocation(script, line, 0)); @@ -118,7 +118,7 @@ void main() { } finally { // Remove breakpoint so it doesn't impact other tests or retries. if (bp != null) { - await setup.service.removeBreakpoint(isolate.id, bp.id); + await setup.service.removeBreakpoint(isolateId, bp.id!); } } } @@ -127,13 +127,13 @@ void main() { {int frameIndex = 1}) async { // Find lines the breakpoints are located on. final lines = await Future.wait(breakpoints.map((frame) => context - .findBreakpointLine(frame.bpId, isolate.id, frame.script))); + .findBreakpointLine(frame.bpId, isolateId, frame.script))); // Get current stack. - final stack = await service.getStack(isolate.id); + final stack = await service.getStack(isolateId); // Verify the stack is correct. - expect(stack.frames.length, greaterThanOrEqualTo(lines.length)); + expect(stack.frames!.length, greaterThanOrEqualTo(lines.length)); final expected = [ for (var i = 0; i < lines.length; i++) _matchFrame( @@ -143,7 +143,7 @@ void main() { // Verify that expression evaluation is not failing. final instance = - await service.evaluateInFrame(isolate.id, frameIndex, 'true'); + await service.evaluateInFrame(isolateId, frameIndex, 'true'); expect(instance, isA()); } @@ -236,7 +236,7 @@ void main() { ), ]; await onBreakPoint(breakpoints[0], () async { - await service.resume(isolate.id, step: 'Out'); + await service.resume(isolateId, step: 'Out'); await stream.firstWhere( (Event event) => event.kind == EventKind.kPauseInterrupted); return testCallStack([breakpoints[1], breakpoints[2]]); @@ -263,7 +263,7 @@ void main() { ), ]; await onBreakPoint(breakpoints[1], () async { - await service.resume(isolate.id, step: 'Into'); + await service.resume(isolateId, step: 'Into'); await stream.firstWhere( (Event event) => event.kind == EventKind.kPauseInterrupted); return testCallStack(breakpoints); @@ -295,7 +295,7 @@ void main() { final bp = BreakpointTestData( 'printMultiLine', 'printObjectMultiLine', mainScript); await onBreakPoint(bp, () async { - await service.resume(isolate.id, step: 'Into'); + await service.resume(isolateId, step: 'Into'); await stream.firstWhere( (Event event) => event.kind == EventKind.kPauseInterrupted); return testCallStack(breakpoints); @@ -309,7 +309,7 @@ void main() { } Matcher _matchFrame(ScriptRef script, String function, int line) => isA() - .having((frame) => frame.code.name, 'function', function) + .having((frame) => frame.code!.name, 'function', function) .having((frame) => frame.location, 'location', _matchFrameLocation(script, line)); diff --git a/dwds/test/reload_test.dart b/dwds/test/reload_test.dart index 1a4bb6161..7ec5894cb 100644 --- a/dwds/test/reload_test.dart +++ b/dwds/test/reload_test.dart @@ -2,8 +2,6 @@ // 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. -// @dart = 2.9 - @TestOn('vm') @Timeout(Duration(minutes: 5)) import 'package:dwds/src/loaders/strategy.dart'; @@ -180,9 +178,9 @@ void main() { )); var vm = await client.getVM(); - var isolateId = vm.isolates.first.id; + var isolateId = vm.isolates!.first.id!; var isolate = await client.getIsolate(isolateId); - var library = isolate.rootLib.uri; + var library = isolate.rootLib!.uri!; await client.evaluate( isolateId, @@ -194,9 +192,9 @@ void main() { const TypeMatcher()); vm = await client.getVM(); - isolateId = vm.isolates.first.id; + isolateId = vm.isolates!.first.id!; isolate = await client.getIsolate(isolateId); - library = isolate.rootLib.uri; + library = isolate.rootLib!.uri!; await client.evaluate( isolateId, @@ -237,15 +235,15 @@ void main() { test('can hot restart while paused', () async { final client = context.debugConnection.vmService; var vm = await client.getVM(); - var isolateId = vm.isolates.first.id; + var isolateId = vm.isolates!.first.id!; await client.streamListen('Debug'); final stream = client.onEvent('Debug'); final scriptList = await client.getScripts(isolateId); - final main = scriptList.scripts - .firstWhere((script) => script.uri.contains('main.dart')); + final main = scriptList.scripts! + .firstWhere((script) => script.uri!.contains('main.dart')); final bpLine = await context.findBreakpointLine('printCount', isolateId, main); - await client.addBreakpoint(isolateId, main.id, bpLine); + await client.addBreakpoint(isolateId, main.id!, bpLine); await stream .firstWhere((event) => event.kind == EventKind.kPauseBreakpoint); @@ -258,43 +256,44 @@ void main() { expect(source.contains('Gary is awesome!'), isTrue); vm = await client.getVM(); - isolateId = vm.isolates.first.id; + isolateId = vm.isolates!.first.id!; final isolate = await client.getIsolate(isolateId); // Previous breakpoint should still exist. - expect(isolate.breakpoints.isNotEmpty, isTrue); - final bp = isolate.breakpoints.first; + expect(isolate.breakpoints!.isNotEmpty, isTrue); + final bp = isolate.breakpoints!.first; // Should pause eventually. await stream .firstWhere((event) => event.kind == EventKind.kPauseBreakpoint); - expect(await client.removeBreakpoint(isolate.id, bp.id), isA()); - expect(await client.resume(isolate.id), isA()); + expect( + await client.removeBreakpoint(isolate.id!, bp.id!), isA()); + expect(await client.resume(isolate.id!), isA()); }); test('can evaluate expressions after hot restart ', () async { final client = context.debugConnection.vmService; var vm = await client.getVM(); - var isolateId = vm.isolates.first.id; + var isolateId = vm.isolates!.first.id!; await client.streamListen('Debug'); final stream = client.onEvent('Debug'); final scriptList = await client.getScripts(isolateId); - final main = scriptList.scripts - .firstWhere((script) => script.uri.contains('main.dart')); + final main = scriptList.scripts! + .firstWhere((script) => script.uri!.contains('main.dart')); final bpLine = await context.findBreakpointLine('printCount', isolateId, main); - await client.addBreakpoint(isolateId, main.id, bpLine); + await client.addBreakpoint(isolateId, main.id!, bpLine); await stream .firstWhere((event) => event.kind == EventKind.kPauseBreakpoint); await client.callServiceExtension('hotRestart'); vm = await client.getVM(); - isolateId = vm.isolates.first.id; + isolateId = vm.isolates!.first.id!; final isolate = await client.getIsolate(isolateId); - final library = isolate.rootLib.uri; - final bp = isolate.breakpoints.first; + final library = isolate.rootLib!.uri!; + final bp = isolate.breakpoints!.first; // Should pause eventually. final event = await stream @@ -302,13 +301,13 @@ void main() { // Expression evaluation while paused on a breakpoint should work. var result = await client.evaluateInFrame( - isolate.id, event.topFrame.index, 'count'); + isolate.id!, event.topFrame!.index!, 'count'); expect( result, isA().having((instance) => instance.valueAsString, 'valueAsString', greaterThanOrEqualTo('0'))); - await client.removeBreakpoint(isolateId, bp.id); + await client.removeBreakpoint(isolateId, bp.id!); await client.resume(isolateId); // Expression evaluation while running should work. diff --git a/dwds/test/restore_breakpoints_test.dart b/dwds/test/restore_breakpoints_test.dart index 4691c8592..2752a0c34 100644 --- a/dwds/test/restore_breakpoints_test.dart +++ b/dwds/test/restore_breakpoints_test.dart @@ -2,8 +2,6 @@ // 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. -// @dart = 2.9 - @TestOn('vm') import 'dart:async'; @@ -33,33 +31,33 @@ void main() { group('breakpoints', () { VM vm; - Isolate isolate; + late Isolate isolate; ScriptList scripts; - ScriptRef mainScript; - Stream isolateEventStream; + late ScriptRef mainScript; + late Stream isolateEventStream; setUp(() async { setCurrentLogWriter(); vm = await fetchChromeProxyService(context.debugConnection).getVM(); isolate = await fetchChromeProxyService(context.debugConnection) - .getIsolate(vm.isolates.first.id); + .getIsolate(vm.isolates!.first.id!); scripts = await fetchChromeProxyService(context.debugConnection) - .getScripts(isolate.id); - mainScript = - scripts.scripts.firstWhere((each) => each.uri.contains('main.dart')); + .getScripts(isolate.id!); + mainScript = scripts.scripts! + .firstWhere((each) => each.uri!.contains('main.dart')); isolateEventStream = service.onEvent('Isolate'); }); tearDown(() async { // Remove breakpoints so they don't impact other tests. - for (var breakpoint in isolate.breakpoints.toList()) { - await service.removeBreakpoint(isolate.id, breakpoint.id); + for (var breakpoint in isolate.breakpoints!.toList()) { + await service.removeBreakpoint(isolate.id!, breakpoint.id!); } }); test('restore after refresh', () async { final firstBp = - await service.addBreakpoint(isolate.id, mainScript.id, 23); + await service.addBreakpoint(isolate.id!, mainScript.id!, 23); expect(firstBp, isNotNull); expect(firstBp.id, isNotNull); @@ -76,14 +74,14 @@ void main() { await eventsDone; vm = await service.getVM(); - isolate = await service.getIsolate(vm.isolates.first.id); + isolate = await service.getIsolate(vm.isolates!.first.id!); - expect(isolate.breakpoints.length, equals(1)); + expect(isolate.breakpoints!.length, equals(1)); }, timeout: const Timeout.factor(2)); test('restore after hot restart', () async { final firstBp = - await service.addBreakpoint(isolate.id, mainScript.id, 23); + await service.addBreakpoint(isolate.id!, mainScript.id!, 23); expect(firstBp, isNotNull); expect(firstBp.id, isNotNull); @@ -101,9 +99,9 @@ void main() { await eventsDone; vm = await service.getVM(); - isolate = await service.getIsolate(vm.isolates.first.id); + isolate = await service.getIsolate(vm.isolates!.first.id!); - expect(isolate.breakpoints.length, equals(1)); + expect(isolate.breakpoints!.length, equals(1)); }, timeout: const Timeout.factor(2)); }); } diff --git a/dwds/test/run_request_test.dart b/dwds/test/run_request_test.dart index ec4c2d76e..9856c6665 100644 --- a/dwds/test/run_request_test.dart +++ b/dwds/test/run_request_test.dart @@ -2,8 +2,6 @@ // 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. -// @dart = 2.9 - @Timeout(Duration(minutes: 2)) import 'dart:async'; @@ -31,8 +29,8 @@ void main() { test('can resume while paused at the start', () async { final vm = await service.getVM(); - final isolate = await service.getIsolate(vm.isolates.first.id); - expect(isolate.pauseEvent.kind, EventKind.kPauseStart); + final isolate = await service.getIsolate(vm.isolates!.first.id!); + expect(isolate.pauseEvent!.kind, EventKind.kPauseStart); final stream = service.onEvent('Debug'); final resumeCompleter = Completer(); // The underlying stream is a broadcast stream so we need to add a @@ -42,19 +40,19 @@ void main() { .then((_) { resumeCompleter.complete(); })); - await service.resume(isolate.id); + await service.resume(isolate.id!); await resumeCompleter.future; - expect(isolate.pauseEvent.kind, EventKind.kResume); + expect(isolate.pauseEvent!.kind, EventKind.kResume); }); test('correctly sets the isolate pauseEvent', () async { final vm = await service.getVM(); - final isolate = await service.getIsolate(vm.isolates.first.id); - expect(isolate.pauseEvent.kind, EventKind.kPauseStart); + final isolate = await service.getIsolate(vm.isolates!.first.id!); + expect(isolate.pauseEvent!.kind, EventKind.kPauseStart); final stream = service.onEvent('Debug'); context.appConnection.runMain(); await stream.firstWhere((event) => event.kind == EventKind.kResume); - expect(isolate.pauseEvent.kind, EventKind.kResume); + expect(isolate.pauseEvent!.kind, EventKind.kResume); }); }); @@ -70,8 +68,8 @@ void main() { context.appConnection.runMain(); await context.startDebugging(); final vm = await service.getVM(); - final isolate = await service.getIsolate(vm.isolates.first.id); - expect(isolate.pauseEvent.kind, EventKind.kResume); + final isolate = await service.getIsolate(vm.isolates!.first.id!); + expect(isolate.pauseEvent!.kind, EventKind.kResume); }); }); } diff --git a/dwds/test/variable_scope_test.dart b/dwds/test/variable_scope_test.dart index 7953d7f3c..9a592ec6d 100644 --- a/dwds/test/variable_scope_test.dart +++ b/dwds/test/variable_scope_test.dart @@ -2,8 +2,6 @@ // 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. -// @dart = 2.9 - @TestOn('vm') import 'package:dwds/src/connections/debug_connection.dart'; import 'package:dwds/src/debugging/dart_scope.dart'; @@ -50,10 +48,10 @@ void main() { group('variable scope', () { VM vm; - String isolateId; - Stream stream; + String? isolateId; + late Stream stream; ScriptList scripts; - ScriptRef mainScript; + late ScriptRef mainScript; Stack stack; // TODO: Be able to set breakpoints before start/reload so we can exercise @@ -62,21 +60,21 @@ void main() { /// Support function for pausing and returning the stack at a line. Future breakAt(String breakpointId, ScriptRef scriptRef) async { final lineNumber = - await context.findBreakpointLine(breakpointId, isolateId, scriptRef); + await context.findBreakpointLine(breakpointId, isolateId!, scriptRef); final bp = - await service.addBreakpoint(isolateId, scriptRef.id, lineNumber); + await service.addBreakpoint(isolateId!, scriptRef.id!, lineNumber); // Wait for breakpoint to trigger. await stream .firstWhere((event) => event.kind == EventKind.kPauseBreakpoint); // Remove breakpoint so it doesn't impact other tests. - await service.removeBreakpoint(isolateId, bp.id); - final stack = await service.getStack(isolateId); + await service.removeBreakpoint(isolateId!, bp.id!); + final stack = await service.getStack(isolateId!); return stack; } Future getInstance(InstanceRef ref) async { - final result = await service.getObject(isolateId, ref.id); + final result = await service.getObject(isolateId!, ref.id!); expect(result, isA()); return result as Instance; } @@ -85,7 +83,7 @@ void main() { expect( instance, isA().having( - (instance) => instance.classRef.name, + (instance) => instance.classRef!.name, '$variableName: classRef.name', isNot(isIn([ 'NativeJavaScriptObject', @@ -93,37 +91,38 @@ void main() { ])))); } - Future expectDartVariables(Map variables) async { + Future expectDartVariables( + Map variables) async { for (var name in variables.keys) { - final instance = await getInstance(variables[name]); - expectDartObject(name, instance); + final instance = await getInstance(variables[name]!); + expectDartObject(name!, instance); } } - Map getFrameVariables(Frame frame) { - return { - for (var variable in frame.vars) - variable.name: variable.value as InstanceRef, + Map getFrameVariables(Frame frame) { + return { + for (var variable in frame.vars!) + variable.name: variable.value as InstanceRef?, }; } setUp(() async { vm = await service.getVM(); - isolateId = vm.isolates.first.id; - scripts = await service.getScripts(isolateId); + isolateId = vm.isolates!.first.id; + scripts = await service.getScripts(isolateId!); await service.streamListen('Debug'); stream = service.onEvent('Debug'); - mainScript = scripts.scripts - .firstWhere((each) => each.uri.contains('scopes_main.dart')); + mainScript = scripts.scripts! + .firstWhere((each) => each.uri!.contains('scopes_main.dart')); }); tearDown(() async { - await service.resume(isolateId); + await service.resume(isolateId!); }); test('variables in static function', () async { stack = await breakAt('staticFunction', mainScript); - final variables = getFrameVariables(stack.frames.first); + final variables = getFrameVariables(stack.frames!.first); await expectDartVariables(variables); final variableNames = variables.keys.toList()..sort(); @@ -132,7 +131,7 @@ void main() { test('variables in function', () async { stack = await breakAt('nestedFunction', mainScript); - final variables = getFrameVariables(stack.frames.first); + final variables = getFrameVariables(stack.frames!.first); await expectDartVariables(variables); final variableNames = variables.keys.toList()..sort(); @@ -152,7 +151,7 @@ void main() { test('variables in closure nested in method', () async { stack = await breakAt('nestedClosure', mainScript); - final variables = getFrameVariables(stack.frames.first); + final variables = getFrameVariables(stack.frames!.first); await expectDartVariables(variables); final variableNames = variables.keys.toList()..sort(); @@ -162,7 +161,7 @@ void main() { test('variables in method', () async { stack = await breakAt('printMethod', mainScript); - final variables = getFrameVariables(stack.frames.first); + final variables = getFrameVariables(stack.frames!.first); await expectDartVariables(variables); final variableNames = variables.keys.toList()..sort(); @@ -171,7 +170,7 @@ void main() { test('variables in extension method', () async { stack = await breakAt('extension', mainScript); - final variables = getFrameVariables(stack.frames.first); + final variables = getFrameVariables(stack.frames!.first); await expectDartVariables(variables); final variableNames = variables.keys.toList()..sort();