use super::*;
#[test]
fn test9035_the_command_survives_being_wrapped() {
let argv: Vec<String> = ["wsb", "run", "--client", "unifloom", "--verbose"]
.iter()
.map(|s| s.to_string())
.collect();
let Some(wrapped) = wrap(&argv, "wsb-op-1234", &[]) else {
return;
};
let separator = wrapped
.iter()
.position(|arg| arg == "--")
.expect("a wrapped command is separated from the wrapper");
assert_eq!(&wrapped[separator + 1..], argv.as_slice());
assert_eq!(wrapped[0], "systemd-run");
assert!(wrapped.contains(&"--scope".to_string()));
assert!(wrapped.contains(&"--collect".to_string()));
assert!(wrapped.contains(&"--quiet".to_string()));
assert!(wrapped.contains(&"--unit=wsb-op-1234".to_string()));
}
#[test]
fn test9036_the_daemon_asks_to_be_spared() {
assert!(
DAEMON_PROPERTIES
.iter()
.any(|p| p.contains("ManagedOOMPreference=avoid")),
"the daemon must ask systemd's reaper to prefer anything else"
);
}
#[test]
fn test9037_unit_names_are_made_safe_rather_than_trusted() {
assert_eq!(unit_name("wsb-op-abc123"), "wsb-op-abc123");
assert_eq!(unit_name("cartridge build/2"), "cartridge-build-2");
assert_eq!(unit_name("--weird--"), "weird");
assert_eq!(unit_name(""), "wsb");
assert_eq!(unit_name("///"), "wsb");
for name in ["wsb-op-abc", "cartridge build/2", "a b c", "", "///"] {
let made = unit_name(name);
assert!(
made.chars().all(|c| c.is_ascii_alphanumeric() || c == '-' || c == '_'),
"{made} is not a unit name systemd would take"
);
}
}
#[test]
fn test9038_nothing_is_not_wrapped() {
assert!(wrap(&[], "wsb-op", &[]).is_none());
}