Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
#[ext(pub)]
impl Vec<String> {
- fn find_conflict(&self) -> Option<&String> {
- self.iter().find(|m| m.starts_with("Conflict!"))
+ fn find_conflicts(&self) -> Vec<String> {
+ self.iter().filter(|m| m.starts_with("Conflict!"))
+ .cloned().collect()
+ }
+
+ fn assert_no_conflicts(&self) {
+ assert_eq!(self.find_conflicts(), vec![] as Vec<String>);
}
}
let mut w = su.w(side)?;
w.synch()?;
let log = w.retrieve_log((&mut |_: &'_ _| false) as LogIgnoreBeforeFn)?;
- assert_eq!(log.find_conflict(), None);
+ log.assert_no_conflicts();
}
{
assert_eq!(n.held, y.held);
for got in &gots {
- let conflict = got.log.find_conflict().is_some();
- assert_eq!(conflict, !got.yes);
+ let conflicts = got.log.find_conflicts();
+ assert_eq!(conflicts.len(),
+ if got.yes { 0 } else { 1},
+ "wrong # conflicts {:?}", &conflicts);
}
let yw = su.w(&y.window)?;