test.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var oc = require('oc');
  2. var fs = require('fs');
  3. function normalizeLineEndings(text)
  4. {
  5. return text.replace(/\r\n/g, '\n');
  6. }
  7. function run()
  8. {
  9. var inputDir = "input";
  10. var outputDir = "output";
  11. if (!fs.existsSync(outputDir))
  12. fs.mkdirSync(outputDir);
  13. var sources = fs.readdirSync(inputDir);
  14. var failCount = 0;
  15. var start = Date.now();
  16. for(var i = 0; i < sources.length; ++i)
  17. {
  18. var source = sources[i];
  19. console.log(source + ":\t");
  20. var text = fs.readFileSync(inputDir + "/" + source, "utf8");
  21. var result = oc.compile(text);
  22. var resultName = source.replace(".ob", ".js");
  23. fs.writeFileSync(outputDir + "/" + resultName, result);
  24. var success = (normalizeLineEndings(result) == normalizeLineEndings(fs.readFileSync("expected/" + resultName, "utf8")));
  25. console.log(success ? "OK" : "Failed");
  26. if (!success)
  27. ++failCount;
  28. }
  29. console.log(sources.length + " tests" + (failCount ? ", " + failCount + " failed." : ""));
  30. var stop = Date.now();
  31. console.log("elapsed: " + (stop - start) / 1000 + " s" );
  32. if (!failCount)
  33. console.log("All OK!");
  34. }
  35. //try
  36. {
  37. run();
  38. }
  39. //catch (x)
  40. //{
  41. // console.error(x);
  42. // console.error(x.stack);
  43. //}