• 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;
12
13const tmpdir = require('../common/tmpdir');
14
15const dirname = `${tmpdir.path}/cwd-does-not-exist-${process.pid}`;
16tmpdir.refresh();
17fs.mkdirSync(dirname);
18process.chdir(dirname);
19fs.rmdirSync(dirname);
20
21const proc = spawn(process.execPath, ['-e', '0']);
22proc.stdout.pipe(process.stdout);
23proc.stderr.pipe(process.stderr);
24
25proc.once('exit', common.mustCall(function(exitCode, signalCode) {
26  assert.strictEqual(exitCode, 0);
27  assert.strictEqual(signalCode, null);
28}));
29