mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
test: create temp dir in common.js
Move creation of temporary directories for tests out of the Python harness and into common.js. This allows all tests to be run reliably outside of the Python wrapper. PR-URL: https://github.com/nodejs/io.js/pull/1877 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
This commit is contained in:
@@ -12,6 +12,59 @@ exports.tmpDirName = 'tmp';
|
||||
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)
|
||||
@@ -21,6 +74,8 @@ if (process.env.TEST_THREAD_ID) {
|
||||
}
|
||||
exports.tmpDir = path.join(exports.testDir, exports.tmpDirName);
|
||||
|
||||
refreshTmpDir();
|
||||
|
||||
var opensslCli = null;
|
||||
var inFreeBSDJail = null;
|
||||
var localhostIPv4 = null;
|
||||
|
||||
1
test/fixtures/print-chars-from-buffer.js
vendored
1
test/fixtures/print-chars-from-buffer.js
vendored
@@ -1,4 +1,3 @@
|
||||
var common = require('../common');
|
||||
var assert = require('assert');
|
||||
|
||||
var n = parseInt(process.argv[2]);
|
||||
|
||||
1
test/fixtures/print-chars.js
vendored
1
test/fixtures/print-chars.js
vendored
@@ -1,4 +1,3 @@
|
||||
var common = require('../common');
|
||||
var assert = require('assert');
|
||||
|
||||
var n = parseInt(process.argv[2]);
|
||||
|
||||
@@ -31,12 +31,10 @@ if (process.platform === 'darwin') {
|
||||
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;
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
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
|
||||
@@ -50,35 +49,6 @@ class SimpleTestCase(test.TestCase):
|
||||
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())
|
||||
|
||||
Reference in New Issue
Block a user