diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index 1c3f716df32b37..092606621eed0a 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -2207,6 +2207,13 @@ fn test_permissions_net_listen_allow_localhost() { assert!(!err.contains(util::PERMISSION_DENIED_PATTERN)); } +fn inspect_flag_with_unique_port(flag_prefix: &str) -> String { + use std::sync::atomic::{AtomicU16, Ordering}; + static PORT: AtomicU16 = AtomicU16::new(9229); + let port = PORT.fetch_add(1, Ordering::Relaxed); + format!("{}=127.0.0.1:{}", flag_prefix, port) +} + fn extract_ws_url_from_stderr( stderr_lines: &mut impl std::iter::Iterator, ) -> url::Url { @@ -2224,9 +2231,7 @@ async fn inspector_connect() { let script = util::tests_path().join("inspector1.js"); let mut child = util::deno_cmd() .arg("run") - // Warning: each inspector test should be on its own port to avoid - // conflicting with another inspector test. - .arg("--inspect=127.0.0.1:9228") + .arg(inspect_flag_with_unique_port("--inspect")) .arg(script) .stderr(std::process::Stdio::piped()) .spawn() @@ -2258,9 +2263,7 @@ async fn inspector_break_on_first_line() { let script = util::tests_path().join("inspector2.js"); let mut child = util::deno_cmd() .arg("run") - // Warning: each inspector test should be on its own port to avoid - // conflicting with another inspector test. - .arg("--inspect-brk=127.0.0.1:9229") + .arg(inspect_flag_with_unique_port("--inspect-brk")) .arg(script) .stdout(std::process::Stdio::piped()) .stderr(std::process::Stdio::piped()) @@ -2327,9 +2330,7 @@ async fn inspector_pause() { let script = util::tests_path().join("inspector1.js"); let mut child = util::deno_cmd() .arg("run") - // Warning: each inspector test should be on its own port to avoid - // conflicting with another inspector test. - .arg("--inspect=127.0.0.1:9230") + .arg(inspect_flag_with_unique_port("--inspect")) .arg(script) .stderr(std::process::Stdio::piped()) .spawn() @@ -2386,9 +2387,11 @@ async fn inspector_pause() { #[tokio::test] async fn inspector_port_collision() { let script = util::tests_path().join("inspector1.js"); + let inspect_flag = inspect_flag_with_unique_port("--inspect"); + let mut child1 = util::deno_cmd() .arg("run") - .arg("--inspect=127.0.0.1:9231") + .arg(&inspect_flag) .arg(script.clone()) .stderr(std::process::Stdio::piped()) .spawn() @@ -2402,7 +2405,7 @@ async fn inspector_port_collision() { let mut child2 = util::deno_cmd() .arg("run") - .arg("--inspect=127.0.0.1:9231") + .arg(&inspect_flag) .arg(script) .stderr(std::process::Stdio::piped()) .spawn() @@ -2428,9 +2431,7 @@ async fn inspector_does_not_hang() { let script = util::tests_path().join("inspector3.js"); let mut child = util::deno_cmd() .arg("run") - // Warning: each inspector test should be on its own port to avoid - // conflicting with another inspector test. - .arg("--inspect-brk=127.0.0.1:9232") + .arg(inspect_flag_with_unique_port("--inspect-brk")) .env("NO_COLOR", "1") .arg(script) .stdout(std::process::Stdio::piped()) @@ -2515,9 +2516,7 @@ async fn inspector_without_brk_runs_code() { let script = util::tests_path().join("inspector4.js"); let mut child = util::deno_cmd() .arg("run") - // Warning: each inspector test should be on its own port to avoid - // conflicting with another inspector test. - .arg("--inspect=127.0.0.1:9233") + .arg(inspect_flag_with_unique_port("--inspect")) .arg(script) .stdout(std::process::Stdio::piped()) .stderr(std::process::Stdio::piped()) @@ -2545,9 +2544,7 @@ async fn inspector_without_brk_runs_code() { async fn inspector_runtime_evaluate_does_not_crash() { let mut child = util::deno_cmd() .arg("repl") - // Warning: each inspector test should be on its own port to avoid - // conflicting with another inspector test. - .arg("--inspect=127.0.0.1:9234") + .arg(inspect_flag_with_unique_port("--inspect")) .stdin(std::process::Stdio::piped()) .stdout(std::process::Stdio::piped()) .stderr(std::process::Stdio::piped())