use super::{omit_panic_payload, run};
use std::process::{Command, ExitCode, Output};
fn synthetic_panic() -> anyhow::Result<i32> {
panic!("SYNTHETIC_PRIVATE_PAYLOAD_7f1c");
}
fn ordinary_failure() -> anyhow::Result<i32> {
return Err(anyhow::anyhow!("ordinary fixture failure"));
}
fn ordinary_success() -> anyhow::Result<i32> {
return Ok(1);
}
#[test]
fn isolated_boundary_probe() {
let Ok(mode) = std::env::var("FORBIDDEN_STRINGS_BOUNDARY_TEST") else { return; };
if mode == "protected" {
std::panic::set_hook(Box::new(omit_panic_payload));
assert_eq!(run(synthetic_panic), ExitCode::from(2));
} else if mode == "default" {
assert_eq!(run(synthetic_panic), ExitCode::from(2));
} else if mode == "ordinary" {
std::panic::set_hook(Box::new(omit_panic_payload));
assert_eq!(run(ordinary_failure), ExitCode::from(2));
assert_eq!(run(ordinary_success), ExitCode::from(1));
} else {
panic!("unknown fixture mode");
}
}
fn probe(mode: &str) -> Output {
return Command::new(std::env::current_exe().expect("test executable"))
.args(["--exact", "process_boundary::tests::isolated_boundary_probe", "--nocapture"])
.env("FORBIDDEN_STRINGS_BOUNDARY_TEST", mode)
.output()
.expect("isolated boundary probe");
}
#[test]
fn process_owner_redacts_payloads_without_turning_panics_into_success() {
let default: Output = probe("default");
assert!(default.status.success());
assert!(String::from_utf8_lossy(&default.stdout).contains("1 passed"));
assert!(String::from_utf8_lossy(&default.stderr).contains("SYNTHETIC_PRIVATE_PAYLOAD_7f1c"));
let protected: Output = probe("protected");
assert!(protected.status.success());
assert!(String::from_utf8_lossy(&protected.stdout).contains("1 passed"));
let stderr: String = String::from_utf8_lossy(&protected.stderr).into_owned();
assert!(!stderr.contains("SYNTHETIC_PRIVATE_PAYLOAD_7f1c"));
assert!(stderr.contains("scanner operation panicked; no complete scan result is available."));
let ordinary: Output = probe("ordinary");
assert!(ordinary.status.success());
assert!(String::from_utf8_lossy(&ordinary.stderr).contains("forbidden-strings: ordinary fixture failure"));
}