pdf.js/external/builder/test-fixtures_esprima.js
Jonas Jenwald cf00516f04 Rename the external/builder/test*.js files to make it more obvious what they test
Currently you have to open the files to be certain which tests each one will run, which we can avoid by appending the directory names to the file names of the tests themselves.
2017-01-10 14:27:05 +01:00

53 lines
1.3 KiB
JavaScript

'use strict';
require('shelljs/make');
var p2 = require('./preprocessor2.js');
var fs = require('fs');
var errors = 0;
cd(__dirname);
cd('fixtures_esprima');
ls('*-expected.*').forEach(function(expectationFilename) {
var inFilename = expectationFilename.replace('-expected', '');
var expectation = cat(expectationFilename).trim()
.replace(/__filename/g, fs.realpathSync(inFilename));
var input = fs.readFileSync(inFilename).toString();
var defines = {
TRUE: true,
FALSE: false,
OBJ: {obj: {i: 1}, j: 2},
TEXT: 'text'
};
var ctx = {
defines: defines,
rootPath: __dirname + '/../..',
saveComments: true
};
var out;
try {
out = p2.preprocessPDFJSCode(ctx, input);
} catch (e) {
out = ('Error: ' + e.message).replace(/^/gm, '//');
}
if (out !== expectation) {
echo('Assertion failed for ' + inFilename);
echo('--------------------------------------------------');
echo('EXPECTED:');
echo(expectation);
echo('--------------------------------------------------');
echo('ACTUAL');
echo(out);
echo('--------------------------------------------------');
echo();
}
});
if (errors) {
echo('Found ' + errors + ' expectation failures.');
} else {
echo('All tests completed without errors.');
}