diff --git a/packages/flutter_tools/test/general.shard/fake_process_manager_test.dart b/packages/flutter_tools/test/general.shard/fake_process_manager_test.dart index bfa6478613c..1130758c9ba 100644 --- a/packages/flutter_tools/test/general.shard/fake_process_manager_test.dart +++ b/packages/flutter_tools/test/general.shard/fake_process_manager_test.dart @@ -174,6 +174,13 @@ void main() { expect(stderr, 'stderr'.codeUnits); expect(stdout, 'stdout'.codeUnits); }); + + testWithoutContext('stdin should be flushable (all data written is consumed)', () async { + final FakeProcess process = FakeProcess(); + process.stdin.write('hello'); + // If nothing is listening to the stdin stream, this test will never complete. + await process.stdin.flush(); + }); }); group(FakeProcessManager, () { diff --git a/packages/flutter_tools/test/src/fake_process_manager.dart b/packages/flutter_tools/test/src/fake_process_manager.dart index c3869f3b751..7308c683b35 100644 --- a/packages/flutter_tools/test/src/fake_process_manager.dart +++ b/packages/flutter_tools/test/src/fake_process_manager.dart @@ -160,8 +160,13 @@ class FakeProcess implements io.Process { } return exitCode; }), - _stderr = stderr, - stdin = stdin ?? IOSink(StreamController>().sink), + _stderr = stderr, + stdin = stdin ?? + IOSink( + StreamController>() + ..stream.listen((_) {}) + ..sink, + ), _stdout = stdout, _completer = completer {