diff options
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/integration/run_tests.rs | 14 | ||||
-rw-r--r-- | cli/tests/testdata/045_proxy_test.ts | 44 | ||||
-rw-r--r-- | cli/tests/testdata/089_run_allow_list.ts | 11 | ||||
-rw-r--r-- | cli/tests/testdata/lock_write_fetch.ts | 24 | ||||
-rw-r--r-- | cli/tests/testdata/no_prompt.ts | 5 | ||||
-rw-r--r-- | cli/tests/testdata/permission_test.ts | 9 | ||||
-rw-r--r-- | cli/tests/unit/chown_test.ts | 20 | ||||
-rw-r--r-- | cli/tests/unit/flock_test.ts | 33 | ||||
-rw-r--r-- | cli/tests/unit/http_test.ts | 148 | ||||
-rw-r--r-- | cli/tests/unit/os_test.ts | 20 | ||||
-rw-r--r-- | cli/tests/unit/remove_test.ts | 15 | ||||
-rw-r--r-- | cli/tests/unit/signal_test.ts | 9 | ||||
-rw-r--r-- | cli/tests/unit/test_util.ts | 10 | ||||
-rw-r--r-- | cli/tests/unit/tls_test.ts | 16 | ||||
-rw-r--r-- | cli/tests/unit/tty_color_test.ts | 8 |
15 files changed, 170 insertions, 216 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index c1ed59f14..a9e7d93cc 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -182,8 +182,9 @@ itest!(_044_bad_resource { exit_code: 1, }); +// TODO(bartlomieju): remove --unstable once Deno.spawn is stabilized itest!(_045_proxy { - args: "run -L debug --allow-net --allow-env --allow-run --allow-read --reload --quiet 045_proxy_test.ts", + args: "run -L debug --unstable --allow-net --allow-env --allow-run --allow-read --reload --quiet 045_proxy_test.ts", output: "045_proxy_test.ts.out", http_server: true, }); @@ -509,8 +510,9 @@ itest!(_088_dynamic_import_already_evaluating { output: "088_dynamic_import_already_evaluating.ts.out", }); +// TODO(bartlomieju): remove --unstable once Deno.spawn is stabilized itest!(_089_run_allow_list { - args: "run --allow-run=curl 089_run_allow_list.ts", + args: "run --unstable --allow-run=curl 089_run_allow_list.ts", output: "089_run_allow_list.ts.out", }); @@ -588,9 +590,10 @@ itest!(lock_write_requires_lock { exit_code: 1, }); +// TODO(bartlomieju): remove --unstable once Deno.spawn is stabilized itest!(lock_write_fetch { args: - "run --quiet --allow-read --allow-write --allow-env --allow-run lock_write_fetch.ts", + "run --quiet --allow-read --allow-write --allow-env --allow-run --unstable lock_write_fetch.ts", output: "lock_write_fetch.ts.out", http_server: true, exit_code: 0, @@ -1861,12 +1864,14 @@ fn dont_cache_on_check_fail() { mod permissions { use test_util as util; + // TODO(bartlomieju): remove --unstable once Deno.spawn is stabilized #[test] fn with_allow() { for permission in &util::PERMISSION_VARIANTS { let status = util::deno_cmd() .current_dir(&util::testdata_path()) .arg("run") + .arg("--unstable") .arg(format!("--allow-{0}", permission)) .arg("permission_test.ts") .arg(format!("{0}Required", permission)) @@ -1878,12 +1883,13 @@ mod permissions { } } + // TODO(bartlomieju): remove --unstable once Deno.spawn is stabilized #[test] fn without_allow() { for permission in &util::PERMISSION_VARIANTS { let (_, err) = util::run_and_collect_output( false, - &format!("run permission_test.ts {0}Required", permission), + &format!("run --unstable permission_test.ts {0}Required", permission), None, None, false, diff --git a/cli/tests/testdata/045_proxy_test.ts b/cli/tests/testdata/045_proxy_test.ts index d6edf2be9..620e23e14 100644 --- a/cli/tests/testdata/045_proxy_test.ts +++ b/cli/tests/testdata/045_proxy_test.ts @@ -31,93 +31,76 @@ async function handler(req: Request): Promise<Response> { } async function testFetch() { - const c = Deno.run({ - cmd: [ - Deno.execPath(), + const { status } = await Deno.spawn(Deno.execPath(), { + args: [ "run", "--quiet", "--reload", "--allow-net", "045_proxy_client.ts", ], - stdout: "piped", env: { HTTP_PROXY: `http://${addr}`, }, }); - const status = await c.status(); assertEquals(status.code, 0); - c.close(); } async function testModuleDownload() { - const http = Deno.run({ - cmd: [ - Deno.execPath(), + const { status } = await Deno.spawn(Deno.execPath(), { + args: [ "cache", "--reload", "--quiet", "http://localhost:4545/045_mod.ts", ], - stdout: "piped", env: { HTTP_PROXY: `http://${addr}`, }, }); - const httpStatus = await http.status(); - assertEquals(httpStatus.code, 0); - http.close(); + assertEquals(status.code, 0); } async function testFetchNoProxy() { - const c = Deno.run({ - cmd: [ - Deno.execPath(), + const { status } = await Deno.spawn(Deno.execPath(), { + args: [ "run", "--quiet", "--reload", "--allow-net", "045_proxy_client.ts", ], - stdout: "piped", env: { HTTP_PROXY: "http://not.exising.proxy.server", NO_PROXY: "localhost", }, }); - const status = await c.status(); assertEquals(status.code, 0); - c.close(); } async function testModuleDownloadNoProxy() { - const http = Deno.run({ - cmd: [ - Deno.execPath(), + const { status } = await Deno.spawn(Deno.execPath(), { + args: [ "cache", "--reload", "--quiet", "http://localhost:4545/045_mod.ts", ], - stdout: "piped", env: { HTTP_PROXY: "http://not.exising.proxy.server", NO_PROXY: "localhost", }, }); - const httpStatus = await http.status(); - assertEquals(httpStatus.code, 0); - http.close(); + assertEquals(status.code, 0); } async function testFetchProgrammaticProxy() { - const c = Deno.run({ - cmd: [ - Deno.execPath(), + const { status } = await Deno.spawn(Deno.execPath(), { + args: [ "run", "--quiet", "--reload", @@ -125,11 +108,8 @@ async function testFetchProgrammaticProxy() { "--unstable", "045_programmatic_proxy_client.ts", ], - stdout: "piped", }); - const status = await c.status(); assertEquals(status.code, 0); - c.close(); } proxyServer(); diff --git a/cli/tests/testdata/089_run_allow_list.ts b/cli/tests/testdata/089_run_allow_list.ts index defb3196f..0eb79dcc2 100644 --- a/cli/tests/testdata/089_run_allow_list.ts +++ b/cli/tests/testdata/089_run_allow_list.ts @@ -1,13 +1,12 @@ try { - Deno.run({ - cmd: ["ls"], - }); + await Deno.spawn("ls"); } catch (e) { console.log(e); } -const proc = Deno.run({ - cmd: ["curl", "--help"], +const { status } = await Deno.spawn("curl", { + args: ["--help"], stdout: "null", + stderr: "inherit", }); -console.log((await proc.status()).success); +console.log(status.success); diff --git a/cli/tests/testdata/lock_write_fetch.ts b/cli/tests/testdata/lock_write_fetch.ts index b6ecf4747..7be6af84a 100644 --- a/cli/tests/testdata/lock_write_fetch.ts +++ b/cli/tests/testdata/lock_write_fetch.ts @@ -4,11 +4,10 @@ try { // pass } -const fetchProc = Deno.run({ +const fetchProc = await Deno.spawn(Deno.execPath(), { stdout: "null", stderr: "null", - cmd: [ - Deno.execPath(), + args: [ "cache", "--reload", "--lock=lock_write_fetch.json", @@ -18,14 +17,12 @@ const fetchProc = Deno.run({ ], }); -const fetchCode = (await fetchProc.status()).code; -console.log(`fetch code: ${fetchCode}`); +console.log(`fetch code: ${fetchProc.status.code}`); -const fetchCheckProc = Deno.run({ +const fetchCheckProc = await Deno.spawn(Deno.execPath(), { stdout: "null", stderr: "null", - cmd: [ - Deno.execPath(), + args: [ "cache", "--lock=lock_write_fetch.json", "--cert=tls/RootCA.pem", @@ -33,16 +30,14 @@ const fetchCheckProc = Deno.run({ ], }); -const fetchCheckProcCode = (await fetchCheckProc.status()).code; -console.log(`fetch check code: ${fetchCheckProcCode}`); +console.log(`fetch check code: ${fetchCheckProc.status.code}`); Deno.removeSync("./lock_write_fetch.json"); -const runProc = Deno.run({ +const runProc = await Deno.spawn(Deno.execPath(), { stdout: "null", stderr: "null", - cmd: [ - Deno.execPath(), + args: [ "run", "--lock=lock_write_fetch.json", "--lock-write", @@ -52,7 +47,6 @@ const runProc = Deno.run({ ], }); -const runCode = (await runProc.status()).code; -console.log(`run code: ${runCode}`); +console.log(`run code: ${runProc.status.code}`); Deno.removeSync("./lock_write_fetch.json"); diff --git a/cli/tests/testdata/no_prompt.ts b/cli/tests/testdata/no_prompt.ts index f3d503f63..7f9750995 100644 --- a/cli/tests/testdata/no_prompt.ts +++ b/cli/tests/testdata/no_prompt.ts @@ -1,7 +1,10 @@ new Worker("data:,setTimeout(() => Deno.exit(2), 200)", { type: "module" }); try { - await Deno.run({ cmd: ["ps"] }); + await Deno.spawn("ps", { + stdout: "inherit", + stderr: "inherit", + }); } catch { Deno.exit(0); } diff --git a/cli/tests/testdata/permission_test.ts b/cli/tests/testdata/permission_test.ts index a3a38f2a0..4b186a0a2 100644 --- a/cli/tests/testdata/permission_test.ts +++ b/cli/tests/testdata/permission_test.ts @@ -15,13 +15,10 @@ const test: { [key: string]: (...args: any[]) => void | Promise<void> } = { netRequired() { Deno.listen({ transport: "tcp", port: 4541 }); }, - runRequired() { - const p = Deno.run({ - cmd: Deno.build.os === "windows" - ? ["cmd.exe", "/c", "echo hello"] - : ["printf", "hello"], + async runRequired() { + await Deno.spawn(Deno.build.os === "windows" ? "cmd.exe" : "printf", { + args: Deno.build.os === "windows" ? ["/c", "echo hello"] : ["hello"], }); - p.close(); }, }; diff --git a/cli/tests/unit/chown_test.ts b/cli/tests/unit/chown_test.ts index 7a282d68b..b9d40f525 100644 --- a/cli/tests/unit/chown_test.ts +++ b/cli/tests/unit/chown_test.ts @@ -5,21 +5,17 @@ import { assertEquals, assertRejects, assertThrows } from "./test_util.ts"; async function getUidAndGid(): Promise<{ uid: number; gid: number }> { // get the user ID and group ID of the current process - const uidProc = Deno.run({ - stdout: "piped", - cmd: ["id", "-u"], + const uidProc = await Deno.spawn("id", { + args: ["-u"], }); - const gidProc = Deno.run({ - stdout: "piped", - cmd: ["id", "-g"], + const gidProc = await Deno.spawn("id", { + args: ["-g"], }); - assertEquals((await uidProc.status()).code, 0); - assertEquals((await gidProc.status()).code, 0); - const uid = parseInt(new TextDecoder("utf-8").decode(await uidProc.output())); - uidProc.close(); - const gid = parseInt(new TextDecoder("utf-8").decode(await gidProc.output())); - gidProc.close(); + assertEquals(uidProc.status.code, 0); + assertEquals(gidProc.status.code, 0); + const uid = parseInt(new TextDecoder("utf-8").decode(uidProc.stdout)); + const gid = parseInt(new TextDecoder("utf-8").decode(gidProc.stdout)); return { uid, gid }; } diff --git a/cli/tests/unit/flock_test.ts b/cli/tests/unit/flock_test.ts index 8ebda3f6c..3c73d0481 100644 --- a/cli/tests/unit/flock_test.ts +++ b/cli/tests/unit/flock_test.ts @@ -1,6 +1,5 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. import { assertEquals } from "./test_util.ts"; -import { readAll } from "../../../test_util/std/io/util.ts"; Deno.test( { permissions: { read: true, run: true, hrtime: true } }, @@ -103,8 +102,8 @@ async function checkFirstBlocksSecond(opts: { const secondPsTimes = await secondProcess.getTimes(); return firstPsTimes.exitTime < secondPsTimes.enterTime; } finally { - firstProcess.close(); - secondProcess.close(); + await firstProcess.close(); + await secondProcess.close(); } } @@ -149,14 +148,21 @@ function runFlockTestProcess(opts: { exclusive: boolean; sync: boolean }) { console.log(JSON.stringify({ enterTime, exitTime })); `; - const process = Deno.run({ - cmd: [Deno.execPath(), "eval", "--unstable", scriptText], - stdout: "piped", + const process = Deno.spawnChild(Deno.execPath(), { + args: ["eval", "--unstable", scriptText], stdin: "piped", }); - const waitSignal = () => process.stdout.read(new Uint8Array(1)); - const signal = () => process.stdin.write(new Uint8Array(1)); + const waitSignal = async () => { + const reader = process.stdout.getReader({ mode: "byob" }); + await reader.read(new Uint8Array(1)); + reader.releaseLock(); + }; + const signal = async () => { + const writer = process.stdin.getWriter(); + await writer.write(new Uint8Array(1)); + writer.releaseLock(); + }; return { async waitStartup() { @@ -174,17 +180,16 @@ function runFlockTestProcess(opts: { exclusive: boolean; sync: boolean }) { await waitSignal(); }, getTimes: async () => { - const outputBytes = await readAll(process.stdout); - const text = new TextDecoder().decode(outputBytes); + const { stdout } = await process.output(); + const text = new TextDecoder().decode(stdout); return JSON.parse(text) as { enterTime: number; exitTime: number; }; }, - close: () => { - process.stdout.close(); - process.stdin.close(); - process.close(); + close: async () => { + await process.status; + await process.stdin.close(); }, }; } diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts index 2a4b7df01..779f11e56 100644 --- a/cli/tests/unit/http_test.ts +++ b/cli/tests/unit/http_test.ts @@ -1165,11 +1165,13 @@ Deno.test( async function client() { const url = `http://${hostname}:${port}/`; - const cmd = ["curl", "-X", "DELETE", url]; - const proc = Deno.run({ cmd, stdout: "null", stderr: "null" }); - const status = await proc.status(); + const args = ["-X", "DELETE", url]; + const { status } = await Deno.spawn("curl", { + args, + stdout: "null", + stderr: "null", + }); assert(status.success); - proc.close(); } await Promise.all([server(), client()]); @@ -1277,8 +1279,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1287,13 +1288,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert(output.includes("content-encoding: gzip\r\n")); - proc.close(); } await Promise.all([server(), client()]); @@ -1327,8 +1329,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "--request", "GET", "--url", @@ -1336,10 +1337,10 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const proc = Deno.spawnChild("curl", { args, stderr: "null" }); + const status = await proc.status; assert(status.success); - const stdout = proc.stdout!.readable + const stdout = proc.stdout .pipeThrough(new DecompressionStream("gzip")) .pipeThrough(new TextDecoderStream()); let body = ""; @@ -1347,7 +1348,6 @@ Deno.test({ body += chunk; } assertEquals(JSON.parse(body), data); - proc.close(); } await Promise.all([server(), client()]); @@ -1382,8 +1382,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1392,13 +1391,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()).toLocaleLowerCase(); + const output = decoder.decode(stdout).toLocaleLowerCase(); assert(output.includes("vary: accept-encoding\r\n")); assert(!output.includes("content-encoding: ")); - proc.close(); } await Promise.all([server(), client()]); @@ -1436,8 +1436,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1446,13 +1445,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip;q=0.8, br;q=1.0, *;q=0.1", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert(output.includes("content-encoding: br\r\n")); - proc.close(); } await Promise.all([server(), client()]); @@ -1487,8 +1487,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1497,13 +1496,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding, Accept\r\n")); assert(output.includes("content-encoding: gzip\r\n")); - proc.close(); } await Promise.all([server(), client()]); @@ -1541,7 +1541,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ + const args = [ "curl", "-i", "--request", @@ -1551,16 +1551,17 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert( output.includes("etag: W/33a64df551425fcc55e4d42a148795d9f25f89d4\r\n"), ); assert(output.includes("content-encoding: gzip\r\n")); - proc.close(); } await Promise.all([server(), client()]); @@ -1598,8 +1599,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1608,16 +1608,17 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert( output.includes("etag: W/33a64df551425fcc55e4d42a148795d9f25f89d4\r\n"), ); assert(output.includes("content-encoding: gzip\r\n")); - proc.close(); } await Promise.all([server(), client()]); @@ -1655,8 +1656,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1665,13 +1665,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert(!output.includes("content-encoding: ")); - proc.close(); } await Promise.all([server(), client()]); @@ -1709,8 +1710,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1719,13 +1719,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert(!output.includes("content-encoding: ")); - proc.close(); } await Promise.all([server(), client()]); @@ -1768,7 +1769,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ + const args = [ "curl", "-i", "--request", @@ -1778,13 +1779,14 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert(output.includes("content-encoding: gzip\r\n")); - proc.close(); } await Promise.all([server(), client()]); @@ -1827,8 +1829,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "--request", "GET", "--url", @@ -1836,10 +1837,10 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const proc = Deno.spawnChild("curl", { args, stderr: "null" }); + const status = await proc.status; assert(status.success); - const stdout = proc.stdout.readable + const stdout = proc.stdout .pipeThrough(new DecompressionStream("gzip")) .pipeThrough(new TextDecoderStream()); let body = ""; @@ -1847,7 +1848,6 @@ Deno.test({ body += chunk; } assertEquals(JSON.parse(body), data); - proc.close(); } await Promise.all([server(), client()]); @@ -1892,8 +1892,7 @@ Deno.test({ async function client() { const url = `http://${hostname}:${port}/`; - const cmd = [ - "curl", + const args = [ "-i", "--request", "GET", @@ -1902,16 +1901,17 @@ Deno.test({ "--header", "Accept-Encoding: gzip, deflate, br", ]; - const proc = Deno.run({ cmd, stdout: "piped", stderr: "null" }); - const status = await proc.status(); + const { status, stdout } = await Deno.spawn("curl", { + args, + stderr: "null", + }); assert(status.success); - const output = decoder.decode(await proc.output()); + const output = decoder.decode(stdout); assert(output.includes("vary: Accept-Encoding\r\n")); assert(output.includes("content-encoding: gzip\r\n")); // Ensure the content-length header is updated. assert(!output.includes(`content-length: ${contentLength}\r\n`)); assert(output.includes("content-length: 72\r\n")); - proc.close(); } await Promise.all([server(), client()]); diff --git a/cli/tests/unit/os_test.ts b/cli/tests/unit/os_test.ts index a469c8c9f..6ed1126f1 100644 --- a/cli/tests/unit/os_test.ts +++ b/cli/tests/unit/os_test.ts @@ -74,19 +74,14 @@ Deno.test( console.log( ${JSON.stringify(Object.keys(expectedEnv))}.map(k => Deno.env.get(k)) )`; - const proc = Deno.run({ - cmd: [Deno.execPath(), "eval", src], + const { status, stdout } = await Deno.spawn(Deno.execPath(), { + args: ["eval", src], env: { ...inputEnv, NO_COLOR: "1" }, - stdout: "piped", }); - const status = await proc.status(); assertEquals(status.success, true); const expectedValues = Object.values(expectedEnv); - const actualValues = JSON.parse( - new TextDecoder().decode(await proc.output()), - ); + const actualValues = JSON.parse(new TextDecoder().decode(stdout)); assertEquals(actualValues, expectedValues); - proc.close(); }; assertEquals(Deno.env.get("path"), Deno.env.get("PATH")); @@ -133,16 +128,13 @@ Deno.test( { permissions: { run: true, read: true } }, async function osPpidIsEqualToPidOfParentProcess() { const decoder = new TextDecoder(); - const process = Deno.run({ - cmd: [Deno.execPath(), "eval", "-p", "--unstable", "Deno.ppid"], - stdout: "piped", + const { stdout } = await Deno.spawn(Deno.execPath(), { + args: ["eval", "-p", "--unstable", "Deno.ppid"], env: { NO_COLOR: "true" }, }); - const output = await process.output(); - process.close(); const expected = Deno.pid; - const actual = parseInt(decoder.decode(output)); + const actual = parseInt(decoder.decode(stdout)); assertEquals(actual, expected); }, ); diff --git a/cli/tests/unit/remove_test.ts b/cli/tests/unit/remove_test.ts index 04e50f39d..365cc4e45 100644 --- a/cli/tests/unit/remove_test.ts +++ b/cli/tests/unit/remove_test.ts @@ -262,13 +262,12 @@ if (Deno.build.os === "windows") { Deno.test( { permissions: { run: true, write: true, read: true } }, async function removeFileSymlink() { - const symlink = Deno.run({ - cmd: ["cmd", "/c", "mklink", "file_link", "bar"], + const { status } = await Deno.spawn("cmd", { + args: ["/c", "mklink", "file_link", "bar"], stdout: "null", }); - assert(await symlink.status()); - symlink.close(); + assert(status.success); await Deno.remove("file_link"); await assertRejects(async () => { await Deno.lstat("file_link"); @@ -279,14 +278,12 @@ if (Deno.build.os === "windows") { Deno.test( { permissions: { run: true, write: true, read: true } }, async function removeDirSymlink() { - const symlink = Deno.run({ - cmd: ["cmd", "/c", "mklink", "/d", "dir_link", "bar"], + const { status } = await Deno.spawn("cmd", { + args: ["/c", "mklink", "/d", "dir_link", "bar"], stdout: "null", }); - assert(await symlink.status()); - symlink.close(); - + assert(status.success); await Deno.remove("dir_link"); await assertRejects(async () => { await Deno.lstat("dir_link"); diff --git a/cli/tests/unit/signal_test.ts b/cli/tests/unit/signal_test.ts index 12c5046a5..4ff4d38e1 100644 --- a/cli/tests/unit/signal_test.ts +++ b/cli/tests/unit/signal_test.ts @@ -173,17 +173,14 @@ Deno.test( permissions: { run: true, read: true }, }, async function canExitWhileListeningToSignal() { - const p = Deno.run({ - cmd: [ - Deno.execPath(), + const { status } = await Deno.spawn(Deno.execPath(), { + args: [ "eval", "--unstable", "Deno.addSignalListener('SIGIO', () => {})", ], }); - const res = await p.status(); - assertEquals(res.code, 0); - p.close(); + assertEquals(status.code, 0); }, ); diff --git a/cli/tests/unit/test_util.ts b/cli/tests/unit/test_util.ts index 36ef8c0e7..18965fdab 100644 --- a/cli/tests/unit/test_util.ts +++ b/cli/tests/unit/test_util.ts @@ -31,17 +31,13 @@ export function pathToAbsoluteFileUrl(path: string): URL { const decoder = new TextDecoder(); export async function execCode(code: string): Promise<[number, string]> { - const p = Deno.run({ - cmd: [ - Deno.execPath(), + const { status, stdout } = await Deno.spawn(Deno.execPath(), { + args: [ "eval", "--unstable", "--no-check", code, ], - stdout: "piped", }); - const [status, output] = await Promise.all([p.status(), p.output()]); - p.close(); - return [status.code, decoder.decode(output)]; + return [status.code, decoder.decode(stdout)]; } diff --git a/cli/tests/unit/tls_test.ts b/cli/tests/unit/tls_test.ts index 05eced64e..c9f22b75b 100644 --- a/cli/tests/unit/tls_test.ts +++ b/cli/tests/unit/tls_test.ts @@ -1019,20 +1019,14 @@ function createHttpsListener(port: number): Deno.Listener { } async function curl(url: string): Promise<string> { - const curl = Deno.run({ - cmd: ["curl", "--insecure", url], - stdout: "piped", + const { status, stdout } = await Deno.spawn("curl", { + args: ["--insecure", url], }); - try { - const [status, output] = await Promise.all([curl.status(), curl.output()]); - if (!status.success) { - throw new Error(`curl ${url} failed: ${status.code}`); - } - return new TextDecoder().decode(output); - } finally { - curl.close(); + if (!status.success) { + throw new Error(`curl ${url} failed: ${status.code}`); } + return new TextDecoder().decode(stdout); } Deno.test( diff --git a/cli/tests/unit/tty_color_test.ts b/cli/tests/unit/tty_color_test.ts index c10c9ff1e..feb4dd470 100644 --- a/cli/tests/unit/tty_color_test.ts +++ b/cli/tests/unit/tty_color_test.ts @@ -6,12 +6,10 @@ import { assertEquals } from "./test_util.ts"; Deno.test( { permissions: { run: true, read: true } }, async function noColorIfNotTty() { - const p = Deno.run({ - cmd: [Deno.execPath(), "eval", "console.log(1)"], - stdout: "piped", + const { stdout } = await Deno.spawn(Deno.execPath(), { + args: ["eval", "console.log(1)"], }); - const output = new TextDecoder().decode(await p.output()); + const output = new TextDecoder().decode(stdout); assertEquals(output, "1\n"); - p.close(); }, ); |