UNPKG

1.31 kBJavaScriptView Raw
1const fs = require("fs");
2const fmt = require("simple-fmt");
3const exec = require("child_process").exec;
4
5function slurp(filename) {
6 return fs.existsSync(filename) ? String(fs.readFileSync(filename)) : "";
7}
8
9const tests = fs.readdirSync("tests").filter(function(filename) {
10 return !/-out\.js$/.test(filename) && !/-stderr$/.test(filename);
11});
12
13function run(test) {
14 const noSuffix = test.slice(0, -3);
15 exec(fmt("node --harmony defs-wrapper tests/{0}", test), function(error, stdout, stderr) {
16 stderr = stderr || "";
17 stdout = stdout || "";
18 const expectedStderr = slurp(fmt("tests/{0}-stderr", noSuffix));
19 const expectedStdout = slurp(fmt("tests/{0}-out.js", noSuffix));
20
21 if (stderr !== expectedStderr) {
22 fail("stderr", stderr, expectedStderr);
23 }
24 if (stdout !== expectedStdout) {
25 fail("stdout", stdout, expectedStdout);
26 }
27
28 function fail(type, got, expected) {
29 console.log(fmt("FAILED test {0}", test));
30 console.log(fmt("\nEXPECTED {0}:", type));
31 process.stdout.write(expected);
32 console.log(fmt("\nGOT {0}:", type));
33 process.stdout.write(got);
34 console.log("---------------------------\n");
35 }
36 });
37}
38
39tests.forEach(run);