test: increase test coverage for fs.promises read

PR-URL: https://github.com/nodejs/node/pull/22800
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Yuta Hiroto <hello@hiroppy.me>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
This commit is contained in:
Jennifer Bland 2018-09-10 21:56:27 -04:00 committed by Michael Dawson
parent 0f78b9a26c
commit 27f3d9a649

View File

@ -64,6 +64,13 @@ function verifyStatObject(stat) {
assert.strictEqual(typeof stat.mode, 'number');
}
async function getHandle(dest) {
await copyFile(fixtures.path('baz.js'), dest);
await access(dest, 'r');
return open(dest, 'r+');
}
{
async function doTest() {
tmpdir.refresh();
@ -93,6 +100,19 @@ function verifyStatObject(stat) {
await handle.datasync();
await handle.sync();
// test fs.read promises when length to read is zero bytes
{
const dest = path.resolve(tmpDir, 'test1.js');
const handle = await getHandle(dest);
const buf = Buffer.from('DAWGS WIN');
const bufLen = buf.length;
await handle.write(buf);
const ret = await handle.read(Buffer.alloc(bufLen), 0, 0, 0);
assert.strictEqual(ret.bytesRead, 0);
await unlink(dest);
}
const buf = Buffer.from('hello fsPromises');
const bufLen = buf.length;
await handle.write(buf);
@ -203,13 +223,22 @@ function verifyStatObject(stat) {
await unlink(newLink2);
const newdir = path.resolve(tmpDir, 'dir');
await mkdir(newdir);
stats = await stat(newdir);
// testing readdir lists both files and directories
{
const newDir = path.resolve(tmpDir, 'dir');
const newFile = path.resolve(tmpDir, 'foo.js');
await mkdir(newDir);
await writeFile(newFile, 'DAWGS WIN!', 'utf8');
stats = await stat(newDir);
assert(stats.isDirectory());
const list = await readdir(tmpDir);
assert.deepStrictEqual(list, ['baz2.js', 'dir']);
await rmdir(newdir);
assert.notStrictEqual(list.indexOf('dir'), -1);
assert.notStrictEqual(list.indexOf('foo.js'), -1);
await rmdir(newDir);
await unlink(newFile);
}
// mkdir when options is number.
{