pdf.js/external/builder/test-fixtures.js
2017-05-04 08:24:44 -05:00

57 lines
1.5 KiB
JavaScript

'use strict';
var builder = require('./builder');
var fs = require('fs');
var path = require('path');
var errors = 0;
var baseDir = path.join(__dirname, 'fixtures');
var files = fs.readdirSync(baseDir).filter(function (name) {
return /-expected\./.test(name);
}).map(function (name) {
return path.join(baseDir, name);
});
files.forEach(function(expectationFilename) {
var inFilename = expectationFilename.replace('-expected', '');
var expectation = fs.readFileSync(expectationFilename).toString().trim()
.replace(/__filename/g, fs.realpathSync(inFilename));
var outLines = [];
var outFilename = function(line) {
outLines.push(line);
};
var defines = {
TRUE: true,
FALSE: false,
};
var out;
try {
builder.preprocess(inFilename, outFilename, defines);
out = outLines.join('\n').trim();
} catch (e) {
out = ('Error: ' + e.message).replace(/^/gm, '//');
}
if (out !== expectation) {
errors++;
console.log('Assertion failed for ' + inFilename);
console.log('--------------------------------------------------');
console.log('EXPECTED:');
console.log(expectation);
console.log('--------------------------------------------------');
console.log('ACTUAL');
console.log(out);
console.log('--------------------------------------------------');
console.log();
}
});
if (errors) {
console.error('Found ' + errors + ' expectation failures.');
process.exit(1);
} else {
console.log('All tests completed without errors.');
process.exit(0);
}