lifecycle: leak the stop-failed warning kind once per agent
Closes #6096
This commit is contained in:
parent
18e4f195e5
commit
32af7e0639
1 changed files with 39 additions and 6 deletions
|
|
@ -422,3 +422,27 @@ fn a_build_without_a_log_row_has_an_empty_build_id() {
|
|||
assert_eq!(field(&logged[0].1, "build_id"), Some(""));
|
||||
assert_eq!(field(&logged[0].1, "agent"), Some("alice"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stop_kind_is_leaked_once_per_agent() {
|
||||
let first = stop_kind("stopkind-a");
|
||||
assert_eq!(first, "agent_stop_failed_stopkind-a");
|
||||
assert!(std::ptr::eq(first, stop_kind("stopkind-a")));
|
||||
assert!(!std::ptr::eq(first, stop_kind("stopkind-b")));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stop_kind_survives_a_clean_stop_between_failures() {
|
||||
let failed = |guards: &mut std::collections::HashMap<_, _>| {
|
||||
let kind = stop_kind("stopkind-c");
|
||||
guards.insert(
|
||||
"stopkind-c".to_owned(),
|
||||
crate::warnings::set_warning(kind, "crit", "stop failed"),
|
||||
);
|
||||
kind
|
||||
};
|
||||
let mut guards = std::collections::HashMap::new();
|
||||
let first = failed(&mut guards);
|
||||
guards.remove("stopkind-c");
|
||||
assert!(std::ptr::eq(first, failed(&mut guards)));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue