Skip to content

Commit

Permalink
test: use fs rimraf to refresh tmpdir
Browse files Browse the repository at this point in the history
Now that the functionality is built into core, use it to
refresh the test suite's tmpdir.

PR-URL: #30569
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Ben Coe <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
  • Loading branch information
cjihrig authored and targos committed Jan 14, 2020
1 parent fb2253e commit b6688ef
Showing 1 changed file with 1 addition and 47 deletions.
48 changes: 1 addition & 47 deletions test/common/tmpdir.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,53 +35,7 @@ function rimrafSync(pathname, { spawn = true } = {}) {
}
}

try {
if (st.isDirectory())
rmdirSync(pathname, null);
else
fs.unlinkSync(pathname);
} catch (e) {
debug(e);
switch (e.code) {
case 'ENOENT':
// It's not there anymore. Work is done. Exiting.
return;

case 'EPERM':
// This can happen, try again with `rmdirSync`.
break;

case 'EISDIR':
// Got 'EISDIR' even after testing `st.isDirectory()`...
// Try again with `rmdirSync`.
break;

default:
throw e;
}
rmdirSync(pathname, e);
}
}

function rmdirSync(p, originalEr) {
try {
fs.rmdirSync(p);
} catch (e) {
if (e.code === 'ENOTDIR')
throw originalEr;
if (e.code === 'ENOTEMPTY' || e.code === 'EEXIST' || e.code === 'EPERM') {
const enc = process.platform === 'linux' ? 'buffer' : 'utf8';
fs.readdirSync(p, enc).forEach((f) => {
if (f instanceof Buffer) {
const buf = Buffer.concat([Buffer.from(p), Buffer.from(path.sep), f]);
rimrafSync(buf);
} else {
rimrafSync(path.join(p, f));
}
});
fs.rmdirSync(p);
}
}
fs.rmdirSync(pathname, { recursive: true, maxRetries: 5 });
}

const testRoot = process.env.NODE_TEST_DIR ?
Expand Down

0 comments on commit b6688ef

Please sign in to comment.