Skip to content

Commit 87bf499

Browse files
committed
fs: trace the mkstemp functions
fs.mkstemp(), fs.mkstempSync() and fsPromises.mkstemp() landed after this branch, so the coverage test failed on them. Add the fs.mkstemp channel with the same context as fs.mkdtemp. Assisted-by: claude:fable-5.1 Signed-off-by: Tim Fish <tim@timfish.uk>
1 parent 907cbcb commit 87bf499

5 files changed

Lines changed: 23 additions & 0 deletions

File tree

‎doc/api/diagnostics_channel.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,6 +1699,7 @@ of its forms: `stat` means `fs.stat()`, `fs.statSync()`, and
16991699
| `fs.lutimes` | `lutimes` | `path`, `atime`, `mtime` |
17001700
| `fs.mkdir` | `mkdir` | `path` |
17011701
| `fs.mkdtemp` | `mkdtemp`, `mkdtempDisposable` | `prefix` |
1702+
| `fs.mkstemp` | `mkstemp` | `prefix` |
17021703
| `fs.open` | `open` | `path` |
17031704
| `fs.openAsBlob` | `openAsBlob` | `path` |
17041705
| `fs.opendir` | `opendir` | `path` |

‎lib/fs.js‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ const {
155155
fsLutimes,
156156
fsMkdir,
157157
fsMkdtemp,
158+
fsMkstemp,
158159
fsOpen,
159160
fsOpenAsBlob,
160161
fsRead,
@@ -4168,6 +4169,10 @@ function mkdtempDisposableSync(prefix, options) {
41684169
* @returns {void}
41694170
*/
41704171
function mkstemp(prefix, options, callback) {
4172+
if (this !== kTraced && fsMkstemp.hasSubscribers) {
4173+
const context = { api: 'callback', args: ArrayPrototypeSlice(arguments), prefix };
4174+
return traceCallback(fsMkstemp, context, mkstemp, arguments);
4175+
}
41714176
callback = makeCallback(typeof options === 'function' ? options : callback);
41724177

41734178
options = getOptions(options);
@@ -4195,6 +4200,10 @@ function mkstemp(prefix, options, callback) {
41954200
* @returns {{ path: string | Buffer, fd: number }}
41964201
*/
41974202
function mkstempSync(prefix, options) {
4203+
if (this !== kTraced && fsMkstemp.hasSubscribers) {
4204+
const context = { api: 'sync', args: ArrayPrototypeSlice(arguments), prefix };
4205+
return traceSync(fsMkstemp, context, mkstempSync, arguments);
4206+
}
41984207
options = getOptions(options);
41994208
if (BufferIsBuffer(prefix)) {
42004209
options = { ...options, encoding: 'buffer' };

‎lib/internal/fs/promises.js‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ const {
111111
fsLutimes,
112112
fsMkdir,
113113
fsMkdtemp,
114+
fsMkstemp,
114115
fsOpen,
115116
fsOpendir,
116117
fsRead,
@@ -2342,6 +2343,10 @@ async function mkdtemp(prefix, options) {
23422343
}
23432344

23442345
async function mkstemp(prefix, options) {
2346+
if (this !== kTraced && fsMkstemp.hasSubscribers) {
2347+
const context = { api: 'promise', args: ArrayPrototypeSlice(arguments), prefix };
2348+
return await tracePromise(fsMkstemp, context, mkstemp, arguments);
2349+
}
23452350
options = getOptions(options);
23462351
if (BufferIsBuffer(prefix)) {
23472352
options = { ...options, encoding: 'buffer' };

‎lib/internal/fs/utils.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,6 +1260,7 @@ const fsLstat = tracingChannel('fs.lstat');
12601260
const fsLutimes = tracingChannel('fs.lutimes');
12611261
const fsMkdir = tracingChannel('fs.mkdir');
12621262
const fsMkdtemp = tracingChannel('fs.mkdtemp');
1263+
const fsMkstemp = tracingChannel('fs.mkstemp');
12631264
const fsOpen = tracingChannel('fs.open');
12641265
const fsOpenAsBlob = tracingChannel('fs.openAsBlob');
12651266
const fsOpendir = tracingChannel('fs.opendir');
@@ -1307,6 +1308,7 @@ module.exports = {
13071308
fsLutimes,
13081309
fsMkdir,
13091310
fsMkdtemp,
1311+
fsMkstemp,
13101312
fsOpen,
13111313
fsOpenAsBlob,
13121314
fsOpendir,

‎test/parallel/test-diagnostics-channel-fs-coverage.js‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ const syncOps = [
9292
['mkdtempSync', 'mkdtemp', () => fs.mkdtempSync(fresh('tmp'))],
9393
['mkdtempDisposableSync', 'mkdtemp',
9494
() => fs.mkdtempDisposableSync(fresh('tmp')).remove()],
95+
['mkstempSync', 'mkstemp', () => fs.closeSync(fs.mkstempSync(fresh('tmp')).fd)],
9596
['openAsBlobSync', 'openAsBlob', () => fs.openAsBlobSync(file)],
9697
['openSync', 'open', () => fs.closeSync(fs.openSync(file))],
9798
['opendirSync', 'opendir', () => fs.opendirSync(newDir()).closeSync()],
@@ -141,6 +142,10 @@ const callbackOps = [
141142
['lutimes', 'lutimes', (cb) => fs.lutimes(newLink(), now, now, cb)],
142143
['mkdir', 'mkdir', (cb) => fs.mkdir(fresh('mkdir'), cb)],
143144
['mkdtemp', 'mkdtemp', (cb) => fs.mkdtemp(fresh('tmp'), cb)],
145+
['mkstemp', 'mkstemp', (cb) => fs.mkstemp(fresh('tmp'), (err, file) => {
146+
if (file !== undefined) fs.closeSync(file.fd);
147+
cb(err);
148+
})],
144149
['open', 'open', (cb) => fs.open(file, (err, fd) => {
145150
if (fd !== undefined) fs.closeSync(fd);
146151
cb(err);
@@ -188,6 +193,7 @@ const promiseOps = [
188193
['mkdtemp', 'mkdtemp', () => fsp.mkdtemp(fresh('tmp'))],
189194
['mkdtempDisposable', 'mkdtemp',
190195
async () => (await fsp.mkdtempDisposable(fresh('tmp'))).remove()],
196+
['mkstemp', 'mkstemp', async () => (await fsp.mkstemp(fresh('tmp'))).handle.close()],
191197
['open', 'open', async () => (await fsp.open(file)).close()],
192198
['opendir', 'opendir', async () => (await fsp.opendir(newDir())).close()],
193199
['openAsBlob', 'openAsBlob', () => fs.openAsBlob(file)],

0 commit comments

Comments
 (0)