#!/usr/bin/env node /* -*- Mode: js; js-indent-level: 2; -*- */ /*
* Copyright 2011 Mozilla Foundation and contributors * Licensed under the New BSD license. See LICENSE or: * http://opensource.org/licenses/BSD-3-Clause */
var assert = require('assert'); var fs = require('fs'); var path = require('path'); var util = require('./source-map/util');
function run(tests) {
var total = 0; var passed = 0; for (var i = 0; i < tests.length; i++) { for (var k in tests[i].testCase) { if (/^test/.test(k)) { total++; try { tests[i].testCase[k](assert, util); passed++; } catch (e) { console.log('FAILED ' + tests[i].name + ': ' + k + '!'); console.log(e.stack); } } } } console.log(''); console.log(passed + ' / ' + total + ' tests passed.'); console.log(''); return total - passed;
}
function isTestFile(f) {
var testToRun = process.argv[2]; return testToRun ? path.basename(testToRun) === f : /^test\-.*?\.js/.test(f);
}
function toModule(f) {
return './source-map/' + f.replace(/\.js$/, '');
}
var requires = fs.readdirSync(path.join(__dirname, 'source-map'))
.filter(isTestFile) .map(toModule);
var code = run(requires.map(require).map(function (mod, i) {
return { name: requires[i], testCase: mod };
}));
process.exit(code);