std.test.Process
type pub ProcessA child process to run as part of a unit test.
Instance methods
argument
Show source codeHide source code
fn pub mut argument(value: String) {
@cmd.arguments.push(value)
}fn pub mut argument(value: String)Adds an argument to the process.
spawn
Show source codeHide source code
fn pub move spawn -> Output {
let child = match @cmd.spawn {
case Ok(child) -> child
case Error(err) -> panic("failed to spawn '${@cmd.program}': ${err}")
}
let _ = (child.stdin := Option.None).get.write(@stdin)
let stdout = ByteArray.new
let stderr = ByteArray.new
let _ = child.stdout.as_mut.get.read_all(stdout)
let _ = child.stderr.as_mut.get.read_all(stderr)
let status = match child.wait {
case Ok(val) -> val
case Error(err) -> panic('failed to wait for the child process: ${err}')
}
Output(
status: status,
stdout: stdout.into_string,
stderr: stderr.into_string,
)
}fn pub move spawn -> OutputSpawns the process, waits for it to finish, and returns an Output
containing the results.
stdin
Show source codeHide source code
fn pub mut stdin(bytes: String) {
@stdin = bytes
}fn pub mut stdin(bytes: String)Sets the data to write to STDIN.
variable
Show source codeHide source code
fn pub mut variable(name: String, value: String) {
@cmd.variables.set(name, value)
}fn pub mut variable(name: String, value: String)Adds or updates an environment variable to the process.