From 23119fc1d411de1f48c6542aed30d0876caf2aea Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Fri, 17 Nov 2023 16:19:00 -0700 Subject: [PATCH] test(cli): http test reliability fixes (#21246) --- cli/tests/unit/http_test.ts | 4 ++-- cli/tests/unit/serve_test.ts | 39 +++++++++++++++++++++++------------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts index 8c7bf99741..ac3b3d66f2 100644 --- a/cli/tests/unit/http_test.ts +++ b/cli/tests/unit/http_test.ts @@ -1136,7 +1136,7 @@ Deno.test( { permissions: { net: true } }, async function droppedConnSenderNoPanic() { async function server() { - const listener = Deno.listen({ port: 8000 }); + const listener = Deno.listen({ port: listenPort }); const conn = await listener.accept(); const http = Deno.serveHttp(conn); const evt = await http.nextRequest(); @@ -1151,7 +1151,7 @@ Deno.test( async function client() { try { - const resp = await fetch("http://127.0.0.1:8000/"); + const resp = await fetch(`http://127.0.0.1:${listenPort}/`); await resp.body?.cancel(); } catch { // Ignore error diff --git a/cli/tests/unit/serve_test.ts b/cli/tests/unit/serve_test.ts index 59334039ad..b1fbb2e896 100644 --- a/cli/tests/unit/serve_test.ts +++ b/cli/tests/unit/serve_test.ts @@ -3640,22 +3640,22 @@ Deno.test( async function httpServeCurlH2C() { const ac = new AbortController(); const server = Deno.serve( - { signal: ac.signal }, + { port: servePort, signal: ac.signal }, () => new Response("hello world!"), ); assertEquals( "hello world!", - await curlRequest(["http://localhost:8000/path"]), + await curlRequest([`http://localhost:${servePort}/path`]), ); assertEquals( "hello world!", - await curlRequest(["http://localhost:8000/path", "--http2"]), + await curlRequest([`http://localhost:${servePort}/path`, "--http2"]), ); assertEquals( "hello world!", await curlRequest([ - "http://localhost:8000/path", + `http://localhost:${servePort}/path`, "--http2", "--http2-prior-knowledge", ]), @@ -3712,6 +3712,7 @@ Deno.test( const server = Deno.serve( { signal: ac.signal, + port: servePort, cert: Deno.readTextFileSync("cli/tests/testdata/tls/localhost.crt"), key: Deno.readTextFileSync("cli/tests/testdata/tls/localhost.key"), }, @@ -3720,16 +3721,20 @@ Deno.test( assertEquals( "hello world!", - await curlRequest(["https://localhost:8000/path", "-k"]), - ); - assertEquals( - "hello world!", - await curlRequest(["https://localhost:8000/path", "-k", "--http2"]), + await curlRequest([`https://localhost:${servePort}/path`, "-k"]), ); assertEquals( "hello world!", await curlRequest([ - "https://localhost:8000/path", + `https://localhost:${servePort}/path`, + "-k", + "--http2", + ]), + ); + assertEquals( + "hello world!", + await curlRequest([ + `https://localhost:${servePort}/path`, "-k", "--http2", "--http2-prior-knowledge", @@ -3742,12 +3747,15 @@ Deno.test( ); async function curlRequest(args: string[]) { - const { success, stdout } = await new Deno.Command("curl", { + const { success, stdout, stderr } = await new Deno.Command("curl", { args, stdout: "piped", - stderr: "null", + stderr: "piped", }).output(); - assert(success); + assert( + success, + `Failed to cURL ${args}: stdout\n\n${stdout}\n\nstderr:\n\n${stderr}`, + ); return new TextDecoder().decode(stdout); } @@ -3757,7 +3765,10 @@ async function curlRequestWithStdErr(args: string[]) { stdout: "piped", stderr: "piped", }).output(); - assert(success); + assert( + success, + `Failed to cURL ${args}: stdout\n\n${stdout}\n\nstderr:\n\n${stderr}`, + ); return [new TextDecoder().decode(stdout), new TextDecoder().decode(stderr)]; }