Add support for multiple full paths on macos (#2276)

We cannot look up multiple basename commands in the system path and the
current `macOsExecutable` configuration may have existing uses in
`dart_test.yaml` files so it isn't safe to require full paths. Add a
separate `macOsAbsolutePaths` configuration to enable internal
definitions that check multiple full paths and execute the first one
that exists.

Add the basename `firefox` as a fallback. Adding that command to the
path is one workaround for users with firefox installed in an unexpected
location. This is also the only approach that is compatible with mac on
GitHub actions using the `setup-firefox` action.

There is no support here for `dart_test.yaml`. Users that are
configuring an executable for macOS will continue to have support for
only a single value, even if they are specifying an absolute path.

Tests remain skipped because our mono repo setup does not have a way to
include the `setup-firefox` action.

---------

Co-authored-by: Jacob MacDonald <jakemac@google.com>
3 files changed
tree: f702f4a2eaa8af9ce22b6232da8607eba3ad99bd
  1. .github/
  2. integration_tests/
  3. pkgs/
  4. tool/
  5. .gitattributes
  6. .gitignore
  7. analysis_options.yaml
  8. CONTRIBUTING.md
  9. mono_repo.yaml
  10. pubspec.yaml
  11. README.md
README.md

Dart CI OpenSSF Scorecard

What's here?

Welcome! package:test is the standard testing library for Dart and Flutter. If you have questions about Dart testing, please see the docs for package:test. package:test_api and package:test_core are implementation details and generally not user-facing.

package:checks is a relatively new library for expressing test expectations. It's a more modern version of package:matcher and features a literate API.

Packages

PackageDescriptionVersion
checksA framework for checking values against expectations and building custom expectations.pub package
testA full featured library for writing and running Dart tests across platforms.pub package
test_apipub package
test_corepub package