GeezerVison is showing github.com — test: execute shell directly for refresh() · nodejs/node@de77371
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: test/common/tmpdir.js +19-8Lines changed: 19 additions & 8 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -5,17 +5,28 @@ const fs = require('fs'); |
5 | 5 | const path = require('path'); |
6 | 6 | const { pathToFileURL } = require('url'); |
7 | 7 | const { isMainThread } = require('worker_threads'); |
| 8 | +const isUnixLike = process.platform !== 'win32'; |
| 9 | +let escapePOSIXShell; |
8 | 10 |
|
9 | 11 | function rmSync(pathname, useSpawn) { |
10 | 12 | if (useSpawn) { |
11 | | - const escapedPath = pathname.replaceAll('\\', '\\\\'); |
12 | | - spawnSync( |
13 | | - process.execPath, |
14 | | - [ |
15 | | - '-e', |
16 | | - `require("fs").rmSync("${escapedPath}", { maxRetries: 3, recursive: true, force: true });`, |
17 | | - ], |
18 | | - ); |
| 13 | + if (isUnixLike) { |
| 14 | + escapePOSIXShell ??= require('./index.js').escapePOSIXShell; |
| 15 | + for (let i = 0; i < 3; i++) { |
| 16 | + const { status } = spawnSync(...escapePOSIXShell`rm -rf "${pathname}"`); |
| 17 | + if (status === 0) { |
| 18 | + break; |
| 19 | + } |
| 20 | + } |
| 21 | + } else { |
| 22 | + spawnSync( |
| 23 | + process.execPath, |
| 24 | + [ |
| 25 | + '-e', |
| 26 | + `fs.rmSync(${JSON.stringify(pathname)}, { maxRetries: 3, recursive: true, force: true });`, |
| 27 | + ], |
| 28 | + ); |
| 29 | + } |
19 | 30 | } else { |
20 | 31 | fs.rmSync(pathname, { maxRetries: 3, recursive: true, force: true }); |
21 | 32 | } |
|