exports.PORT = +process.env.NODE_COMMON_PORT || 12346;
exports.isWindows = process.platform === 'win32';
+function rimrafSync(p) {
+ try {
+ var st = fs.lstatSync(p);
+ } catch (e) {
+ if (e.code === 'ENOENT')
+ return;
+ }
+
+ try {
+ if (st && st.isDirectory())
+ rmdirSync(p, null);
+ else
+ fs.unlinkSync(p);
+ } catch (e) {
+ if (e.code === 'ENOENT')
+ return;
+ if (e.code === 'EPERM')
+ return rmdirSync(p, er);
+ if (e.code !== 'EISDIR')
+ throw e;
+ rmdirSync(p, e);
+ }
+}
+
+function rmdirSync(p, originalEr) {
+ try {
+ fs.rmdirSync(p);
+ } catch (e) {
+ if (e.code === 'ENOTDIR')
+ throw originalEr;
+ if (e.code === 'ENOTEMPTY' || e.code === 'EEXIST' || e.code === 'EPERM') {
+ fs.readdirSync(p).forEach(function(f) {
+ rimrafSync(path.join(p, f));
+ });
+ fs.rmdirSync(p);
+ }
+ }
+}
+
+function refreshTmpDir() {
+ if (!process.send) { // Not a child process
+ try {
+ rimrafSync(exports.tmpDir);
+ } catch (e) {
+ }
+
+ try {
+ fs.mkdirSync(exports.tmpDir);
+ } catch (e) {
+ }
+ }
+}
+
if (process.env.TEST_THREAD_ID) {
// Distribute ports in parallel tests
if (!process.env.NODE_COMMON_PORT)
}
exports.tmpDir = path.join(exports.testDir, exports.tmpDirName);
+refreshTmpDir();
+
var opensslCli = null;
var inFreeBSDJail = null;
var localhostIPv4 = null;
-var common = require('../common');
var assert = require('assert');
var n = parseInt(process.argv[2]);
-var common = require('../common');
var assert = require('assert');
var n = parseInt(process.argv[2]);
watcher.on('change', function(event, filename) {
assert.ok('change' === event || 'rename' === event);
- // Ignore stale events generated by mkdir
- if (filename === testsubdirName)
+ // Ignore stale events generated by mkdir and other tests
+ if (filename !== relativePathOne)
return;
- assert.equal(relativePathOne, filename);
-
watcher.close();
cleanup();
++watchSeenOne;
import test
import os
import shutil
-from shutil import rmtree
from os import mkdir
from glob import glob
from os.path import join, dirname, exists
self.tmpdir = join(dirname(self.config.root), 'tmp')
self.additional_flags = additional
- def GetTmpDir(self):
- return "%s.%d" % (self.tmpdir, self.thread_id)
-
-
- def AfterRun(self, result):
- # delete the whole tmp dir
- try:
- rmtree(self.GetTmpDir())
- except:
- pass
- # make it again.
- try:
- mkdir(self.GetTmpDir())
- except:
- pass
-
- def BeforeRun(self):
- # delete the whole tmp dir
- try:
- rmtree(self.GetTmpDir())
- except:
- pass
- # make it again.
- # intermittently fails on win32, so keep trying
- while not os.path.exists(self.GetTmpDir()):
- try:
- mkdir(self.GetTmpDir())
- except:
- pass
def GetLabel(self):
return "%s %s" % (self.mode, self.GetName())