Capture errors when running flutter_tools in the entrypoint_dart_registrant devicelab test (#168411)

See https://github.com/flutter/flutter/issues/168405
This commit is contained in:
Jason Simmons 2025-05-06 23:43:07 +00:00 committed by GitHub
parent 7aa6e1b86f
commit dce18b6fd9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -72,8 +72,19 @@ Future<TaskResult> _runWithTempDir(Directory tempDir) async {
completer.complete(line);
}
});
final String entrypoint = await completer.future;
final StreamSubscription<String> stderrSub = process.stderr
.transform<String>(const Utf8Decoder())
.transform<String>(const LineSplitter())
.listen((String line) async {
print(line);
});
final Object result = await Future.any(<Future<Object>>[completer.future, process.exitCode]);
if (result is int) {
throw Exception('flutter run failed, exitCode=$result');
}
final String entrypoint = result as String;
await stdoutSub.cancel();
await stderrSub.cancel();
process.stdin.write('q');
await process.stdin.flush();
process.kill(ProcessSignal.sigint);