minimise code changes

This commit is contained in:
alexlamsl 2017-03-16 12:50:05 +08:00
parent c35069e80b
commit 4d8e03b719

View File

@ -9,25 +9,26 @@ var assert = require("assert");
var vm = require("vm"); var vm = require("vm");
var tests_dir = path.dirname(module.filename); var tests_dir = path.dirname(module.filename);
var failures = 0;
var failed_files = {};
run_compress_tests(function(failures, failed_files) { run_compress_tests();
if (failures) { if (failures) {
console.error("\n!!! Failed " + failures + " test cases."); console.error("\n!!! Failed " + failures + " test cases.");
console.error("!!! " + Object.keys(failed_files).join(", ")); console.error("!!! " + Object.keys(failed_files).join(", "));
process.exit(1); process.exit(1);
} }
var mocha_tests = require("./mocha.js"); var mocha_tests = require("./mocha.js");
mocha_tests(); mocha_tests();
var run_sourcemaps_tests = require('./sourcemaps'); var run_sourcemaps_tests = require('./sourcemaps');
run_sourcemaps_tests(); run_sourcemaps_tests();
var run_ast_conversion_tests = require("./mozilla-ast"); var run_ast_conversion_tests = require("./mozilla-ast");
run_ast_conversion_tests({ run_ast_conversion_tests({
iterations: 1000 iterations: 1000
});
}); });
/* -----[ utils ]----- */ /* -----[ utils ]----- */
@ -79,20 +80,13 @@ function as_toplevel(input, mangle_options) {
return toplevel; return toplevel;
} }
function run_compress_tests(done) { function run_compress_tests() {
var failures = 0;
var failed_files = {};
var dir = test_directory("compress"); var dir = test_directory("compress");
log_directory("compress"); log_directory("compress");
var files = find_test_files(dir); var files = find_test_files(dir);
!function test_file() { function test_file(file) {
var file = files.shift();
if (!file) return done(failures, failed_files);
log_start_file(file); log_start_file(file);
var tests = parse_test(path.resolve(dir, file)); function test_case(test) {
!function test_case() {
var test = tests.shift();
if (!test) return test_file();
log_test(test.name); log_test(test.name);
U.base54.reset(); U.base54.reset();
var options = U.defaults(test.options, { var options = U.defaults(test.options, {
@ -215,9 +209,15 @@ function run_compress_tests(done) {
} }
} }
} }
test_case(); }
}(); var tests = parse_test(path.resolve(dir, file));
}(); for (var i in tests) if (tests.hasOwnProperty(i)) {
test_case(tests[i]);
}
}
files.forEach(function(file){
test_file(file);
});
} }
function parse_test(file) { function parse_test(file) {
@ -232,7 +232,7 @@ function parse_test(file) {
console.log(e); console.log(e);
throw e; throw e;
} }
var tests = Object.create(null); var tests = {};
var tw = new U.TreeWalker(function(node, descend){ var tw = new U.TreeWalker(function(node, descend){
if (node instanceof U.AST_LabeledStatement if (node instanceof U.AST_LabeledStatement
&& tw.parent() instanceof U.AST_Toplevel) { && tw.parent() instanceof U.AST_Toplevel) {
@ -246,9 +246,7 @@ function parse_test(file) {
if (!(node instanceof U.AST_Toplevel)) croak(node); if (!(node instanceof U.AST_Toplevel)) croak(node);
}); });
ast.walk(tw); ast.walk(tw);
return Object.keys(tests).map(function(name) { return tests;
return tests[name];
});
function croak(node) { function croak(node) {
throw new Error(tmpl("Can't understand test file {file} [{line},{col}]\n{code}", { throw new Error(tmpl("Can't understand test file {file} [{line},{col}]\n{code}", {