| #!/usr/bin/env node |
| /* globals cd, echo, exec, exit, ls, pwd, test */ |
| require('../global'); |
| var common = require('../src/common'); |
| |
| var failed = false; |
| |
| // |
| // Lint |
| // |
| var JSHINT_BIN = 'node_modules/jshint/bin/jshint'; |
| cd(__dirname + '/..'); |
| |
| if (!test('-f', JSHINT_BIN)) { |
| echo('JSHint not found. Run `npm install` in the root dir first.'); |
| exit(1); |
| } |
| |
| var jsfiles = common.expand([pwd() + '/*.js', |
| pwd() + '/scripts/*.js', |
| pwd() + '/src/*.js', |
| pwd() + '/test/*.js' |
| ]).join(' '); |
| if (exec(JSON.stringify(process.execPath)+' '+pwd()+'/'+JSHINT_BIN+' '+jsfiles).code !== 0) { |
| failed = true; |
| echo('*** JSHINT FAILED! (return code != 0)'); |
| echo(); |
| } else { |
| echo('All JSHint tests passed'); |
| echo(); |
| } |
| |
| // |
| // Unit tests |
| // |
| cd(__dirname + '/../test'); |
| ls('*.js').forEach(function(file) { |
| echo('Running test:', file); |
| if (exec(JSON.stringify(process.execPath)+' '+file).code !== 123) { // 123 avoids false positives (e.g. premature exit) |
| failed = true; |
| echo('*** TEST FAILED! (missing exit code "123")'); |
| echo(); |
| } |
| }); |
| |
| if (failed) { |
| echo(); |
| echo('*******************************************************'); |
| echo('WARNING: Some tests did not pass!'); |
| echo('*******************************************************'); |
| exit(1); |
| } else { |
| echo(); |
| echo('All tests passed.'); |
| } |