From 363543fc19ee8ba2bb159397f8f816897bbb2397 Mon Sep 17 00:00:00 2001 From: Danny Tuppeny Date: Wed, 22 Aug 2018 17:13:34 +0100 Subject: [PATCH] Don't try to stop the same app twice in flutter_attach test (#20905) This test is sometimes flaky (#20822) because the two processes try to stop the same app. This fix changes to just gracefully terminate the attach process without explicitly trying to stop and then uses the original spawning process to stop the app. I can't repro the flake locally to be certain, but I've verified only one stop command is sent now so it *should* be good. --- .../flutter_tools/test/integration/flutter_attach_test.dart | 5 ++++- packages/flutter_tools/test/integration/test_driver.dart | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/test/integration/flutter_attach_test.dart b/packages/flutter_tools/test/integration/flutter_attach_test.dart index 28d208d144..ecee379ee7 100644 --- a/packages/flutter_tools/test/integration/flutter_attach_test.dart +++ b/packages/flutter_tools/test/integration/flutter_attach_test.dart @@ -24,8 +24,11 @@ void main() { }); tearDown(() async { + // We can't call stop() on both of these because they'll both try to stop the + // same app. Just quit the attach process and then send a stop to the original + // process. + await _flutterAttach.quit(); await _flutterRun.stop(); - await _flutterAttach.stop(); tryToDelete(tempDir); }); diff --git a/packages/flutter_tools/test/integration/test_driver.dart b/packages/flutter_tools/test/integration/test_driver.dart index 8eb1f068c9..e67fe89229 100644 --- a/packages/flutter_tools/test/integration/test_driver.dart +++ b/packages/flutter_tools/test/integration/test_driver.dart @@ -179,6 +179,8 @@ class FlutterTestDriver { return _proc.exitCode.timeout(quitTimeout, onTimeout: _killGracefully); } + Future quit() => _killGracefully(); + Future _killGracefully() async { if (_procPid == null) return -1;