Add support for dynamic command elements. (#2)

This updates the `ProcessManager` API to use one `command`
parameter to process-spawning methods, rather than separate
`executable` and `arguments` parameters. It also changes the
list type from `String` to `dynamic` to allow implementations
to support different list types.

`RecordingProcessManager` and `ReplayProcessManager` build
upon the changes above to support a new type, `CommandElement`.
When used, it allows the caller to sanitize commands in order
to provide deterministic & reproducible command lists.
13 files changed
tree: 3c986e9339645fd68b1e5c9e4bee61bf4508b4c6
  1. dev/
  2. lib/
  3. test/
  4. .analysis_options
  5. .gitignore
  6. .travis.yml
  7. AUTHORS
  8. CHANGELOG.md
  9. CONTRIBUTING.md
  10. LICENSE
  11. pubspec.yaml
  12. README.md
README.md

Process

Build Status - Coverage Status -

A generic process invocation abstraction for Dart.

Like dart:io, package:process supplies a rich, Dart-idiomatic API for spawning OS processes.

Unlike dart:io, package:process:

  • Can be used to implement custom process invocation backends.
  • Comes with a record-replay implementation out-of-the-box, making it super easy to test code that spawns processes in a hermetic way.