From e8afa03f7bcbce6c004b50db0b35e05b11911499 Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Mon, 22 Nov 2021 13:59:12 -0500 Subject: [PATCH] Fix most test output (but not termcolor) --- tests/rojo_test/io_util.rs | 15 ++++++++++++++- tests/tests/build.rs | 9 ++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/tests/rojo_test/io_util.rs b/tests/rojo_test/io_util.rs index 4c33706b..ce940f4a 100644 --- a/tests/rojo_test/io_util.rs +++ b/tests/rojo_test/io_util.rs @@ -1,5 +1,6 @@ use std::{ - fs, io, + fs, + io::{self, Read}, path::{Path, PathBuf}, process::Child, }; @@ -50,5 +51,17 @@ pub struct KillOnDrop(pub Child); impl Drop for KillOnDrop { fn drop(&mut self) { let _ = self.0.kill(); + + if let Some(mut stdout) = self.0.stdout.take() { + let mut output = Vec::new(); + let _ = stdout.read_to_end(&mut output); + print!("{}", String::from_utf8_lossy(&output)); + } + + if let Some(mut stderr) = self.0.stderr.take() { + let mut output = Vec::new(); + let _ = stderr.read_to_end(&mut output); + eprint!("{}", String::from_utf8_lossy(&output)); + } } } diff --git a/tests/tests/build.rs b/tests/tests/build.rs index 33829683..aaf666e6 100644 --- a/tests/tests/build.rs +++ b/tests/tests/build.rs @@ -63,7 +63,7 @@ fn run_build_test(test_name: &str) { let output_dir = tempdir().expect("couldn't create temporary directory"); let output_path = output_dir.path().join(format!("{}.rbxmx", test_name)); - let status = Command::new(ROJO_PATH) + let output = Command::new(ROJO_PATH) .args(&[ "build", input_path.to_str().unwrap(), @@ -72,10 +72,13 @@ fn run_build_test(test_name: &str) { ]) .env("RUST_LOG", "error") .current_dir(working_dir) - .status() + .output() .expect("Couldn't start Rojo"); - assert!(status.success(), "Rojo did not exit successfully"); + print!("{}", String::from_utf8_lossy(&output.stdout)); + eprint!("{}", String::from_utf8_lossy(&output.stderr)); + + assert!(output.status.success(), "Rojo did not exit successfully"); let contents = fs::read_to_string(&output_path).expect("Couldn't read output file");