From a1b4aa2ae60d215e38c6871fae690e34964a27d7 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 26 Apr 2022 14:46:49 -0400 Subject: fix(test): capture inherited stdout and stderr for subprocesses in test output (#14395) --- cli/ops/testing.rs | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'cli/ops/testing.rs') diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs index 3a57d307b..008e4d113 100644 --- a/cli/ops/testing.rs +++ b/cli/ops/testing.rs @@ -79,12 +79,8 @@ pub fn create_stdout_stderr_pipes( let (stdout_reader, stdout_writer) = os_pipe::pipe().unwrap(); let (stderr_reader, stderr_writer) = os_pipe::pipe().unwrap(); - start_output_redirect_thread(stdout_reader, sender.clone(), |bytes| { - TestOutput::Stdout(bytes) - }); - start_output_redirect_thread(stderr_reader, sender, |bytes| { - TestOutput::Stderr(bytes) - }); + start_output_redirect_thread(stdout_reader, sender.clone()); + start_output_redirect_thread(stderr_reader, sender); (stdout_writer, stderr_writer) } @@ -92,7 +88,6 @@ pub fn create_stdout_stderr_pipes( fn start_output_redirect_thread( mut pipe_reader: os_pipe::PipeReader, sender: UnboundedSender, - map_test_output: impl Fn(Vec) -> TestOutput + Send + 'static, ) { tokio::task::spawn_blocking(move || loop { let mut buffer = [0; 512]; @@ -101,7 +96,9 @@ fn start_output_redirect_thread( Ok(size) => size, }; if sender - .send(TestEvent::Output(map_test_output(buffer[0..size].to_vec()))) + .send(TestEvent::Output(TestOutput::Bytes( + buffer[0..size].to_vec(), + ))) .is_err() { break; @@ -170,14 +167,10 @@ fn op_dispatch_test_event( pub fn op_print( state: &mut OpState, msg: String, - is_err: bool, + _is_err: bool, ) -> Result<(), AnyError> { let sender = state.borrow::>().clone(); - let msg = if is_err { - TestOutput::PrintStderr(msg) - } else { - TestOutput::PrintStdout(msg) - }; + let msg = TestOutput::String(msg); sender.send(TestEvent::Output(msg)).ok(); Ok(()) } -- cgit v1.2.3