const stream = require('stream');
const util = require('util');
+const testRoot = path.resolve(process.env.NODE_TEST_DIR ||
+ path.dirname(__filename));
exports.testDir = path.dirname(__filename);
exports.fixturesDir = path.join(exports.testDir, 'fixtures');
};
if (process.env.TEST_THREAD_ID) {
- // Distribute ports in parallel tests
- if (!process.env.NODE_COMMON_PORT)
- exports.PORT += +process.env.TEST_THREAD_ID * 100;
-
+ exports.PORT += process.env.TEST_THREAD_ID * 100;
exports.tmpDirName += '.' + process.env.TEST_THREAD_ID;
}
-exports.tmpDir = path.join(exports.testDir, exports.tmpDirName);
+exports.tmpDir = path.join(testRoot, exports.tmpDirName);
var opensslCli = null;
var inFreeBSDJail = null;
if (exports.isWindows) {
exports.PIPE = '\\\\.\\pipe\\libuv-test';
+ if (process.env.TEST_THREAD_ID) {
+ exports.PIPE += '.' + process.env.TEST_THREAD_ID;
+ }
} else {
exports.PIPE = exports.tmpDir + '/test.sock';
}
-if (process.env.NODE_COMMON_PIPE) {
- exports.PIPE = process.env.NODE_COMMON_PIPE;
- // Remove manually, the test runner won't do it
- // for us like it does for files in test/tmp.
- try {
- fs.unlinkSync(exports.PIPE);
- } catch (e) {
- // Ignore.
- }
-}
-
if (exports.isWindows) {
exports.faketimeCli = false;
} else {
result.add_option("-r", "--run",
help="Divide the tests in m groups (interleaved) and run tests from group n (--run=n,m with n < m)",
default="")
+ result.add_option('--temp-dir',
+ help='Optional path to change directory used for tests', default=False)
return result
for rule in globally_unused_rules:
print "Rule for '%s' was not used." % '/'.join([str(s) for s in rule.path])
+ tempdir = os.environ.get('NODE_TEST_DIR') or options.temp_dir
+ if tempdir:
+ try:
+ os.makedirs(tempdir)
+ os.environ['NODE_TEST_DIR'] = tempdir
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ print "Could not create the temporary directory", options.temp_dir
+ sys.exit(1)
+
if options.report:
PrintReport(all_cases)