/** * Benchmark runner dependencies */ var colors = require( 'colors' ) , path = require( 'path' ); /** * Find all the benchmarks */ var benchmarks_files = process.env.BENCHMARKS.split( ' ' ) , all = [].concat( benchmarks_files ) , first = all.shift() , benchmarks = {}; // find the benchmarks and load them all in our obj benchmarks_files.forEach( function ( file ) { benchmarks[file] = require( path.join( __dirname, '..', file ) ); } ); // setup the complete listeners benchmarks_files.forEach( function ( file ) { var benchmark = benchmarks[file] , next_file = all.shift() , next = benchmarks[next_file]; /** * Generate a oncomplete function for the tests, either we are done or we * have more benchmarks to process. */ function complete() { if ( !next ) { console.log( '\n\nBenchmark completed in'.grey , (Date.now() - start).toString().green + ' ms'.grey ); } else { console.log( '\nStarting benchmark '.grey + next_file.yellow ); next.run(); } } // attach the listener benchmark.on( 'complete', complete ); } ); /** * Start the benchmark */ var start = Date.now(); console.log( 'Starting benchmark '.grey + first.yellow ); benchmarks[first].run();