52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
var driver = require("./driver.js");
|
|
require("./tests.js");
|
|
require("./tests-harmony.js");
|
|
|
|
var stats, modes = {
|
|
Normal: {
|
|
config: {
|
|
parse: (typeof require === "undefined" ? window.acorn : require("../acorn.js")).parse
|
|
}
|
|
},
|
|
Loose: {
|
|
config: {
|
|
parse: (typeof require === "undefined") ? window.acorn_loose : require("../acorn_loose").parse_dammit,
|
|
loose: true
|
|
}
|
|
}
|
|
};
|
|
|
|
function report(state, code, message) {
|
|
if (state != "ok") {++stats.failed; console.log(code, message);}
|
|
++stats.testsRun;
|
|
}
|
|
|
|
for (var name in modes) {
|
|
var mode = modes[name];
|
|
stats = mode.stats = {testsRun: 0, failed: 0};
|
|
var t0 = +new Date;
|
|
driver.runTests(mode.config, report);
|
|
mode.stats.duration = +new Date - t0;
|
|
}
|
|
|
|
function outputStats(name, stats) {
|
|
console.log(name + ": " + stats.testsRun + " tests run in " + stats.duration + "ms; " +
|
|
(stats.failed ? stats.failed + " failures." : "all passed."));
|
|
}
|
|
|
|
var total = {testsRun: 0, failed: 0, duration: 0};
|
|
|
|
for (var name in modes) {
|
|
var stats = modes[name].stats;
|
|
outputStats(name + " parser", stats);
|
|
for (var key in stats) total[key] += stats[key];
|
|
}
|
|
|
|
outputStats("Total", total);
|
|
|
|
if (total.failed) {
|
|
process.stdout.write("", function() {
|
|
process.exit(1);
|
|
});
|
|
}
|