diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-11-16 13:19:31 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-16 13:19:31 +1100 |
commit | 37fbbf8101e7003d6de3d342db38fa9c55ab568f (patch) | |
tree | 858dc6db9d06fe7feb99fba4156ffe9cb2575c63 /test_util/src/lib.rs | |
parent | 1079e59cf4df4a463d6114dc7eefe5809aa880b7 (diff) |
fix(cli): local sources are not cached in memory (#8328)
Fixes #4743
Closes #5253
Fixes #5631
Fixes #6116
Co-authored-by: Bartek IwaĆczuk <biwanczuk@gmail.com>
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
Diffstat (limited to 'test_util/src/lib.rs')
-rw-r--r-- | test_util/src/lib.rs | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index 870fbfb29..ab5e1080c 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -860,18 +860,35 @@ impl CheckOutputIntegrationTest { reader.read_to_string(&mut actual).unwrap(); let status = process.wait().expect("failed to finish process"); - let exit_code = status.code().unwrap(); - actual = strip_ansi_codes(&actual).to_string(); - - if self.exit_code != exit_code { - println!("OUTPUT\n{}\nOUTPUT", actual); - panic!( - "bad exit code, expected: {:?}, actual: {:?}", - self.exit_code, exit_code - ); + if let Some(exit_code) = status.code() { + if self.exit_code != exit_code { + println!("OUTPUT\n{}\nOUTPUT", actual); + panic!( + "bad exit code, expected: {:?}, actual: {:?}", + self.exit_code, exit_code + ); + } + } else { + #[cfg(unix)] + { + use std::os::unix::process::ExitStatusExt; + let signal = status.signal().unwrap(); + println!("OUTPUT\n{}\nOUTPUT", actual); + panic!( + "process terminated by signal, expected exit code: {:?}, actual signal: {:?}", + self.exit_code, signal + ); + } + #[cfg(not(unix))] + { + println!("OUTPUT\n{}\nOUTPUT", actual); + panic!("process terminated without status code on non unix platform, expected exit code: {:?}", self.exit_code); + } } + actual = strip_ansi_codes(&actual).to_string(); + let expected = if let Some(s) = self.output_str { s.to_owned() } else { |