2015-04-26 17:33:05 +00:00
|
|
|
module.exports = function( grunt ) {
|
|
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
var fs = require( "fs" ),
|
|
|
|
spawnTest = require( "./lib/spawn_test.js" ),
|
|
|
|
testsDir = "./test/node_smoke_tests/",
|
2015-05-06 23:23:00 +00:00
|
|
|
nodeSmokeTests = [ "jsdom" ];
|
2015-04-26 17:33:05 +00:00
|
|
|
|
|
|
|
// Fire up all tests defined in test/node_smoke_tests/*.js in spawned sub-processes.
|
|
|
|
// All the files under test/node_smoke_tests/*.js are supposed to exit with 0 code
|
|
|
|
// on success or another one on failure. Spawning in sub-processes is
|
|
|
|
// important so that the tests & the main process don't interfere with
|
|
|
|
// each other, e.g. so that they don't share the require cache.
|
|
|
|
|
|
|
|
fs.readdirSync( testsDir )
|
|
|
|
.filter( function( testFilePath ) {
|
|
|
|
return fs.statSync( testsDir + testFilePath ).isFile();
|
|
|
|
} )
|
|
|
|
.forEach( function( testFilePath ) {
|
|
|
|
var taskName = "node_" + testFilePath.replace( /\.js$/, "" );
|
|
|
|
|
|
|
|
grunt.registerTask( taskName, function() {
|
|
|
|
spawnTest( this.async(), "test/node_smoke_tests/" + testFilePath );
|
|
|
|
} );
|
|
|
|
|
|
|
|
nodeSmokeTests.push( taskName );
|
|
|
|
} );
|
|
|
|
|
|
|
|
grunt.registerTask( "node_smoke_tests", nodeSmokeTests );
|
|
|
|
};
|