diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-04-17 10:31:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-17 10:31:30 +0200 |
| commit | c89bc54d4f0174bd7c86693dc3b0500d11d756d2 (patch) | |
| tree | 0130a011c0194dfbcd49b4078e6b6a7be1f138e7 /src/tools/compiletest | |
| parent | 258e3b3a75a0da006cd492307fc46ef605e774ad (diff) | |
| parent | 5c6a43a58bfb31bcabfd52e2c378cdaa48a68290 (diff) | |
| download | rust-c89bc54d4f0174bd7c86693dc3b0500d11d756d2.tar.gz rust-c89bc54d4f0174bd7c86693dc3b0500d11d756d2.zip | |
Rollup merge of #59128 - oli-obk:colorful_json, r=mark-i-m,eddyb
Emit ansi color codes in the `rendered` field of json diagnostics cc @ljedrz Implemented for https://github.com/rust-lang/rust/pull/56595#issuecomment-447645115 (x.py clippy)
Diffstat (limited to 'src/tools/compiletest')
| -rw-r--r-- | src/tools/compiletest/src/json.rs | 7 | ||||
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 46 |
2 files changed, 8 insertions, 45 deletions
diff --git a/src/tools/compiletest/src/json.rs b/src/tools/compiletest/src/json.rs index ba919f4c411..a7615f5f423 100644 --- a/src/tools/compiletest/src/json.rs +++ b/src/tools/compiletest/src/json.rs @@ -62,7 +62,7 @@ struct DiagnosticCode { explanation: Option<String>, } -pub fn extract_rendered(output: &str, proc_res: &ProcRes) -> String { +pub fn extract_rendered(output: &str) -> String { output .lines() .filter_map(|line| { @@ -70,11 +70,12 @@ pub fn extract_rendered(output: &str, proc_res: &ProcRes) -> String { match serde_json::from_str::<Diagnostic>(line) { Ok(diagnostic) => diagnostic.rendered, Err(error) => { - proc_res.fatal(Some(&format!( + print!( "failed to decode compiler output as json: \ `{}`\nline: {}\noutput: {}", error, line, output - ))); + ); + panic!() } } } else { diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 369bb3fefe5..6df56168973 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -2090,50 +2090,10 @@ impl<'test> TestCx<'test> { } fn fatal_proc_rec(&self, err: &str, proc_res: &ProcRes) -> ! { - self.try_print_open_handles(); self.error(err); proc_res.fatal(None); } - // This function is a poor man's attempt to debug rust-lang/rust#38620, if - // that's closed then this should be deleted - // - // This is a very "opportunistic" debugging attempt, so we ignore all - // errors here. - fn try_print_open_handles(&self) { - if !cfg!(windows) { - return; - } - if self.config.mode != Incremental { - return; - } - - let filename = match self.testpaths.file.file_stem() { - Some(path) => path, - None => return, - }; - - let mut cmd = Command::new("handle.exe"); - cmd.arg("-a").arg("-u"); - cmd.arg(filename); - cmd.arg("-nobanner"); - cmd.stdout(Stdio::piped()); - cmd.stderr(Stdio::piped()); - let output = match cmd.spawn().and_then(read2_abbreviated) { - Ok(output) => output, - Err(_) => return, - }; - println!("---------------------------------------------------"); - println!("ran extra command to debug rust-lang/rust#38620: "); - println!("{:?}", cmd); - println!("result: {}", output.status); - println!("--- stdout ----------------------------------------"); - println!("{}", String::from_utf8_lossy(&output.stdout)); - println!("--- stderr ----------------------------------------"); - println!("{}", String::from_utf8_lossy(&output.stderr)); - println!("---------------------------------------------------"); - } - // codegen tests (using FileCheck) fn compile_test_and_save_ir(&self) -> ProcRes { @@ -2844,7 +2804,7 @@ impl<'test> TestCx<'test> { let stderr = if explicit { proc_res.stderr.clone() } else { - json::extract_rendered(&proc_res.stderr, &proc_res) + json::extract_rendered(&proc_res.stderr) }; let normalized_stderr = self.normalize_output(&stderr, &self.props.normalize_stderr); @@ -3464,7 +3424,9 @@ impl ProcRes { {}\n\ ------------------------------------------\n\ \n", - self.status, self.cmdline, self.stdout, self.stderr + self.status, self.cmdline, + json::extract_rendered(&self.stdout), + json::extract_rendered(&self.stderr), ); // Use resume_unwind instead of panic!() to prevent a panic message + backtrace from // compiletest, which is unnecessary noise. |
