Test suite: Memory leak in vm.runInNewContext() seems fixed. Revert 9a4b6fa3ec770a382eccc149b849cc1c3112aa53 to drastically improve tests execution time.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
diff --git a/tests/run.js b/tests/run.js
index 73c4c4a..46366cc 100644
--- a/tests/run.js
+++ b/tests/run.js
@@ -1,9 +1,9 @@
"use strict";
var TestDiscovery = require("./helper/test-discovery");
+var TestCase = require("./helper/test-case");
var path = require("path");
var argv = require("yargs").argv;
-var child_process = require("child_process");
var testSuite;
if (argv.language) {
@@ -23,41 +23,19 @@ for (var language in testSuite) {
describe("Testing language '" + language + "'", function () {
this.timeout(10000);
- // Each set of tests runs in its own child process
- var child;
- before(function () {
- child = child_process.fork(__dirname + "/run-child.js", ['--language=' + language], {
- stdio: 'inherit'
- });
- });
-
- after(function () {
- child.kill();
- });
-
testFiles.forEach(
function (filePath) {
var fileName = path.basename(filePath, path.extname(filePath));
it("– should pass test case '" + fileName + "'",
- function (done) {
+ function () {
+
+ if (path.extname(filePath) === '.test') {
+ TestCase.runTestCase(language, filePath);
+ } else {
+ TestCase.runTestsWithHooks(language, require(filePath));
+ }
- child.removeAllListeners('message');
- child.on('message', function (o) {
- // We have to delay the call,
- // otherwise the first message is received
- // over and over again.
- setTimeout(function() {
- if (o.error) {
- throw JSON.parse(o.error);
- } else if (o.success) {
- done();
- }
- }, 1);
- });
- child.send({
- filePath: filePath
- });
}
);
}