• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX.
4if (common.isSunOS || common.isWindows || common.isAIX)
5  common.skip('cannot rmdir current working directory');
6if (!common.isMainThread)
7  common.skip('process.chdir is not available in Workers');
8
9const assert = require('assert');
10const fs = require('fs');
11const spawn = require('child_process').spawn;
12const fixtures = require('../common/fixtures');
13const tmpdir = require('../common/tmpdir');
14
15const dirname = `${tmpdir.path}/cwd-does-not-exist-${process.pid}`;
16const abspathFile = fixtures.path('a.js');
17tmpdir.refresh();
18fs.mkdirSync(dirname);
19process.chdir(dirname);
20fs.rmdirSync(dirname);
21
22
23const proc = spawn(process.execPath, ['-r', abspathFile, '-e', '0']);
24proc.stdout.pipe(process.stdout);
25proc.stderr.pipe(process.stderr);
26
27proc.once('exit', common.mustCall(function(exitCode, signalCode) {
28  assert.strictEqual(exitCode, 0);
29  assert.strictEqual(signalCode, null);
30}));
31