diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-09-04 22:33:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-04 22:33:06 -0400 |
commit | 08a6af398fd92517193e20117f9971c272b1bb5f (patch) | |
tree | 825f8499992bb7a6c227485165b06811d5e46359 /cli | |
parent | b0a671df8e2796a30fea4fab06018abee738c8ac (diff) |
fix(cli): allow using file resource synchronously while being used async (#15747)
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/integration/run_tests.rs | 5 | ||||
-rw-r--r-- | cli/tests/testdata/run/stdout_write_sync_async.out | 200 | ||||
-rw-r--r-- | cli/tests/testdata/run/stdout_write_sync_async.ts | 14 |
3 files changed, 219 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 20661f27f..118623760 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -18,6 +18,11 @@ itest!(stdin_read_all { input: Some("01234567890123456789012345678901234567890123456789"), }); +itest!(stdout_write_sync_async { + args: "run --quiet run/stdout_write_sync_async.ts", + output: "run/stdout_write_sync_async.out", +}); + itest!(_001_hello { args: "run --reload 001_hello.js", output: "001_hello.js.out", diff --git a/cli/tests/testdata/run/stdout_write_sync_async.out b/cli/tests/testdata/run/stdout_write_sync_async.out new file mode 100644 index 000000000..91ebda1ca --- /dev/null +++ b/cli/tests/testdata/run/stdout_write_sync_async.out @@ -0,0 +1,200 @@ +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello +Hello diff --git a/cli/tests/testdata/run/stdout_write_sync_async.ts b/cli/tests/testdata/run/stdout_write_sync_async.ts new file mode 100644 index 000000000..648999d8a --- /dev/null +++ b/cli/tests/testdata/run/stdout_write_sync_async.ts @@ -0,0 +1,14 @@ +const encoder = new TextEncoder(); +const pending = []; + +for (let i = 0; i < 100; i++) { + // some code that will cause stdout to be written + // synchronously while the async write might be occurring + console.log("Hello"); + pending.push(Deno.stdout.write(encoder.encode("Hello\n"))); + if (i % 10) { + await new Promise((resolve) => setTimeout(resolve, 0)); + } +} + +await Promise.all(pending); |