diff options
author | Satya Rohith <me@satyarohith.com> | 2021-04-08 20:06:52 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-08 16:36:52 +0200 |
commit | 543080de559d997d5ff911e8a8a1625d51f2e0bd (patch) | |
tree | de2389edd09925dd55911d2eb90ca2fdae24cc0e /cli/tests/unit/read_file_test.ts | |
parent | c867c1aa476b3f00933be08cbc5f528973e37857 (diff) |
fix(runtime/readFile*): close resources on error during read (#10059)
This commit ensures readFile, readFileSync, readTextFile,
and readTextFileSync does not leak resources on error.
Diffstat (limited to 'cli/tests/unit/read_file_test.ts')
-rw-r--r-- | cli/tests/unit/read_file_test.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/cli/tests/unit/read_file_test.ts b/cli/tests/unit/read_file_test.ts index 5594eb4ae..5f8ee2c11 100644 --- a/cli/tests/unit/read_file_test.ts +++ b/cli/tests/unit/read_file_test.ts @@ -77,3 +77,21 @@ unitTest({ perms: { read: true } }, function readFileSyncLoop(): void { Deno.readFileSync("cli/tests/fixture.json"); } }); + +unitTest( + { perms: { read: true } }, + async function readFileDoesNotLeakResources(): Promise<void> { + const resourcesBefore = Deno.resources(); + await assertThrowsAsync(async () => await Deno.readFile("cli")); + assertEquals(resourcesBefore, Deno.resources()); + }, +); + +unitTest( + { perms: { read: true } }, + function readFileSyncDoesNotLeakResources(): void { + const resourcesBefore = Deno.resources(); + assertThrows(() => Deno.readFileSync("cli")); + assertEquals(resourcesBefore, Deno.resources()); + }, +); |