summaryrefslogtreecommitdiff
path: root/cli/tests/unit/truncate_test.ts
diff options
context:
space:
mode:
authorCasper Beyer <caspervonb@pm.me>2020-06-20 21:46:10 +0800
committerGitHub <noreply@github.com>2020-06-20 09:46:10 -0400
commit86f92e04c79be81f98e5899638cb6fdb29a4fa64 (patch)
treeb106b4551d9ec2e842beefdb4d0f921e27b03aa1 /cli/tests/unit/truncate_test.ts
parentbdf2d26ba1879b2ebeffd4b3a52e23e9254d4f05 (diff)
feat(unstable): add Deno.ftruncate and ftruncateSync (#6243)
Diffstat (limited to 'cli/tests/unit/truncate_test.ts')
-rw-r--r--cli/tests/unit/truncate_test.ts44
1 files changed, 44 insertions, 0 deletions
diff --git a/cli/tests/unit/truncate_test.ts b/cli/tests/unit/truncate_test.ts
index 014815702..82f8f03eb 100644
--- a/cli/tests/unit/truncate_test.ts
+++ b/cli/tests/unit/truncate_test.ts
@@ -3,6 +3,50 @@ import { unitTest, assertEquals, assert } from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
+ function ftruncateSyncSuccess(): void {
+ const filename = Deno.makeTempDirSync() + "/test_ftruncateSync.txt";
+ const file = Deno.openSync(filename, {
+ create: true,
+ read: true,
+ write: true,
+ });
+
+ Deno.ftruncateSync(file.rid, 20);
+ assertEquals(Deno.readFileSync(filename).byteLength, 20);
+ Deno.ftruncateSync(file.rid, 5);
+ assertEquals(Deno.readFileSync(filename).byteLength, 5);
+ Deno.ftruncateSync(file.rid, -5);
+ assertEquals(Deno.readFileSync(filename).byteLength, 0);
+
+ Deno.close(file.rid);
+ Deno.removeSync(filename);
+ }
+);
+
+unitTest(
+ { perms: { read: true, write: true } },
+ async function ftruncateSuccess(): Promise<void> {
+ const filename = Deno.makeTempDirSync() + "/test_ftruncate.txt";
+ const file = await Deno.open(filename, {
+ create: true,
+ read: true,
+ write: true,
+ });
+
+ await Deno.ftruncate(file.rid, 20);
+ assertEquals((await Deno.readFile(filename)).byteLength, 20);
+ await Deno.ftruncate(file.rid, 5);
+ assertEquals((await Deno.readFile(filename)).byteLength, 5);
+ await Deno.ftruncate(file.rid, -5);
+ assertEquals((await Deno.readFile(filename)).byteLength, 0);
+
+ Deno.close(file.rid);
+ await Deno.remove(filename);
+ }
+);
+
+unitTest(
+ { perms: { read: true, write: true } },
function truncateSyncSuccess(): void {
const filename = Deno.makeTempDirSync() + "/test_truncateSync.txt";
Deno.writeFileSync(filename, new Uint8Array(5));