Rollup merge of #38289 - bluss:mir-verbose-test-fail, r=michaelwoerister
A more verbose matching failure for mir tests This makes it easier to work with mir test failures during development. - Show which expected line was not found - Show full expected output - Show full actual output
This commit is contained in:
commit
dfa9948d76
1 changed files with 19 additions and 5 deletions
|
|
@ -2294,7 +2294,18 @@ actual:\n\
|
|||
};
|
||||
}
|
||||
if !found {
|
||||
panic!("ran out of mir dump output to match against");
|
||||
let normalize_all = dumped_string.lines()
|
||||
.map(nocomment_mir_line)
|
||||
.filter(|l| !l.is_empty())
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n");
|
||||
panic!("ran out of mir dump output to match against.\n\
|
||||
Did not find expected line: {:?}\n\
|
||||
Expected:\n{}\n\
|
||||
Actual:\n{}",
|
||||
expected_line,
|
||||
expected_content.join("\n"),
|
||||
normalize_all);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2439,11 +2450,14 @@ enum TargetLocation {
|
|||
}
|
||||
|
||||
fn normalize_mir_line(line: &str) -> String {
|
||||
let no_comments = if let Some(idx) = line.find("//") {
|
||||
nocomment_mir_line(line).replace(char::is_whitespace, "")
|
||||
}
|
||||
|
||||
fn nocomment_mir_line(line: &str) -> &str {
|
||||
if let Some(idx) = line.find("//") {
|
||||
let (l, _) = line.split_at(idx);
|
||||
l
|
||||
l.trim_right()
|
||||
} else {
|
||||
line
|
||||
};
|
||||
no_comments.replace(char::is_whitespace, "")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue