in proxy_agent_shared/src/misc_helpers.rs [373:425]
fn execute_command_test() {
let mut temp_test_path = env::temp_dir();
temp_test_path.push("execute_command_test");
// clean up and ignore the clean up errors
_ = fs::remove_dir_all(&temp_test_path);
super::try_create_folder(&temp_test_path).unwrap();
let program: &str;
let script_content: &str;
let script_file_name: &str;
#[cfg(windows)]
{
program = "powershell.exe";
script_file_name = "test.ps1";
script_content = r#"write-host "this is stdout message"
write-error "This is stderr message"
exit 1
"#;
}
#[cfg(not(windows))]
{
program = "sh";
script_file_name = "test.sh";
script_content = r#"echo "this is stdout message"
>&2 echo "This is stderr message"
exit 1
"#;
}
let script_file_path = temp_test_path.join(script_file_name);
_ = fs::write(&script_file_path, script_content);
let default_error_code = -1;
let output = super::execute_command(
program,
vec![&super::path_to_string(&script_file_path)],
default_error_code,
)
.unwrap();
assert_eq!(1, output.exit_code(), "exit code mismatch");
assert_eq!(
"this is stdout message",
output.stdout().trim(),
"stdout message mismatch"
);
assert!(
output.stderr().contains("This is stderr message"),
"stderr message mismatch"
);
_ = fs::remove_dir_all(&temp_test_path);
}