mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
772fdb0cd3
The test is marked flaky on ARM because it times out on Raspberry Pi devices in CI. Split the single test file into four separate test files to ease debugging. Add fs.close() to avoid timing out. Fixes: https://github.com/nodejs/node/issues/33796 PR-URL: https://github.com/nodejs/node/pull/34203 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Robert Nagy <ronagy@icloud.com>
71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const fs = require('fs');
|
|
const assert = require('assert');
|
|
const fixtures = require('../common/fixtures');
|
|
|
|
const tmpdir = require('../common/tmpdir');
|
|
tmpdir.refresh();
|
|
|
|
{
|
|
// Compat with graceful-fs.
|
|
|
|
function ReadStream(...args) {
|
|
fs.ReadStream.call(this, ...args);
|
|
}
|
|
Object.setPrototypeOf(ReadStream.prototype, fs.ReadStream.prototype);
|
|
Object.setPrototypeOf(ReadStream, fs.ReadStream);
|
|
|
|
ReadStream.prototype.open = common.mustCall(function ReadStream$open() {
|
|
const that = this;
|
|
fs.open(that.path, that.flags, that.mode, (err, fd) => {
|
|
if (err) {
|
|
if (that.autoClose)
|
|
that.destroy();
|
|
|
|
that.emit('error', err);
|
|
} else {
|
|
that.fd = fd;
|
|
that.emit('open', fd);
|
|
that.read();
|
|
}
|
|
});
|
|
});
|
|
|
|
const r = new ReadStream(fixtures.path('x.txt'))
|
|
.on('open', common.mustCall((fd) => {
|
|
assert.strictEqual(fd, r.fd);
|
|
r.destroy();
|
|
}));
|
|
}
|
|
|
|
{
|
|
// Compat with graceful-fs.
|
|
|
|
function WriteStream(...args) {
|
|
fs.WriteStream.call(this, ...args);
|
|
}
|
|
Object.setPrototypeOf(WriteStream.prototype, fs.WriteStream.prototype);
|
|
Object.setPrototypeOf(WriteStream, fs.WriteStream);
|
|
|
|
WriteStream.prototype.open = common.mustCall(function WriteStream$open() {
|
|
const that = this;
|
|
fs.open(that.path, that.flags, that.mode, function(err, fd) {
|
|
if (err) {
|
|
that.destroy();
|
|
that.emit('error', err);
|
|
} else {
|
|
that.fd = fd;
|
|
that.emit('open', fd);
|
|
}
|
|
});
|
|
});
|
|
|
|
const w = new WriteStream(`${tmpdir.path}/dummy`)
|
|
.on('open', common.mustCall((fd) => {
|
|
assert.strictEqual(fd, w.fd);
|
|
w.destroy();
|
|
}));
|
|
}
|