From 8be46a0c4a0663c756addb2bc7f01897a05f42a4 Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Tue, 18 Jun 2019 11:24:19 -0700 Subject: [PATCH] Kill compiler process when test does not exit cleanly (#34616) --- packages/flutter_tools/lib/src/compile.dart | 1 + packages/flutter_tools/lib/src/test/test_compiler.dart | 1 + packages/flutter_tools/test/test_compiler_test.dart | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index cf25dce41ed..89a03afd514 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -738,6 +738,7 @@ class ResidentCompiler { if (_server == null) { return 0; } + printTrace('killing pid ${_server.pid}'); _server.kill(); return _server.exitCode; } diff --git a/packages/flutter_tools/lib/src/test/test_compiler.dart b/packages/flutter_tools/lib/src/test/test_compiler.dart index 48b3af0e87d..747378edf74 100644 --- a/packages/flutter_tools/lib/src/test/test_compiler.dart +++ b/packages/flutter_tools/lib/src/test/test_compiler.dart @@ -85,6 +85,7 @@ class TestCompiler { Future dispose() async { await compilerController.close(); + await _shutdown(); } /// Create the resident compiler used to compile the test. diff --git a/packages/flutter_tools/test/test_compiler_test.dart b/packages/flutter_tools/test/test_compiler_test.dart index 04f96651600..0e6259b3c16 100644 --- a/packages/flutter_tools/test/test_compiler_test.dart +++ b/packages/flutter_tools/test/test_compiler_test.dart @@ -59,6 +59,15 @@ void main() { expect(await testCompiler.compile('test/foo.dart'), null); expect(fs.file('test/foo.dart.dill').existsSync(), false); + verify(residentCompiler.shutdown()).called(1); + })); + + test('Disposing test compiler shuts down backing compiler', () => testbed.run(() async { + testCompiler.compiler = residentCompiler; + expect(testCompiler.compilerController.isClosed, false); + await testCompiler.dispose(); + expect(testCompiler.compilerController.isClosed, true); + verify(residentCompiler.shutdown()).called(1); })); }); }