Watch
0
0
Fork
You've already forked hyperhive
0

write the review-classifier fake agent scripts from a child process

This commit is contained in:
atlas 2026-10-28 11:29:35 +01:00 • committed by mara
commit 41f832458e

View file

@ -0,0 +1,25 @@
//! Fake agent scripts for the tests.
use std::path::Path;
/// Write the script `body` to `path` as an executable, from a child process
/// rather than from this one: a write fd on it held here could be inherited
/// by a child another test thread forks, and exec'ing a file some process
/// still holds open for writing fails with `ETXTBSY`.
///
/// # Panics
///
/// If `/bin/sh` cannot run or the write fails.
pub fn write_executable(path: &Path, body: &str) {
let status = std::process::Command::new("/bin/sh")
.args([
"-c",
r#"printf '%s' "$1" > "$2" && chmod 755 "$2""#,
"sh",
body,
])
.arg(path)
.status()
.expect("run /bin/sh");
assert!(status.success(), "writing {} failed", path.display());
}