summaryrefslogtreecommitdiff
path: root/test_util/src/lib.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-11-16 13:19:31 +1100
committerGitHub <noreply@github.com>2020-11-16 13:19:31 +1100
commit37fbbf8101e7003d6de3d342db38fa9c55ab568f (patch)
tree858dc6db9d06fe7feb99fba4156ffe9cb2575c63 /test_util/src/lib.rs
parent1079e59cf4df4a463d6114dc7eefe5809aa880b7 (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.rs35
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 {