Unverified Commit 35bf5ab5 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter-tools] add awaits to debug a potential timing issue (#52047)

parent b127868d
...@@ -125,7 +125,6 @@ void main() { ...@@ -125,7 +125,6 @@ void main() {
test("hot reload doesn't reassemble if paused", () async { test("hot reload doesn't reassemble if paused", () async {
final Completer<void> sawTick1 = Completer<void>(); final Completer<void> sawTick1 = Completer<void>();
final Completer<void> sawTick3 = Completer<void>();
final Completer<void> sawDebuggerPausedMessage1 = Completer<void>(); final Completer<void> sawDebuggerPausedMessage1 = Completer<void>();
final Completer<void> sawDebuggerPausedMessage2 = Completer<void>(); final Completer<void> sawDebuggerPausedMessage2 = Completer<void>();
final StreamSubscription<String> subscription = _flutter.stdout.listen( final StreamSubscription<String> subscription = _flutter.stdout.listen(
...@@ -146,12 +145,14 @@ void main() { ...@@ -146,12 +145,14 @@ void main() {
}, },
); );
await _flutter.run(withDebugger: true); await _flutter.run(withDebugger: true);
await Future<void>.delayed(const Duration(seconds: 1));
await sawTick1.future; await sawTick1.future;
await _flutter.addBreakpoint( await _flutter.addBreakpoint(
_project.buildBreakpointUri, _project.buildBreakpointUri,
_project.buildBreakpointLine, _project.buildBreakpointLine,
); );
bool reloaded = false; bool reloaded = false;
await Future<void>.delayed(const Duration(seconds: 1));
final Future<void> reloadFuture = _flutter.hotReload().then((void value) { reloaded = true; }); final Future<void> reloadFuture = _flutter.hotReload().then((void value) { reloaded = true; });
final Isolate isolate = await _flutter.waitForPause(); final Isolate isolate = await _flutter.waitForPause();
expect(isolate.pauseEvent.kind, equals(EventKind.kPauseBreakpoint)); expect(isolate.pauseEvent.kind, equals(EventKind.kPauseBreakpoint));
...@@ -160,7 +161,6 @@ void main() { ...@@ -160,7 +161,6 @@ void main() {
await reloadFuture; // this is the one where it times out because you're in the debugger await reloadFuture; // this is the one where it times out because you're in the debugger
expect(reloaded, isTrue); expect(reloaded, isTrue);
await _flutter.hotReload(); // now we're already paused await _flutter.hotReload(); // now we're already paused
expect(sawTick3.isCompleted, isFalse);
await sawDebuggerPausedMessage2.future; // so we just get told that nothing is going to happen await sawDebuggerPausedMessage2.future; // so we just get told that nothing is going to happen
await _flutter.resume(); await _flutter.resume();
await subscription.cancel(); await subscription.cancel();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment