1'use strict';
2
3// Refs: https://github.com/nodejs/node/issues/34266
4// Failing to close a file should not keep the event loop open.
5
6const common = require('../common');
7const assert = require('assert');
8
9const fs = require('fs');
10
11const debuglog = (arg) => {
12  console.log(new Date().toLocaleString(), arg);
13};
14
15const tmpdir = require('../common/tmpdir');
16tmpdir.refresh();
17
18let openFd;
19
20fs.open(`${tmpdir.path}/dummy`, 'wx+', common.mustCall((err, fd) => {
21  debuglog('fs open() callback');
22  assert.ifError(err);
23  openFd = fd;
24}));
25debuglog('waiting for callback');
26
27process.on('beforeExit', common.mustCall(() => {
28  if (openFd) {
29    fs.closeSync(openFd);
30  }
31}));
32