diff options
| author | kennytm <kennytm@gmail.com> | 2017-11-04 13:49:32 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-11-04 13:49:32 +0800 |
| commit | 7a766a4a4150ace21c46afcc06df2b508fa06008 (patch) | |
| tree | 495dcae6fdb3578a472caaecda1087c400980600 | |
| parent | ff00a5f8fb5695f305850deaa907f861d8fcf1f0 (diff) | |
| parent | d6dfec124f5c64204a727ef8d702a3598bc9b81b (diff) | |
| download | rust-7a766a4a4150ace21c46afcc06df2b508fa06008.tar.gz rust-7a766a4a4150ace21c46afcc06df2b508fa06008.zip | |
Rollup merge of #45722 - mikhail-m1:improve-mir-opt-error-output, r=alexcrichton
improve compiletest output for errors from mir-opt tests improvement: 1. Report filename against general cannot open error 2. Report current MIR block
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index f8628158aff..42e52ceea69 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -2286,6 +2286,10 @@ actual:\n\ output_file.push(test_name); debug!("comparing the contests of: {:?}", output_file); debug!("with: {:?}", expected_content); + if !output_file.exists() { + panic!("Output file `{}` from test does not exist", + output_file.into_os_string().to_string_lossy()); + } self.check_mir_test_timestamp(test_name, &output_file); let mut dumped_file = fs::File::open(output_file.clone()).unwrap(); @@ -2334,13 +2338,22 @@ actual:\n\ // We expect each non-empty line to appear consecutively, non-consecutive lines // must be separated by at least one Elision + let mut start_block_line = None; while let Some(dumped_line) = dumped_lines.next() { match expected_lines.next() { - Some(&ExpectedLine::Text(expected_line)) => + Some(&ExpectedLine::Text(expected_line)) => { + let normalized_expected_line = normalize_mir_line(expected_line); + if normalized_expected_line.contains(":{") { + start_block_line = Some(expected_line); + } + if !compare(expected_line, dumped_line) { + error!("{:?}", start_block_line); error(expected_line, - format!("Mismatch in lines\nExpected Line: {:?}", dumped_line)); - }, + format!("Mismatch in lines\nCurrnt block: {}\nExpected Line: {:?}", + start_block_line.unwrap_or("None"), dumped_line)); + } + }, Some(&ExpectedLine::Elision) => { // skip any number of elisions in a row. while let Some(&&ExpectedLine::Elision) = expected_lines.peek() { |
