deno/cli/tests/unit/sync_test.ts
2020-07-14 15:24:17 -04:00

75 lines
2.1 KiB
TypeScript

// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { unitTest, assertEquals } from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
function fdatasyncSyncSuccess(): void {
const filename = Deno.makeTempDirSync() + "/test_fdatasyncSync.txt";
const file = Deno.openSync(filename, {
read: true,
write: true,
create: true,
});
const data = new Uint8Array(64);
Deno.writeSync(file.rid, data);
Deno.fdatasyncSync(file.rid);
assertEquals(Deno.readFileSync(filename), data);
Deno.close(file.rid);
Deno.removeSync(filename);
},
);
unitTest(
{ perms: { read: true, write: true } },
async function fdatasyncSuccess(): Promise<void> {
const filename = (await Deno.makeTempDir()) + "/test_fdatasync.txt";
const file = await Deno.open(filename, {
read: true,
write: true,
create: true,
});
const data = new Uint8Array(64);
await Deno.write(file.rid, data);
await Deno.fdatasync(file.rid);
assertEquals(await Deno.readFile(filename), data);
Deno.close(file.rid);
await Deno.remove(filename);
},
);
unitTest(
{ perms: { read: true, write: true } },
function fsyncSyncSuccess(): void {
const filename = Deno.makeTempDirSync() + "/test_fsyncSync.txt";
const file = Deno.openSync(filename, {
read: true,
write: true,
create: true,
});
const size = 64;
Deno.ftruncateSync(file.rid, size);
Deno.fsyncSync(file.rid);
assertEquals(Deno.statSync(filename).size, size);
Deno.close(file.rid);
Deno.removeSync(filename);
},
);
unitTest(
{ perms: { read: true, write: true } },
async function fsyncSuccess(): Promise<void> {
const filename = (await Deno.makeTempDir()) + "/test_fsync.txt";
const file = await Deno.open(filename, {
read: true,
write: true,
create: true,
});
const size = 64;
await Deno.ftruncate(file.rid, size);
await Deno.fsync(file.rid);
assertEquals((await Deno.stat(filename)).size, size);
Deno.close(file.rid);
await Deno.remove(filename);
},
);