run_make_support::macros

Macro impl_common_helpers

Source
macro_rules! impl_common_helpers {
    ($wrapper: ident) => { ... };
}
Expand description

Implement common helpers for command wrappers. This assumes that the command wrapper is a struct containing a cmd: Command field. The provided helpers are:

  1. Generic argument acceptors: arg and args (delegated to Command). These are intended to be fallback argument acceptors, when specific helpers don’t make sense. Prefer to add new specific helper methods over relying on these generic argument providers.
  2. Environment manipulation methods: env, env_remove and env_clear: these delegate to methods of the same name on Command.
  3. Output and execution: run and run_fail are provided. These are higher-level convenience methods which wait for the command to finish running and assert that the command successfully ran or failed as expected. They return CompletedProcess, which can be used to assert the stdout/stderr/exit code of the executed process.

Example usage:

struct CommandWrapper { cmd: Command } // <- required `cmd` field

crate::macros::impl_common_helpers!(CommandWrapper);

impl CommandWrapper {
    // ... additional specific helper methods
}