Watch
0
0
Fork
You've already forked hyperhive
0

a failed container start shows the unit's own journal lines in the op output

This commit is contained in:
atlas 2026-11-01 16:33:26 +01:00 • committed by mara
commit 9a773349a8

View file

@ -529,9 +529,33 @@ fn a_failed_start_puts_its_error_in_the_op_output() {
.start("updo", "start", "nixos-container start h-updo", None)
.expect("start");
let err = anyhow::anyhow!("nixos-container start h-updo failed (exit status: 1): Job failed");
record_failure(Some(&logs), Some(id), &err);
let journal = Ok("Creating mount point failed: Read-only file system".to_owned());
record_failure(Some(&logs), Some(id), &err, journal);
let full = logs.get_full(id).expect("get").expect("row");
assert!(full.stderr.contains("Job failed"), "{}", full.stderr);
record_failure(Some(&logs), None, &err);
record_failure(None, Some(id), &err);
assert!(
full.stderr.contains("Read-only file system"),
"{}",
full.stderr
);
record_failure(Some(&logs), None, &err, Ok(String::new()));
record_failure(None, Some(id), &err, Ok(String::new()));
}
/// An older hive-priv rejects the op; the start's own error is still recorded.
#[test]
fn an_unknown_journal_op_keeps_the_start_error() {
let dir = tempfile::tempdir().expect("tempdir");
let logs = crate::build_logs::BuildLogs::open(dir.path()).expect("open");
let id = logs
.start("updo", "start", "nixos-container start h-updo", None)
.expect("start");
let err = anyhow::anyhow!("Job failed");
let unknown = Err(anyhow::anyhow!(
"parse request: unknown variant `start_failure_log`"
));
record_failure(Some(&logs), Some(id), &err, unknown);
let full = logs.get_full(id).expect("get").expect("row");
assert!(full.stderr.contains("Job failed"), "{}", full.stderr);
assert!(!full.stderr.contains("unknown variant"), "{}", full.stderr);
}