mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
56e36f41aa
Before this change, only the first part of typed arrays which have more than 1 byte per element (e.g. Uint16Array) would be written. This also removes the use of the `slice` method to avoid unnecessary copying the data. Fixes: https://github.com/nodejs/node/issues/35343 PR-URL: https://github.com/nodejs/node/pull/35376 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Zeyu Yang <himself65@outlook.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
25 lines
726 B
JavaScript
25 lines
726 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const fs = require('fs');
|
|
const fsPromises = fs.promises;
|
|
const path = require('path');
|
|
const tmpdir = require('../common/tmpdir');
|
|
const assert = require('assert');
|
|
const tmpDir = tmpdir.path;
|
|
|
|
tmpdir.refresh();
|
|
|
|
const dest = path.resolve(tmpDir, 'tmp.txt');
|
|
// Use a file size larger than `kReadFileMaxChunkSize`.
|
|
const buffer = Buffer.from('012'.repeat(2 ** 14));
|
|
|
|
(async () => {
|
|
for (const Constructor of [Uint8Array, Uint16Array, Uint32Array]) {
|
|
const array = new Constructor(buffer.buffer);
|
|
await fsPromises.writeFile(dest, array);
|
|
const data = await fsPromises.readFile(dest);
|
|
assert.deepStrictEqual(data, buffer);
|
|
}
|
|
})().then(common.mustCall());
|