diff --git a/cli/lsp/testing/execution.rs b/cli/lsp/testing/execution.rs index 3c7921c886..02d0379962 100644 --- a/cli/lsp/testing/execution.rs +++ b/cli/lsp/testing/execution.rs @@ -245,6 +245,13 @@ impl TestRun { unreachable!("Should always be Test subcommand."); }; + // TODO(mmastrac): Temporarily limit concurrency in windows testing to avoid named pipe issue: + // *** Unexpected server pipe failure '"\\\\.\\pipe\\deno_pipe_e30f45c9df61b1e4.1198.222\\0"': 3 + // This is likely because we're hitting some sort of invisible resource limit + // This limit is both in cli/lsp/testing/execution.rs and cli/tools/test/mod.rs + #[cfg(windows)] + let concurrent_jobs = std::cmp::min(concurrent_jobs, 4); + let (test_event_sender_factory, mut receiver) = create_test_event_channel(); let fail_fast_tracker = FailFastTracker::new(fail_fast); diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index 13cf9f7747..4f500df3dc 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -1191,8 +1191,18 @@ async fn test_specifiers( }) }); + // TODO(mmastrac): Temporarily limit concurrency in windows testing to avoid named pipe issue: + // *** Unexpected server pipe failure '"\\\\.\\pipe\\deno_pipe_e30f45c9df61b1e4.1198.222\\0"': 3 + // This is likely because we're hitting some sort of invisible resource limit + // This limit is both in cli/lsp/testing/execution.rs and cli/tools/test/mod.rs + let concurrent = if cfg!(windows) { + std::cmp::min(concurrent_jobs.get(), 4) + } else { + concurrent_jobs.get() + }; + let join_stream = stream::iter(join_handles) - .buffer_unordered(concurrent_jobs.get()) + .buffer_unordered(concurrent) .collect::, tokio::task::JoinError>>>(); let handler = spawn(async move { report_tests(receiver, reporter).await.0 });