use run_script;
use run_script::ScriptOptions;
#[test]
fn spawn_macro_no_args_no_options_valid() {
let child = run_script::spawn_script!(
r#"
echo "Test"
exit 0
"#
)
.unwrap();
let output = child.wait_with_output().unwrap();
assert!(output.status.success());
}
#[test]
fn spawn_macro_no_args_no_options_error_output() {
let child = run_script::spawn_script!(
r#"
echo "Test"
exit 123
"#
)
.unwrap();
let output = child.wait_with_output().unwrap();
assert_eq!(output.status.code().unwrap(), 123);
}
#[test]
fn spawn_macro_no_args_with_options() {
let options = ScriptOptions::new();
let child = run_script::spawn_script!(
r#"
echo "Test"
exit 0
"#,
options
)
.unwrap();
let output = child.wait_with_output().unwrap();
assert!(output.status.success());
assert!(output.stdout.len() > 0);
}
#[test]
fn spawn_macro_with_args_with_options() {
let options = ScriptOptions::new();
let script = if cfg!(windows) {
r#"
echo arg1: %1
echo arg2: %2
exit 0
"#
} else {
r#"
echo arg1: $1
echo arg2: $2
exit 0
"#
};
let child = run_script::spawn_script!(
&script,
&vec!["ARG1".to_string(), "ARG2".to_string()],
options
)
.unwrap();
let output = child.wait_with_output().unwrap();
assert!(output.status.success());
assert!(output.stdout.len() > 0);
assert_eq!(output.stderr.len(), 0);
}