| 'use strict'; |
| |
| /* |
| * This test makes sure that `readFile()` always reads from the current |
| * position of the file, instead of reading from the beginning of the file. |
| */ |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const path = require('path'); |
| const { writeFileSync } = require('fs'); |
| const { open } = require('fs').promises; |
| |
| const tmpdir = require('../common/tmpdir'); |
| tmpdir.refresh(); |
| |
| const fn = path.join(tmpdir.path, 'test.txt'); |
| writeFileSync(fn, 'Hello World'); |
| |
| async function readFileTest() { |
| const handle = await open(fn, 'r'); |
| |
| /* Read only five bytes, so that the position moves to five. */ |
| const buf = Buffer.alloc(5); |
| const { bytesRead } = await handle.read(buf, 0, 5, null); |
| assert.strictEqual(bytesRead, 5); |
| assert.deepStrictEqual(buf.toString(), 'Hello'); |
| |
| /* readFile() should read from position five, instead of zero. */ |
| assert.deepStrictEqual((await handle.readFile()).toString(), ' World'); |
| } |
| |
| |
| readFileTest() |
| .then(common.mustCall()); |