Skip to content

Commit 7c79490

Browse files
committed
test: only refresh tmpDir for tests that need it
Expose `common.refreshTmpDir()` and only call it for tests that use common.tmpDir or common.PIPE. A positive side effect is the removal of a code smell where child processes were detected by the presence of `.send()`. Now each process can decide for itself if it needs to refresh tmpDir. PR-URL: #1954 Reviewed-By: Rod Vagg <[email protected]> Reviewed-By: Johan Bergström <[email protected]>
1 parent 88d7904 commit 7c79490

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+92
-77
lines changed

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ test/fixtures
44
test/**/node_modules
55
test/parallel/test-fs-non-number-arguments-throw.js
66
test/disabled
7+
test/tmp*/

test/common.js

+9-13
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,17 @@ function rmdirSync(p, originalEr) {
5151
}
5252
}
5353

54-
function refreshTmpDir() {
55-
if (!process.send) { // Not a child process
56-
try {
57-
rimrafSync(exports.tmpDir);
58-
} catch (e) {
59-
}
54+
exports.refreshTmpDir = function() {
55+
try {
56+
rimrafSync(exports.tmpDir);
57+
} catch (e) {
58+
}
6059

61-
try {
62-
fs.mkdirSync(exports.tmpDir);
63-
} catch (e) {
64-
}
60+
try {
61+
fs.mkdirSync(exports.tmpDir);
62+
} catch (e) {
6563
}
66-
}
64+
};
6765

6866
if (process.env.TEST_THREAD_ID) {
6967
// Distribute ports in parallel tests
@@ -74,8 +72,6 @@ if (process.env.TEST_THREAD_ID) {
7472
}
7573
exports.tmpDir = path.join(exports.testDir, exports.tmpDirName);
7674

77-
refreshTmpDir();
78-
7975
var opensslCli = null;
8076
var inFreeBSDJail = null;
8177
var localhostIPv4 = null;

test/fixtures/listen-on-socket-and-exit.js

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
var common = require('../common');
44
var net = require('net');
55

6+
common.refreshTmpDir();
7+
68
var server = net.createServer().listen(common.PIPE, function() {
79
console.log('child listening');
810
process.send('listening');

test/parallel/test-child-process-fork-exec-path.js

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ if (process.env.FORK) {
1515
process.exit();
1616
}
1717
else {
18+
common.refreshTmpDir();
1819
try {
1920
fs.unlinkSync(copyPath);
2021
}

test/parallel/test-cluster-http-pipe.js

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var cluster = require('cluster');
1010
var http = require('http');
1111

1212
if (cluster.isMaster) {
13+
common.refreshTmpDir();
1314
var ok = false;
1415
var worker = cluster.fork();
1516
worker.on('message', function(msg) {

test/parallel/test-cwd-enoent-repl.js

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ if (process.platform === 'sunos' || process.platform === 'win32') {
1111
}
1212

1313
var dirname = common.tmpDir + '/cwd-does-not-exist-' + process.pid;
14+
common.refreshTmpDir();
1415
fs.mkdirSync(dirname);
1516
process.chdir(dirname);
1617
fs.rmdirSync(dirname);

test/parallel/test-cwd-enoent.js

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ if (process.platform === 'sunos' || process.platform === 'win32') {
1111
}
1212

1313
var dirname = common.tmpDir + '/cwd-does-not-exist-' + process.pid;
14+
common.refreshTmpDir();
1415
fs.mkdirSync(dirname);
1516
process.chdir(dirname);
1617
fs.rmdirSync(dirname);

test/parallel/test-file-write-stream.js

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var assert = require('assert');
55
var path = require('path');
66
var fs = require('fs');
77
var fn = path.join(common.tmpDir, 'write.txt');
8+
common.refreshTmpDir();
89
var file = fs.createWriteStream(fn, {
910
highWaterMark: 10
1011
});

test/parallel/test-file-write-stream2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function removeTestFile() {
3939
}
4040

4141

42-
removeTestFile();
42+
common.refreshTmpDir();
4343

4444
// drain at 0, return false at 10.
4545
file = fs.createWriteStream(filepath, {

test/parallel/test-file-write-stream3.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function removeTestFile() {
3939
}
4040

4141

42-
removeTestFile();
42+
common.refreshTmpDir();
4343

4444

4545
function run_test_1() {

test/parallel/test-fs-access.js

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ var createFileWithPerms = function(file, mode) {
2121
fs.chmodSync(file, mode);
2222
};
2323

24+
common.refreshTmpDir();
2425
createFileWithPerms(readOnlyFile, 0o444);
2526
createFileWithPerms(readWriteFile, 0o666);
2627

test/parallel/test-fs-append-file-sync.js

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ var data = '南越国是前203年至前111年存在于岭南地区的一个国
1515
'历经五代君主。南越国是岭南地区的第一个有记载的政权国家,采用封建制和郡县制并存的制度,' +
1616
'它的建立保证了秦末乱世岭南地区社会秩序的稳定,有效的改善了岭南地区落后的政治、##济现状。\n';
1717

18+
common.refreshTmpDir();
19+
1820
// test that empty file will be created and have content added
1921
var filename = join(common.tmpDir, 'append-sync.txt');
2022

test/parallel/test-fs-append-file.js

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ var s = '南越国是前203年至前111年存在于岭南地区的一个国家
2121

2222
var ncallbacks = 0;
2323

24+
common.refreshTmpDir();
25+
2426
// test that empty file will be created and have content added
2527
fs.appendFile(filename, s, function(e) {
2628
if (e) throw e;

test/parallel/test-fs-chmod.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,7 @@ fs.open(file2, 'a', function(err, fd) {
111111
if (fs.lchmod) {
112112
var link = path.join(common.tmpDir, 'symbolic-link');
113113

114-
try {
115-
fs.unlinkSync(link);
116-
} catch (er) {}
114+
common.refreshTmpDir();
117115
fs.symlinkSync(file2, link);
118116

119117
fs.lchmod(link, mode_async, function(err) {

test/parallel/test-fs-long-path.js

+1-6
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,7 @@ var fileNameLen = Math.max(260 - common.tmpDir.length - 1, 1);
1111
var fileName = path.join(common.tmpDir, new Array(fileNameLen + 1).join('x'));
1212
var fullPath = path.resolve(fileName);
1313

14-
try {
15-
fs.unlinkSync(fullPath);
16-
}
17-
catch (e) {
18-
// Ignore.
19-
}
14+
common.refreshTmpDir();
2015

2116
console.log({
2217
filenameLength: fileName.length,

test/parallel/test-fs-mkdir.js

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ function unlink(pathname) {
1010
}
1111
}
1212

13+
common.refreshTmpDir();
14+
1315
(function() {
1416
var ncalls = 0;
1517
var pathname = common.tmpDir + '/test1';

test/parallel/test-fs-read-stream-fd.js

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var input = 'hello world';
1010
var output = '';
1111
var fd, stream;
1212

13+
common.refreshTmpDir();
1314
fs.writeFileSync(file, input);
1415
fd = fs.openSync(file, 'r');
1516

test/parallel/test-fs-readfile-pipe-large.js

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var fs = require('fs');
1515

1616
var filename = path.join(common.tmpDir, '/readfile_pipe_large_test.txt');
1717
var dataExpected = new Array(1000000).join('a');
18+
common.refreshTmpDir();
1819
fs.writeFileSync(filename, dataExpected);
1920

2021
if (process.argv[2] === 'child') {

test/parallel/test-fs-readfilesync-pipe-large.js

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var fs = require('fs');
1515

1616
var filename = path.join(common.tmpDir, '/readfilesync_pipe_large_test.txt');
1717
var dataExpected = new Array(1000000).join('a');
18+
common.refreshTmpDir();
1819
fs.writeFileSync(filename, dataExpected);
1920

2021
if (process.argv[2] === 'child') {

test/parallel/test-fs-realpath.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ var async_completed = 0, async_expected = 0, unlink = [];
88
var isWindows = process.platform === 'win32';
99
var skipSymlinks = false;
1010

11+
common.refreshTmpDir();
12+
1113
var root = '/';
1214
if (isWindows) {
1315
// something like "C:\\"
@@ -575,9 +577,6 @@ function runTest() {
575577
var tmpDirs = ['cycles', 'cycles/folder'];
576578
tmpDirs.forEach(function(t) {
577579
t = tmp(t);
578-
var s;
579-
try { s = fs.statSync(t); } catch (ex) {}
580-
if (s) return;
581580
fs.mkdirSync(t, 0o700);
582581
});
583582
fs.writeFileSync(tmp('cycles/root.js'), "console.error('roooot!');");

test/parallel/test-fs-sir-writes-alot.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ var join = require('path').join;
66

77
var filename = join(common.tmpDir, 'out.txt');
88

9-
try {
10-
fs.unlinkSync(filename);
11-
} catch (e) {
12-
// might not exist, that's okay.
13-
}
9+
common.refreshTmpDir();
1410

1511
var fd = fs.openSync(filename, 'w');
1612

test/parallel/test-fs-stream-double-close.js

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ var common = require('../common');
33
var assert = require('assert');
44
var fs = require('fs');
55

6+
common.refreshTmpDir();
7+
68
test1(fs.createReadStream(__filename));
79
test2(fs.createReadStream(__filename));
810
test3(fs.createReadStream(__filename));

test/parallel/test-fs-symlink-dir-junction-relative.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@ var linkPath2 = path.join(common.tmpDir, 'junction2');
1313
var linkTarget = path.join(common.fixturesDir);
1414
var linkData = '../fixtures';
1515

16-
// Prepare.
17-
try { fs.mkdirSync(common.tmpDir); } catch (e) {}
18-
try { fs.unlinkSync(linkPath1); } catch (e) {}
19-
try { fs.unlinkSync(linkPath2); } catch (e) {}
16+
common.refreshTmpDir();
2017

2118
// Test fs.symlink()
2219
fs.symlink(linkData, linkPath1, 'junction', function(err) {

test/parallel/test-fs-symlink-dir-junction.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ var expected_tests = 4;
1010
var linkData = path.join(common.fixturesDir, 'cycles/');
1111
var linkPath = path.join(common.tmpDir, 'cycles_link');
1212

13-
// Delete previously created link
14-
try {
15-
fs.unlinkSync(linkPath);
16-
} catch (e) {}
13+
common.refreshTmpDir();
1714

1815
console.log('linkData: ' + linkData);
1916
console.log('linkPath: ' + linkPath);

test/parallel/test-fs-symlink.js

+2-10
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,14 @@ var expected_tests = 2;
99

1010
var is_windows = process.platform === 'win32';
1111

12+
common.refreshTmpDir();
13+
1214
var runtest = function(skip_symlinks) {
1315
if (!skip_symlinks) {
1416
// test creating and reading symbolic link
1517
var linkData = path.join(common.fixturesDir, '/cycles/root.js');
1618
var linkPath = path.join(common.tmpDir, 'symlink1.js');
1719

18-
// Delete previously created link
19-
try {
20-
fs.unlinkSync(linkPath);
21-
} catch (e) {}
22-
2320
fs.symlink(linkData, linkPath, function(err) {
2421
if (err) throw err;
2522
console.log('symlink done');
@@ -36,11 +33,6 @@ var runtest = function(skip_symlinks) {
3633
var srcPath = path.join(common.fixturesDir, 'cycles', 'root.js');
3734
var dstPath = path.join(common.tmpDir, 'link1.js');
3835

39-
// Delete previously created link
40-
try {
41-
fs.unlinkSync(dstPath);
42-
} catch (e) {}
43-
4436
fs.link(srcPath, dstPath, function(err) {
4537
if (err) throw err;
4638
console.log('hard link done');

test/parallel/test-fs-truncate-GH-6233.js

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ var fs = require('fs');
55

66
var filename = common.tmpDir + '/truncate-file.txt';
77

8+
common.refreshTmpDir();
9+
810
// Synchronous test.
911
(function() {
1012
fs.writeFileSync(filename, '0123456789');

test/parallel/test-fs-truncate-fd.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ var assert = require('assert');
44
var path = require('path');
55
var fs = require('fs');
66
var tmp = common.tmpDir;
7-
if (!fs.existsSync(tmp))
8-
fs.mkdirSync(tmp);
7+
common.refreshTmpDir();
98
var filename = path.resolve(tmp, 'truncate-file.txt');
109

1110
var success = 0;

test/parallel/test-fs-truncate.js

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ var filename = path.resolve(tmp, 'truncate-file.txt');
88
var data = new Buffer(1024 * 16);
99
data.fill('x');
1010

11+
common.refreshTmpDir();
12+
1113
var stat;
1214

1315
// truncateSync

test/parallel/test-fs-write-buffer.js

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ var path = require('path'),
1010
writeCalled = 0;
1111

1212

13+
common.refreshTmpDir();
14+
1315
fs.open(filename, 'w', 0o644, function(err, fd) {
1416
openCalled++;
1517
if (err) throw err;

test/parallel/test-fs-write-file-buffer.js

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ var data = [
2525

2626
data = data.join('\n');
2727

28+
common.refreshTmpDir();
29+
2830
var buf = new Buffer(data, 'base64');
2931
fs.writeFileSync(join(common.tmpDir, 'test.jpg'), buf);
3032

test/parallel/test-fs-write-file-sync.js

+2-18
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ if (isWindows) {
2626
mode = 0o755;
2727
}
2828

29+
common.refreshTmpDir();
30+
2931
// Test writeFileSync
3032
var file1 = path.join(common.tmpDir, 'testWriteFileSync.txt');
31-
removeFile(file1);
3233

3334
fs.writeFileSync(file1, '123', {mode: mode});
3435

@@ -37,11 +38,8 @@ assert.equal('123', content);
3738

3839
assert.equal(mode, fs.statSync(file1).mode & 0o777);
3940

40-
removeFile(file1);
41-
4241
// Test appendFileSync
4342
var file2 = path.join(common.tmpDir, 'testAppendFileSync.txt');
44-
removeFile(file2);
4543

4644
fs.appendFileSync(file2, 'abc', {mode: mode});
4745

@@ -50,23 +48,9 @@ assert.equal('abc', content);
5048

5149
assert.equal(mode, fs.statSync(file2).mode & mode);
5250

53-
removeFile(file2);
54-
5551
// Verify that all opened files were closed.
5652
assert.equal(0, openCount);
5753

58-
// Removes a file if it exists.
59-
function removeFile(file) {
60-
try {
61-
if (isWindows)
62-
fs.chmodSync(file, 0o666);
63-
fs.unlinkSync(file);
64-
} catch (err) {
65-
if (err && err.code !== 'ENOENT')
66-
throw err;
67-
}
68-
}
69-
7054
function openSync() {
7155
openCount++;
7256
return fs._openSync.apply(fs, arguments);

test/parallel/test-fs-write-file.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ var assert = require('assert');
44
var fs = require('fs');
55
var join = require('path').join;
66

7+
common.refreshTmpDir();
8+
79
var filename = join(common.tmpDir, 'test.txt');
810

911
common.error('writing to ' + filename);

0 commit comments

Comments
 (0)