tree 581cb22cd5cfecdb470cf489655ce2dd6613c34e
parent 731b93d52e792e782e47d3bdcd237cd2138e56ad
author stuartmorgan <stuartmorgan@google.com> 1625873893 -0700
committer GitHub <noreply@github.com> 1625873893 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJg6N3lCRBK7hj4Ov3rIwAAwlsIACL/kY7PFB6vmPnH8jRUqi3k
 DUrA90H9EuE7xOxXlhhxSZ2Nbv5Xdjyk7vLmzOuXeJDiBMuojwyTTms5yqYuMaxv
 ZyuJoN2Oh1zmuDWfLYyoa74qNCEqi8ULFNNR+Si7nhnKaGgZ0dTbCt2XtJSlraZ1
 UJ1YC1bIBeqTxkPjJDjANwUxSPtUJ28kVGVTOiL9YOfUxxqlQQ+Pt3eRnOyYw+fC
 YplQsgd2qEZFZ05Tf5uF1tJdiZFySSASNMw81BT4jbZIcz57GEuHmI57xfYQ7qrM
 JFUf3JExvijo+231+nUl5oXzJyPKg5YbTTtCgoEyOexd8C6LtnOlxK3Hxgzk3L8=
 =lDYU
 -----END PGP SIGNATURE-----
 

[flutter_plugin_tools] Make unit tests pass on Windows (#4149)

The purpose of this PR is to make running all unit tests on Windows pass (vs failing a large portion of the tests as currently happens). This does not mean that the commands actually work when run on Windows, or that Windows support is tested, only that it's possible to actually run the tests themselves. This is prep for actually supporting parts of the tool on Windows in future PRs.

Major changes:
- Make the tests significantly more hermetic:
  - Make almost all tools take a `Platform` constructor argument that can be used to inject a mock platform to control what OS the command acts like it is running on under test.
  - Add a path `Context` object to the base command, whose style matches the `Platform`, and use that almost everywhere instead of the top-level `path` functions.
  - In cases where Posix behavior is always required (such as parsing `git` output), explicitly use the `posix` context object for `path` functions.
- Start laying the groundwork for actual Windows support:
  - Replace all uses of `flutter` as a command with a getter that returns `flutter` or `flutter.bat` as appropriate.
  - For user messages that include relative paths, use a helper that always uses Posix-style relative paths for consistent output.

This bumps the version since quite a few changes have built up, and having a cut point before starting to make more changes to the commands to support Windows seems like a good idea.

Part of https://github.com/flutter/flutter/issues/86113