Skip to content

Commit 0a0bb58

Browse files
committed
Commonize duplicated code
1 parent 327ae0a commit 0a0bb58

11 files changed

Lines changed: 45 additions & 182 deletions

test/common.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,3 +453,26 @@ exports.fileExists = function(pathname) {
453453
return false;
454454
}
455455
};
456+
457+
exports.runTestInsideWorker = function(testFilePath) {
458+
const Worker = require("worker");
459+
return new Promise(function(resolve, reject) {
460+
var worker = new Worker(testFilePath, {keepAlive: false});
461+
worker.on('exit', function(exitCode) {
462+
if (exitCode === 0)
463+
resolve();
464+
else
465+
reject(new Error(util.format(
466+
'%s exited with code %s', testFile, exitCode)));
467+
});
468+
469+
worker.on('error', function(e) {
470+
reject(new Error(util.format(
471+
'Running %s inside worker failed:\n%s', testFilePath, e.stack)));
472+
});
473+
});
474+
};
475+
476+
process.on('unhandledRejection', function(e) {
477+
throw e;
478+
});

test/parallel/test-util-inspect.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,10 @@ assert.equal(util.inspect(map, true),
260260

261261
// test Promise
262262
assert.equal(util.inspect(Promise.resolve(3)), 'Promise { 3 }');
263-
assert.equal(util.inspect(Promise.reject(3)), 'Promise { <rejected> 3 }');
263+
var rejectedPromise = Promise.reject(3);
264+
// Handle rejection.
265+
rejectedPromise.catch(function(){});
266+
assert.equal(util.inspect(rejectedPromise), 'Promise { <rejected> 3 }');
264267
assert.equal(util.inspect(new Promise(function() {})), 'Promise { <pending> }');
265268
var promise = Promise.resolve('foo');
266269
promise.bar = 42;

test/workers/test-child-process.js

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89
var tests = [
910
'test/parallel/test-child-process-buffering.js',
@@ -52,33 +53,14 @@ var tests = [
5253
'test/parallel/test-child-process-stdout-flush.js'
5354
];
5455

55-
process.on('unhandledRejection', function(e) {
56-
throw e;
57-
});
58-
5956
var parallelism = 4;
6057
var testsPerThread = Math.ceil(tests.length / parallelism);
6158
for (var i = 0; i < parallelism; ++i) {
6259
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
6360
var cur = Promise.resolve();
6461
shareOfTests.forEach(function(testFile) {
6562
cur = cur.then(function() {
66-
return runTestInsideWorker(testFile);
67-
});
68-
});
69-
}
70-
71-
function runTestInsideWorker(testFile) {
72-
return new Promise(function(resolve, reject) {
73-
console.log(util.format('executing %s', testFile));
74-
var worker = new Worker(testFile, {keepAlive: false});
75-
worker.on('exit', function(exitCode) {
76-
if (exitCode === 0)
77-
resolve();
78-
else
79-
reject(new Error(util.format(
80-
'%s exited with code %s', testFile, exitCode)));
63+
return common.runTestInsideWorker(testFile);
8164
});
8265
});
8366
}
84-

test/workers/test-crypto.js

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89
// When using OpenSSL this test should put the locking_callback to good use
910
var tests = [
@@ -30,33 +31,14 @@ var tests = [
3031
'test/parallel/test-crypto-stream.js'
3132
];
3233

33-
process.on('unhandledRejection', function(e) {
34-
throw e;
35-
});
36-
3734
var parallelism = 4;
3835
var testsPerThread = Math.ceil(tests.length / parallelism);
3936
for (var i = 0; i < parallelism; ++i) {
4037
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
4138
var cur = Promise.resolve();
4239
shareOfTests.forEach(function(testFile) {
4340
cur = cur.then(function() {
44-
return runTestInsideWorker(testFile);
45-
});
46-
});
47-
}
48-
49-
function runTestInsideWorker(testFile) {
50-
return new Promise(function(resolve, reject) {
51-
console.log(util.format('executing %s', testFile));
52-
var worker = new Worker(testFile, {keepAlive: false});
53-
worker.on('exit', function(exitCode) {
54-
if (exitCode === 0)
55-
resolve();
56-
else
57-
reject(new Error(util.format(
58-
'%s exited with code %s', testFile, exitCode)));
41+
return common.runTestInsideWorker(testFile);
5942
});
6043
});
6144
}
62-

test/workers/test-domain.js

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89

910
var tests = [
@@ -24,33 +25,14 @@ var tests = [
2425
'test/parallel/test-domain-timers.js'
2526
];
2627

27-
process.on('unhandledRejection', function(e) {
28-
throw e;
29-
});
30-
3128
var parallelism = 4;
3229
var testsPerThread = Math.ceil(tests.length / parallelism);
3330
for (var i = 0; i < parallelism; ++i) {
3431
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
3532
var cur = Promise.resolve();
3633
shareOfTests.forEach(function(testFile) {
3734
cur = cur.then(function() {
38-
return runTestInsideWorker(testFile);
39-
});
40-
});
41-
}
42-
43-
function runTestInsideWorker(testFile) {
44-
return new Promise(function(resolve, reject) {
45-
console.log(util.format('executing %s', testFile));
46-
var worker = new Worker(testFile, {keepAlive: false});
47-
worker.on('exit', function(exitCode) {
48-
if (exitCode === 0)
49-
resolve();
50-
else
51-
reject(new Error(util.format(
52-
'%s exited with code %s', testFile, exitCode)));
35+
return common.runTestInsideWorker(testFile);
5336
});
5437
});
5538
}
56-

test/workers/test-fs.js

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89
var tests = [
910
'test/parallel/test-domain-implicit-fs.js',
@@ -64,33 +65,14 @@ var tests = [
6465
'test/parallel/test-fs-write-sync.js'
6566
];
6667

67-
process.on('unhandledRejection', function(e) {
68-
throw e;
69-
});
70-
7168
var parallelism = 4;
7269
var testsPerThread = Math.ceil(tests.length / parallelism);
7370
for (var i = 0; i < parallelism; ++i) {
7471
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
7572
var cur = Promise.resolve();
7673
shareOfTests.forEach(function(testFile) {
7774
cur = cur.then(function() {
78-
return runTestInsideWorker(testFile);
79-
});
80-
});
81-
}
82-
83-
function runTestInsideWorker(testFile) {
84-
return new Promise(function(resolve, reject) {
85-
console.log(util.format('executing %s', testFile));
86-
var worker = new Worker(testFile, {keepAlive: false});
87-
worker.on('exit', function(exitCode) {
88-
if (exitCode === 0)
89-
resolve();
90-
else
91-
reject(new Error(util.format(
92-
'%s exited with code %s', testFile, exitCode)));
75+
return common.runTestInsideWorker(testFile);
9376
});
9477
});
9578
}
96-

test/workers/test-memory-leak.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ if (process.isMainInstance) {
77
var assert = require('assert');
88
var util = require('util');
99
var Worker = require('worker');
10+
var common = require('../common');
1011
var checks = 0;
1112

1213
var rss = function() {
@@ -20,21 +21,10 @@ if (process.isMainInstance) {
2021
var promises = [];
2122
var k = 4;
2223
while(k--)
23-
promises.push(runWorker());
24+
promises.push(common.runTestInsideWorker(__filename));
2425
return Promise.all(promises);
2526
}).then(function() {
2627
console.log(rss());
2728
});
2829
}
2930
}
30-
31-
process.on('unhandledRejection', function(e) {
32-
throw e;
33-
});
34-
35-
36-
function runWorker() {
37-
return new Promise(function(resolve) {
38-
new Worker(__filename, {keepAlive: false}).on('exit', resolve);
39-
});
40-
}

test/workers/test-process.js

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89

910
var tests = [
@@ -29,36 +30,14 @@ var tests = [
2930
'test/parallel/test-process-wrap.js'
3031
];
3132

32-
process.on('unhandledRejection', function(e) {
33-
throw e;
34-
});
35-
3633
var parallelism = 4;
3734
var testsPerThread = Math.ceil(tests.length / parallelism);
3835
for (var i = 0; i < parallelism; ++i) {
3936
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
4037
var cur = Promise.resolve();
4138
shareOfTests.forEach(function(testFile) {
4239
cur = cur.then(function() {
43-
return runTestInsideWorker(testFile);
44-
});
45-
});
46-
}
47-
48-
function runTestInsideWorker(testFile) {
49-
return new Promise(function(resolve, reject) {
50-
console.log(util.format('executing %s', testFile));
51-
var worker = new Worker(testFile, {keepAlive: false});
52-
worker.on('error', function(e) {
53-
console.error(testFile + ' failed');
54-
reject(e);
55-
});
56-
worker.on('exit', function(exitCode) {
57-
if (exitCode === 0)
58-
resolve();
59-
else
60-
reject(new Error(util.format(
61-
'%s exited with code %s', testFile, exitCode)));
40+
return common.runTestInsideWorker(testFile);
6241
});
6342
});
6443
}

test/workers/test-stream.js

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89

910
var tests = [
@@ -53,36 +54,14 @@ var tests = [
5354
'test/parallel/test-stream-writev.js'
5455
];
5556

56-
process.on('unhandledRejection', function(e) {
57-
throw e;
58-
});
59-
6057
var parallelism = 4;
6158
var testsPerThread = Math.ceil(tests.length / parallelism);
6259
for (var i = 0; i < parallelism; ++i) {
6360
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
6461
var cur = Promise.resolve();
6562
shareOfTests.forEach(function(testFile) {
6663
cur = cur.then(function() {
67-
return runTestInsideWorker(testFile);
68-
});
69-
});
70-
}
71-
72-
function runTestInsideWorker(testFile) {
73-
return new Promise(function(resolve, reject) {
74-
console.log(util.format('executing %s', testFile));
75-
var worker = new Worker(testFile, {keepAlive: false});
76-
worker.on('error', function(e) {
77-
console.error(testFile + ' failed');
78-
reject(e);
79-
});
80-
worker.on('exit', function(exitCode) {
81-
if (exitCode === 0)
82-
resolve();
83-
else
84-
reject(new Error(util.format(
85-
'%s exited with code %s', testFile, exitCode)));
64+
return common.runTestInsideWorker(testFile);
8665
});
8766
});
8867
}

test/workers/test-vm.js

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var assert = require('assert');
55
var util = require('util');
66
var Worker = require('worker');
7+
var common = require('../common');
78
var checks = 0;
89

910
var tests = [
@@ -32,36 +33,14 @@ var tests = [
3233
'test/parallel/test-vm-timeout.js'
3334
];
3435

35-
process.on('unhandledRejection', function(e) {
36-
throw e;
37-
});
38-
3936
var parallelism = 4;
4037
var testsPerThread = Math.ceil(tests.length / parallelism);
4138
for (var i = 0; i < parallelism; ++i) {
4239
var shareOfTests = tests.slice(i * testsPerThread, (i + 1) * testsPerThread);
4340
var cur = Promise.resolve();
4441
shareOfTests.forEach(function(testFile) {
4542
cur = cur.then(function() {
46-
return runTestInsideWorker(testFile);
47-
});
48-
});
49-
}
50-
51-
function runTestInsideWorker(testFile) {
52-
return new Promise(function(resolve, reject) {
53-
console.log(util.format('executing %s', testFile));
54-
var worker = new Worker(testFile, {keepAlive: false});
55-
worker.on('error', function(e) {
56-
console.error(testFile + ' failed');
57-
reject(e);
58-
});
59-
worker.on('exit', function(exitCode) {
60-
if (exitCode === 0)
61-
resolve();
62-
else
63-
reject(new Error(util.format(
64-
'%s exited with code %s', testFile, exitCode)));
43+
return common.runTestInsideWorker(testFile);
6544
});
6645
});
6746
}

0 commit comments

Comments
 (0)