mirror of https://github.com/lukechilds/node.git
Browse Source
It wasn't obviouse that common.js was the main cli tool. PR-URL: https://github.com/nodejs/node/pull/7094 Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Brian White <mscdex@mscdex.net> Reviewed-By: Anna Henningsen <anna@addaleax.net>v7.x
Andreas Madsen
9 years ago
5 changed files with 77 additions and 69 deletions
@ -0,0 +1,63 @@ |
|||
'use strict'; |
|||
|
|||
const fs = require('fs'); |
|||
const path = require('path'); |
|||
const child_process = require('child_process'); |
|||
|
|||
var outputFormat = process.env.OUTPUT_FORMAT || |
|||
(+process.env.NODE_BENCH_SILENT ? 'silent' : false) || |
|||
'default'; |
|||
|
|||
// If this is the main module, then run the benchmarks
|
|||
if (module === require.main) { |
|||
var type = process.argv[2]; |
|||
var testFilter = process.argv[3]; |
|||
if (!type) { |
|||
console.error('usage:\n ./node benchmark/run.js <type> [testFilter]'); |
|||
process.exit(1); |
|||
} |
|||
|
|||
var dir = path.join(__dirname, type); |
|||
var tests = fs.readdirSync(dir); |
|||
|
|||
if (testFilter) { |
|||
var filteredTests = tests.filter(function(item) { |
|||
if (item.lastIndexOf(testFilter) >= 0) { |
|||
return item; |
|||
} |
|||
}); |
|||
|
|||
if (filteredTests.length === 0) { |
|||
console.error('%s is not found in \n %j', testFilter, tests); |
|||
return; |
|||
} |
|||
tests = filteredTests; |
|||
} |
|||
|
|||
runBenchmarks(); |
|||
} |
|||
|
|||
function runBenchmarks() { |
|||
var test = tests.shift(); |
|||
if (!test) |
|||
return; |
|||
|
|||
if (test.match(/^[\._]/)) |
|||
return process.nextTick(runBenchmarks); |
|||
|
|||
if (outputFormat == 'default') |
|||
console.error(type + '/' + test); |
|||
|
|||
test = path.resolve(dir, test); |
|||
|
|||
var a = (process.execArgv || []).concat(test); |
|||
var child = child_process.spawn(process.execPath, a, { stdio: 'inherit' }); |
|||
child.on('close', function(code) { |
|||
if (code) { |
|||
process.exit(code); |
|||
} else { |
|||
console.log(''); |
|||
runBenchmarks(); |
|||
} |
|||
}); |
|||
} |
Loading…
Reference in new issue