From 264b1fea50832ac64b18e9ce96c3ca446332bded Mon Sep 17 00:00:00 2001 From: "Davis W. Frank and Sheel Choksi" Date: Tue, 2 Jul 2013 14:03:42 -0700 Subject: [PATCH] Merge the node performance suite into the node suite The node performance suite can be run with node: `node spec/node_suite.js --perf` --- spec/jasmine-performance.yml | 2 +- spec/node_performance_suite.js | 176 ------------------ spec/node_suite.js | 29 +-- .../performance_test.js | 0 4 files changed, 19 insertions(+), 188 deletions(-) delete mode 100644 spec/node_performance_suite.js rename spec/{smoke => performance}/performance_test.js (100%) diff --git a/spec/jasmine-performance.yml b/spec/jasmine-performance.yml index 27a329e4..5aa5bf35 100644 --- a/spec/jasmine-performance.yml +++ b/spec/jasmine-performance.yml @@ -13,7 +13,7 @@ src_files: stylesheets: helpers: spec_files: - - 'smoke/performance_test.js' + - 'performance/performance_test.js' src_dir: spec_dir: - 'spec' diff --git a/spec/node_performance_suite.js b/spec/node_performance_suite.js deleted file mode 100644 index 5fe10712..00000000 --- a/spec/node_performance_suite.js +++ /dev/null @@ -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); diff --git a/spec/node_suite.js b/spec/node_suite.js index 86be7686..b47c00dd 100644 --- a/spec/node_suite.js +++ b/spec/node_suite.js @@ -86,7 +86,7 @@ function executeSpecs(specs, done, isVerbose, showColors) { } function getFiles(dir, matcher) { - var allFiles = []; + var allFiles = []; if (fs.statSync(dir).isFile() && dir.match(matcher)) { allFiles.push(dir); @@ -113,7 +113,7 @@ function getSpecFiles(dir) { var j$require = (function() { var exported = {}, - j$req; + j$req; global.getJasmineRequireObj = getJasmineRequireObj; @@ -124,7 +124,7 @@ var j$require = (function() { srcFiles.push(__dirname + "/../src/version.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]); } extend(j$req, exported); @@ -141,17 +141,11 @@ var j$require = (function() { var j$ = j$require.core(j$require); 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 var isVerbose = false; var showColors = true; +var perfSuite = false; + process.argv.forEach(function(arg) { switch (arg) { case '--color': @@ -163,9 +157,22 @@ process.argv.forEach(function(arg) { case '--verbose': isVerbose = true; 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) { if (passed) { process.exit(0); diff --git a/spec/smoke/performance_test.js b/spec/performance/performance_test.js similarity index 100% rename from spec/smoke/performance_test.js rename to spec/performance/performance_test.js