'use strict'; const common = require('../common'); const fixtures = require('../common/fixtures'); const fs = require('fs'); const assert = require('assert'); const filepath = fixtures.path('x.txt'); const fd = fs.openSync(filepath, 'r'); const expected = Buffer.from('xyz\n'); const defaultBufferAsync = Buffer.alloc(16384); const bufferAsOption = Buffer.allocUnsafe(expected.length); // Test not passing in any options object fs.read(fd, common.mustCall((err, bytesRead, buffer) => { assert.strictEqual(bytesRead, expected.length); assert.deepStrictEqual(defaultBufferAsync.length, buffer.length); })); // Test passing in an empty options object fs.read(fd, { position: 0 }, common.mustCall((err, bytesRead, buffer) => { assert.strictEqual(bytesRead, expected.length); assert.deepStrictEqual(defaultBufferAsync.length, buffer.length); })); // Test passing in options fs.read(fd, { buffer: bufferAsOption, offset: 0, length: bufferAsOption.length, position: 0 }, common.mustCall((err, bytesRead, buffer) => { assert.strictEqual(bytesRead, expected.length); assert.deepStrictEqual(bufferAsOption.length, buffer.length); }));