1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- "use strict";
- const builder = require("./builder.js");
- const fs = require("fs");
- const path = require("path");
- let errors = 0;
- const baseDir = path.join(__dirname, "fixtures");
- const files = fs
- .readdirSync(baseDir)
- .filter(function (name) {
- return /-expected\./.test(name);
- })
- .map(function (name) {
- return path.join(baseDir, name);
- });
- files.forEach(function (expectationFilename) {
- const inFilename = expectationFilename.replace("-expected", "");
- const expectation = fs
- .readFileSync(expectationFilename)
- .toString()
- .trim()
- .replace(/__filename/g, fs.realpathSync(inFilename));
- const outLines = [];
- const outFilename = function (line) {
- outLines.push(line);
- };
- const defines = {
- TRUE: true,
- FALSE: false,
- };
- let 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);
- }
|