Adds a bit more clarifying documentation to the implementation of the
outputFollowsExit case, and adds tests that verify the behaviour of
stderr, stdout of processes launched via FakeProcessManager.
Specifically:
* Verifies that stderr, stdout are not emitted immediately after process
exit if outputFollowsExit is true. They must be emitted at least one
turn through the event loop later.
* Verifies that ProcessResult.stderr, stdout have the type documented
according to the encoding passted to Process.run/runSync:
* List<int> if null is passed as the encoding.
* String (in the default system encoding) if no encoding is specified.
* String (in the specified encoding) if an encoding is specified.
This is additional testing relating to refactoring landed in:
https://github.com/flutter/flutter/pull/103947
Issue: https://github.com/flutter/flutter/issues/102451
Manual engine roll to work around https://github.com/flutter/flutter/issues/104387
d882b2d123 Revert "Use CIPD to download prebuilt Dart SDKs (#33345)" (#33558)
4bff087248 Roll Skia from d3cbea4114aa to 86323276b2fc (4 revisions) (#33556)
80b183eab9 [Windows] Add textScaleFactor support (#33316)
9388aa1ee1 Roll Fuchsia Mac SDK from SmBoqSpQQ... to 1URI3xQBh... (#33554)
98be801b52 Roll Fuchsia Linux SDK from t9KwJZBWT... to KG9Y2q6J-... (#33553)
0c591bf62f Roll Skia from fb7f03aeac6e to d3cbea4114aa (1 revision) (#33550)
945cb2758b reduce the number of dependencies declared by flutter_frontend_server (#33520)
76137e82db Roll Fuchsia Mac SDK from yKCDVbBgS... to SmBoqSpQQ... (#33542)
dc49d18290 Roll Fuchsia Linux SDK from 3mdV9nX-U... to t9KwJZBWT... (#33541)
6a4c45aafa Roll Dart SDK from d3e96bbc3d87 to 7fa990079a0a (1 revision) (#33540)
5a3a0c1d35 Roll Skia from ade84dfd2ba5 to fb7f03aeac6e (1 revision) (#33539)
4db98a0795 Roll Fuchsia Mac SDK from 1QcM2qaSN... to yKCDVbBgS... (#33538)
f13d03c31a Roll Dart SDK from 708801716094 to d3e96bbc3d87 (1 revision) (#33537)
2d3affded7 Roll Fuchsia Linux SDK from asLtG1Pbw... to 3mdV9nX-U... (#33536)
dfa4724053 Roll Dart SDK from 90d5fdb9368b to 708801716094 (1 revision) (#33534)
`VisualStudio` calls `vswhere.exe` to find Visual Studio installations and determine if they satisfy Flutter's requirements. Previously, `VisualStudio` stored the JSON output from `vswhere.exe` as `Map`s, resulting in duplicated logic to read the JSON output (once to validate values, second to expose values). Also, `VisualStudio` stored two copies of the JSON output (the latest valid installation as well as the latest VS installation).
This change simplifies `VisualStudio` by introducing a new `VswhereDetails`. This type contains the logic to read `vswhere.exe`'s JSON output, and, understand whether an installation is usable by Flutter. In the future, this `VswhereDetails` type will be used to make Flutter doctor resilient to bad UTF-8 output from `vswhere.exe`.
Part of https://github.com/flutter/flutter/issues/102451.