test262-parser-runner
Version:
A test runner for running the ECMAScript Test Suite against a parser
37 lines (29 loc) • 942 B
JavaScript
;
const TestStream = require('test262-stream');
const runTest = function(test, parse) {
const sourceType = test.attrs.flags.module ? "module" : "script";
test.expectedError = test.attrs.negative && (test.attrs.negative.phase === "parse" || test.attrs.negative.phase === "early")
try {
parse(test.contents, { sourceType });
test.actualError = false;
} catch (err) {
test.actualError = true;
}
return test;
};
module.exports = (testDir, parse, shouldSkip) => {
const stream = new TestStream(testDir, { omitRuntime: true });
const results = [];
stream.on('data', test => {
if (shouldSkip(test)) {
results.push({skip: true});
} else {
test.file = test.file.substr(5); // Strip leading 'test/'
results.push(runTest(test, parse));
}
});
return new Promise((resolve, reject) => {
stream.on('end', () => resolve(results));
stream.on('error', reject);
});
}