Merge the node performance suite into the node suite
The node performance suite can be run with node: `node spec/node_suite.js --perf`
This commit is contained in:
@@ -13,7 +13,7 @@ src_files:
|
|||||||
stylesheets:
|
stylesheets:
|
||||||
helpers:
|
helpers:
|
||||||
spec_files:
|
spec_files:
|
||||||
- 'smoke/performance_test.js'
|
- 'performance/performance_test.js'
|
||||||
src_dir:
|
src_dir:
|
||||||
spec_dir:
|
spec_dir:
|
||||||
- 'spec'
|
- 'spec'
|
||||||
|
|||||||
@@ -1,176 +0,0 @@
|
|||||||
var fs = require('fs');
|
|
||||||
var util = require('util');
|
|
||||||
var path = require('path');
|
|
||||||
|
|
||||||
var jasmineGlobals = require('../lib/jasmine-core/jasmine.js');
|
|
||||||
for (var k in jasmineGlobals) {
|
|
||||||
global[k] = jasmineGlobals[k];
|
|
||||||
}
|
|
||||||
var env = jasmine.getEnv();
|
|
||||||
|
|
||||||
var jasmineInterface = {
|
|
||||||
describe: function(description, specDefinitions) {
|
|
||||||
return env.describe(description, specDefinitions);
|
|
||||||
},
|
|
||||||
|
|
||||||
xdescribe: function(description, specDefinitions) {
|
|
||||||
return env.xdescribe(description, specDefinitions);
|
|
||||||
},
|
|
||||||
|
|
||||||
it: function(desc, func) {
|
|
||||||
return env.it(desc, func);
|
|
||||||
},
|
|
||||||
|
|
||||||
xit: function(desc, func) {
|
|
||||||
return env.xit(desc, func);
|
|
||||||
},
|
|
||||||
|
|
||||||
beforeEach: function(beforeEachFunction) {
|
|
||||||
return env.beforeEach(beforeEachFunction);
|
|
||||||
},
|
|
||||||
|
|
||||||
afterEach: function(afterEachFunction) {
|
|
||||||
return env.afterEach(afterEachFunction);
|
|
||||||
},
|
|
||||||
|
|
||||||
expect: function(actual) {
|
|
||||||
return env.expect(actual);
|
|
||||||
},
|
|
||||||
|
|
||||||
addMatchers: function(matchers) {
|
|
||||||
return env.addMatchers(matchers);
|
|
||||||
},
|
|
||||||
|
|
||||||
spyOn: function(obj, methodName) {
|
|
||||||
return env.spyOn(obj, methodName);
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
jsApiReporter: new jasmine.JsApiReporter(jasmine)
|
|
||||||
};
|
|
||||||
|
|
||||||
for (var k in jasmineInterface) {
|
|
||||||
global[k] = jasmineInterface[k];
|
|
||||||
}
|
|
||||||
|
|
||||||
require('../src/console/ConsoleReporter.js');
|
|
||||||
|
|
||||||
/*
|
|
||||||
Pulling in code from jasmine-node.
|
|
||||||
|
|
||||||
We can't just depend on jasmine-node because it has its own jasmine that it uses.
|
|
||||||
*/
|
|
||||||
|
|
||||||
global.window = {
|
|
||||||
setTimeout: setTimeout,
|
|
||||||
clearTimeout: clearTimeout,
|
|
||||||
setInterval: setInterval,
|
|
||||||
clearInterval: clearInterval
|
|
||||||
};
|
|
||||||
|
|
||||||
delete global.window;
|
|
||||||
|
|
||||||
function noop() {
|
|
||||||
}
|
|
||||||
|
|
||||||
jasmine.executeSpecs = function(specs, done, isVerbose, showColors) {
|
|
||||||
global.jasmine = jasmine;
|
|
||||||
|
|
||||||
for (var i = 0, len = specs.length; i < len; ++i) {
|
|
||||||
var filename = specs[i];
|
|
||||||
require(filename.replace(/\.\w+$/, ""));
|
|
||||||
}
|
|
||||||
|
|
||||||
var jasmineEnv = jasmine.getEnv();
|
|
||||||
var consoleReporter = new jasmine.ConsoleReporter({
|
|
||||||
print: util.print,
|
|
||||||
onComplete: done,
|
|
||||||
showColors: showColors
|
|
||||||
});
|
|
||||||
|
|
||||||
jasmineEnv.addReporter(consoleReporter);
|
|
||||||
jasmineEnv.execute();
|
|
||||||
};
|
|
||||||
|
|
||||||
jasmine.getAllSpecFiles = function(dir, matcher) {
|
|
||||||
var specs = [];
|
|
||||||
|
|
||||||
if (fs.statSync(dir).isFile() && dir.match(matcher)) {
|
|
||||||
specs.push(dir);
|
|
||||||
} else {
|
|
||||||
var files = fs.readdirSync(dir);
|
|
||||||
for (var i = 0, len = files.length; i < len; ++i) {
|
|
||||||
var filename = dir + '/' + files[i];
|
|
||||||
if (fs.statSync(filename).isFile() && filename.match(matcher)) {
|
|
||||||
specs.push(filename);
|
|
||||||
} else if (fs.statSync(filename).isDirectory()) {
|
|
||||||
var subfiles = this.getAllSpecFiles(filename, matcher);
|
|
||||||
subfiles.forEach(function(result) {
|
|
||||||
specs.push(result);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return specs;
|
|
||||||
};
|
|
||||||
|
|
||||||
function now() {
|
|
||||||
return new Date().getTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
jasmine.asyncSpecWait = function() {
|
|
||||||
var wait = jasmine.asyncSpecWait;
|
|
||||||
wait.start = now();
|
|
||||||
wait.done = false;
|
|
||||||
(function innerWait() {
|
|
||||||
waits(10);
|
|
||||||
runs(function() {
|
|
||||||
if (wait.start + wait.timeout < now()) {
|
|
||||||
expect('timeout waiting for spec').toBeNull();
|
|
||||||
} else if (wait.done) {
|
|
||||||
wait.done = false;
|
|
||||||
} else {
|
|
||||||
innerWait();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
};
|
|
||||||
jasmine.asyncSpecWait.timeout = 4 * 1000;
|
|
||||||
jasmine.asyncSpecDone = function() {
|
|
||||||
jasmine.asyncSpecWait.done = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
for (var key in jasmine) {
|
|
||||||
exports[key] = jasmine[key];
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
End jasmine-node runner
|
|
||||||
*/
|
|
||||||
|
|
||||||
var isVerbose = false;
|
|
||||||
var showColors = true;
|
|
||||||
process.argv.forEach(function(arg) {
|
|
||||||
switch (arg) {
|
|
||||||
case '--color': showColors = true; break;
|
|
||||||
case '--noColor': showColors = false; break;
|
|
||||||
case '--verbose': isVerbose = true; break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var specs = jasmine.getAllSpecFiles(__dirname + '/smoke/', new RegExp("test.js$"));
|
|
||||||
var domIndependentSpecs = [];
|
|
||||||
for (var i = 0; i < specs.length; i++) {
|
|
||||||
if (fs.readFileSync(specs[i], "utf8").indexOf("document.createElement") < 0) {
|
|
||||||
domIndependentSpecs.push(specs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jasmine.executeSpecs(domIndependentSpecs, function(passed) {
|
|
||||||
if (passed) {
|
|
||||||
process.exit(0);
|
|
||||||
} else {
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
}, isVerbose, showColors);
|
|
||||||
@@ -86,7 +86,7 @@ function executeSpecs(specs, done, isVerbose, showColors) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getFiles(dir, matcher) {
|
function getFiles(dir, matcher) {
|
||||||
var allFiles = [];
|
var allFiles = [];
|
||||||
|
|
||||||
if (fs.statSync(dir).isFile() && dir.match(matcher)) {
|
if (fs.statSync(dir).isFile() && dir.match(matcher)) {
|
||||||
allFiles.push(dir);
|
allFiles.push(dir);
|
||||||
@@ -113,7 +113,7 @@ function getSpecFiles(dir) {
|
|||||||
|
|
||||||
var j$require = (function() {
|
var j$require = (function() {
|
||||||
var exported = {},
|
var exported = {},
|
||||||
j$req;
|
j$req;
|
||||||
|
|
||||||
global.getJasmineRequireObj = getJasmineRequireObj;
|
global.getJasmineRequireObj = getJasmineRequireObj;
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ var j$require = (function() {
|
|||||||
srcFiles.push(__dirname + "/../src/version.js");
|
srcFiles.push(__dirname + "/../src/version.js");
|
||||||
srcFiles.push(__dirname + "/../src/console/ConsoleReporter.js");
|
srcFiles.push(__dirname + "/../src/console/ConsoleReporter.js");
|
||||||
|
|
||||||
for (var i=0; i < srcFiles.length; i++) {
|
for (var i = 0; i < srcFiles.length; i++) {
|
||||||
require(srcFiles[i]);
|
require(srcFiles[i]);
|
||||||
}
|
}
|
||||||
extend(j$req, exported);
|
extend(j$req, exported);
|
||||||
@@ -141,17 +141,11 @@ var j$require = (function() {
|
|||||||
var j$ = j$require.core(j$require);
|
var j$ = j$require.core(j$require);
|
||||||
j$require.console(j$require, j$);
|
j$require.console(j$require, j$);
|
||||||
|
|
||||||
//var specs = getSpecFiles(__dirname + '/smoke', new RegExp("test.js$"));
|
|
||||||
var consoleSpecs = getSpecFiles(__dirname + "/console"),
|
|
||||||
coreSpecs = getSpecFiles(__dirname + "/core"),
|
|
||||||
specs = [];
|
|
||||||
|
|
||||||
specs = specs.concat(consoleSpecs);
|
|
||||||
specs = specs.concat(coreSpecs);
|
|
||||||
|
|
||||||
// options from command line
|
// options from command line
|
||||||
var isVerbose = false;
|
var isVerbose = false;
|
||||||
var showColors = true;
|
var showColors = true;
|
||||||
|
var perfSuite = false;
|
||||||
|
|
||||||
process.argv.forEach(function(arg) {
|
process.argv.forEach(function(arg) {
|
||||||
switch (arg) {
|
switch (arg) {
|
||||||
case '--color':
|
case '--color':
|
||||||
@@ -163,9 +157,22 @@ process.argv.forEach(function(arg) {
|
|||||||
case '--verbose':
|
case '--verbose':
|
||||||
isVerbose = true;
|
isVerbose = true;
|
||||||
break;
|
break;
|
||||||
|
case '--perf':
|
||||||
|
perfSuite = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
specs = [];
|
||||||
|
|
||||||
|
if (perfSuite) {
|
||||||
|
specs = getFiles(__dirname + '/performance', new RegExp("test.js$"));
|
||||||
|
} else {
|
||||||
|
var consoleSpecs = getSpecFiles(__dirname + "/console"),
|
||||||
|
coreSpecs = getSpecFiles(__dirname + "/core"),
|
||||||
|
specs = consoleSpecs.concat(coreSpecs);
|
||||||
|
}
|
||||||
|
|
||||||
executeSpecs(specs, function(passed) {
|
executeSpecs(specs, function(passed) {
|
||||||
if (passed) {
|
if (passed) {
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user