summaryrefslogtreecommitdiff
path: root/cli/lsp/testing
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/testing')
-rw-r--r--cli/lsp/testing/execution.rs31
1 files changed, 21 insertions, 10 deletions
diff --git a/cli/lsp/testing/execution.rs b/cli/lsp/testing/execution.rs
index dcf980fd6..bc780a475 100644
--- a/cli/lsp/testing/execution.rs
+++ b/cli/lsp/testing/execution.rs
@@ -14,6 +14,7 @@ use crate::lsp::client::TestingNotification;
use crate::lsp::config;
use crate::lsp::logging::lsp_log;
use crate::ops;
+use crate::ops::testing::create_stdout_stderr_pipes;
use crate::proc_state;
use crate::tools::test;
@@ -183,11 +184,17 @@ async fn test_specifier(
options: Option<Value>,
) -> Result<(), AnyError> {
if !token.is_cancelled() {
+ let (stdout_writer, stderr_writer) =
+ create_stdout_stderr_pipes(channel.clone());
let mut worker = create_main_worker(
&ps,
specifier.clone(),
permissions,
- vec![ops::testing::init(channel.clone())],
+ vec![ops::testing::init(
+ channel.clone(),
+ stdout_writer,
+ stderr_writer,
+ )],
);
worker
@@ -752,16 +759,20 @@ impl test::TestReporter for LspTestReporter {
.get(origin)
.and_then(|v| v.last().map(|td| td.into()))
});
- match output {
- test::TestOutput::Console(value) => {
- self.progress(lsp_custom::TestRunProgressMessage::Output {
- value: value.replace('\n', "\r\n"),
- test,
- // TODO(@kitsonk) test output should include a location
- location: None,
- })
+ let value = match output {
+ test::TestOutput::PrintStdout(value)
+ | test::TestOutput::PrintStderr(value) => value.replace('\n', "\r\n"),
+ test::TestOutput::Stdout(bytes) | test::TestOutput::Stderr(bytes) => {
+ String::from_utf8_lossy(bytes).replace('\n', "\r\n")
}
- }
+ };
+
+ self.progress(lsp_custom::TestRunProgressMessage::Output {
+ value,
+ test,
+ // TODO(@kitsonk) test output should include a location
+ location: None,
+ })
}
fn report_result(