in src/lib.rs [340:427]
fn test_merge_results() {
let mut functions1: FunctionMap = FxHashMap::default();
functions1.insert(
"f1".to_string(),
Function {
start: 1,
executed: false,
},
);
functions1.insert(
"f2".to_string(),
Function {
start: 2,
executed: false,
},
);
let mut result = CovResult {
lines: [(1, 21), (2, 7), (7, 0)].iter().cloned().collect(),
branches: [
(1, vec![false, false]),
(2, vec![false, true]),
(4, vec![true]),
]
.iter()
.cloned()
.collect(),
functions: functions1,
};
let mut functions2: FunctionMap = FxHashMap::default();
functions2.insert(
"f1".to_string(),
Function {
start: 1,
executed: false,
},
);
functions2.insert(
"f2".to_string(),
Function {
start: 2,
executed: true,
},
);
let result2 = CovResult {
lines: [(1, 21), (3, 42), (4, 7), (2, 0), (8, 0)]
.iter()
.cloned()
.collect(),
branches: [
(1, vec![false, false]),
(2, vec![false, true]),
(3, vec![true]),
]
.iter()
.cloned()
.collect(),
functions: functions2,
};
merge_results(&mut result, result2);
assert_eq!(
result.lines,
[(1, 42), (2, 7), (3, 42), (4, 7), (7, 0), (8, 0)]
.iter()
.cloned()
.collect()
);
assert_eq!(
result.branches,
[
(1, vec![false, false]),
(2, vec![false, true]),
(3, vec![true]),
(4, vec![true]),
]
.iter()
.cloned()
.collect()
);
assert!(result.functions.contains_key("f1"));
assert!(result.functions.contains_key("f2"));
let mut func = result.functions.get("f1").unwrap();
assert_eq!(func.start, 1);
assert!(!func.executed);
func = result.functions.get("f2").unwrap();
assert_eq!(func.start, 2);
assert!(func.executed);
}