diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-09-19 01:29:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-19 01:29:44 +0200 |
| commit | 8c5fc204bdba1ca6ad0f65aa02b7d1eeb88c7dd0 (patch) | |
| tree | ce06d0a41699fc96c2ec1962ba701121f64bae40 | |
| parent | 3ddad3773d016b6561eae37872a8a13b76ec524a (diff) | |
| parent | 10a5b9a0ed6966282f64d2d5cebd1051d1753e6a (diff) | |
Rollup merge of #115943 - ehuss:compiletest-errors, r=compiler-errors
compiletest: Don't swallow some error messages. This updates some error handling in compiletest to display the underlying error rather than discarding it. There have been cases where the lack of error information makes it difficult to understand what went wrong.
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 855df427538..7b42d8e9b58 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -695,7 +695,7 @@ impl<'test> TestCx<'test> { } fn run_command_to_procres(&self, cmd: &mut Command) -> ProcRes { - let output = cmd.output().unwrap_or_else(|_| panic!("failed to exec `{cmd:?}`")); + let output = cmd.output().unwrap_or_else(|e| panic!("failed to exec `{cmd:?}`: {e:?}")); let proc_res = ProcRes { status: output.status, @@ -1216,12 +1216,12 @@ impl<'test> TestCx<'test> { .arg(&exe_file) .arg(&self.config.adb_test_dir) .status() - .unwrap_or_else(|_| panic!("failed to exec `{:?}`", adb_path)); + .unwrap_or_else(|e| panic!("failed to exec `{adb_path:?}`: {e:?}")); Command::new(adb_path) .args(&["forward", "tcp:5039", "tcp:5039"]) .status() - .unwrap_or_else(|_| panic!("failed to exec `{:?}`", adb_path)); + .unwrap_or_else(|e| panic!("failed to exec `{adb_path:?}`: {e:?}")); let adb_arg = format!( "export LD_LIBRARY_PATH={}; \ @@ -1238,7 +1238,7 @@ impl<'test> TestCx<'test> { .stdout(Stdio::piped()) .stderr(Stdio::inherit()) .spawn() - .unwrap_or_else(|_| panic!("failed to exec `{:?}`", adb_path)); + .unwrap_or_else(|e| panic!("failed to exec `{adb_path:?}`: {e:?}")); // Wait for the gdbserver to print out "Listening on port ..." // at which point we know that it's started and then we can @@ -1263,7 +1263,7 @@ impl<'test> TestCx<'test> { let Output { status, stdout, stderr } = Command::new(&gdb_path) .args(debugger_opts) .output() - .unwrap_or_else(|_| panic!("failed to exec `{:?}`", gdb_path)); + .unwrap_or_else(|e| panic!("failed to exec `{gdb_path:?}`: {e:?}")); let cmdline = { let mut gdb = Command::new(&format!("{}-gdb", self.config.target)); gdb.args(debugger_opts); @@ -2277,7 +2277,7 @@ impl<'test> TestCx<'test> { add_dylib_path(&mut command, iter::once(lib_path).chain(aux_path)); let mut child = disable_error_reporting(|| command.spawn()) - .unwrap_or_else(|_| panic!("failed to exec `{:?}`", &command)); + .unwrap_or_else(|e| panic!("failed to exec `{command:?}`: {e:?}")); if let Some(input) = input { child.stdin.as_mut().unwrap().write_all(input.as_bytes()).unwrap(); } @@ -3847,8 +3847,8 @@ impl<'test> TestCx<'test> { .open(coverage_file_path.as_path()) .expect("could not create or open file"); - if writeln!(file, "{}", self.testpaths.file.display()).is_err() { - panic!("couldn't write to {}", coverage_file_path.display()); + if let Err(e) = writeln!(file, "{}", self.testpaths.file.display()) { + panic!("couldn't write to {}: {e:?}", coverage_file_path.display()); } } } else if self.props.run_rustfix { |
