summaryrefslogtreecommitdiff
path: root/cli/tests/unit/read_file_test.ts
diff options
context:
space:
mode:
authorSatya Rohith <me@satyarohith.com>2021-04-08 20:06:52 +0530
committerGitHub <noreply@github.com>2021-04-08 16:36:52 +0200
commit543080de559d997d5ff911e8a8a1625d51f2e0bd (patch)
treede2389edd09925dd55911d2eb90ca2fdae24cc0e /cli/tests/unit/read_file_test.ts
parentc867c1aa476b3f00933be08cbc5f528973e37857 (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.ts18
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());
+ },
+);