1
Fork 0

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.
This commit is contained in:
Matthias Krüger 2023-09-19 01:29:44 +02:00 committed by GitHub
commit 8c5fc204bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -695,7 +695,7 @@ impl<'test> TestCx<'test> {
} }
fn run_command_to_procres(&self, cmd: &mut Command) -> ProcRes { 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 { let proc_res = ProcRes {
status: output.status, status: output.status,
@ -1216,12 +1216,12 @@ impl<'test> TestCx<'test> {
.arg(&exe_file) .arg(&exe_file)
.arg(&self.config.adb_test_dir) .arg(&self.config.adb_test_dir)
.status() .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) Command::new(adb_path)
.args(&["forward", "tcp:5039", "tcp:5039"]) .args(&["forward", "tcp:5039", "tcp:5039"])
.status() .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!( let adb_arg = format!(
"export LD_LIBRARY_PATH={}; \ "export LD_LIBRARY_PATH={}; \
@ -1238,7 +1238,7 @@ impl<'test> TestCx<'test> {
.stdout(Stdio::piped()) .stdout(Stdio::piped())
.stderr(Stdio::inherit()) .stderr(Stdio::inherit())
.spawn() .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 ..." // Wait for the gdbserver to print out "Listening on port ..."
// at which point we know that it's started and then we can // 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) let Output { status, stdout, stderr } = Command::new(&gdb_path)
.args(debugger_opts) .args(debugger_opts)
.output() .output()
.unwrap_or_else(|_| panic!("failed to exec `{:?}`", gdb_path)); .unwrap_or_else(|e| panic!("failed to exec `{gdb_path:?}`: {e:?}"));
let cmdline = { let cmdline = {
let mut gdb = Command::new(&format!("{}-gdb", self.config.target)); let mut gdb = Command::new(&format!("{}-gdb", self.config.target));
gdb.args(debugger_opts); gdb.args(debugger_opts);
@ -2277,7 +2277,7 @@ impl<'test> TestCx<'test> {
add_dylib_path(&mut command, iter::once(lib_path).chain(aux_path)); add_dylib_path(&mut command, iter::once(lib_path).chain(aux_path));
let mut child = disable_error_reporting(|| command.spawn()) 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 { if let Some(input) = input {
child.stdin.as_mut().unwrap().write_all(input.as_bytes()).unwrap(); 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()) .open(coverage_file_path.as_path())
.expect("could not create or open file"); .expect("could not create or open file");
if writeln!(file, "{}", self.testpaths.file.display()).is_err() { if let Err(e) = writeln!(file, "{}", self.testpaths.file.display()) {
panic!("couldn't write to {}", coverage_file_path.display()); panic!("couldn't write to {}: {e:?}", coverage_file_path.display());
} }
} }
} else if self.props.run_rustfix { } else if self.props.run_rustfix {