fs: make sure that file is truncated in writeFile
Simple Reproduction of the Bug
'use strict';
const assert = require('assert');
const fs = require('fs');
const fileName = 'test.txt';
fs.writeFileSync(fileName, '123');
fs.writeFileSync(fileName, '0');
const result1 = fs.readFileSync(fileName, 'utf8');
fs.unlinkSync(fileName);
const fd = fs.openSync(fileName, 'w');
fs.writeFileSync(fd, '123');
fs.writeFileSync(fd, '0');
fs.closeSync(fd);
const result2 = fs.readFileSync(fileName, 'utf8');
fs.unlinkSync(fileName);
assert.deepStrictEqual(result2, result1);
// + expected - actual
//
//- '023'
//+ '0'
Fixes: https://github.com/nodejs/node/issues/22554
cc @vsemozhetbyt @nodejs/fs
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
tests and/or benchmarks are included -
documentation is changed or added -
commit message follows commit guidelines