diff options
Diffstat (limited to 'cli/tests/node_compat/test/common/tmpdir.js')
-rw-r--r-- | cli/tests/node_compat/test/common/tmpdir.js | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/cli/tests/node_compat/test/common/tmpdir.js b/cli/tests/node_compat/test/common/tmpdir.js deleted file mode 100644 index 886c4a107..000000000 --- a/cli/tests/node_compat/test/common/tmpdir.js +++ /dev/null @@ -1,79 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually. - -'use strict'; - -const fs = require('fs'); -const path = require('path'); -const { isMainThread } = require('worker_threads'); - -function rmSync(pathname) { - fs.rmSync(pathname, { maxRetries: 3, recursive: true, force: true }); -} - -const testRoot = process.env.NODE_TEST_DIR ? - fs.realpathSync(process.env.NODE_TEST_DIR) : path.resolve(__dirname, '..'); - -// Using a `.` prefixed name, which is the convention for "hidden" on POSIX, -// gets tools to ignore it by default or by simple rules, especially eslint. -const tmpdirName = '.tmp.' + - (process.env.TEST_SERIAL_ID || process.env.TEST_THREAD_ID || '0'); -const tmpPath = path.join(testRoot, tmpdirName); - -let firstRefresh = true; -function refresh() { - rmSync(tmpPath); - fs.mkdirSync(tmpPath); - - if (firstRefresh) { - firstRefresh = false; - // Clean only when a test uses refresh. This allows for child processes to - // use the tmpdir and only the parent will clean on exit. - process.on('exit', onexit); - } -} - -function onexit() { - // Change directory to avoid possible EBUSY - if (isMainThread) - process.chdir(testRoot); - - try { - rmSync(tmpPath); - } catch (e) { - console.error('Can\'t clean tmpdir:', tmpPath); - - const files = fs.readdirSync(tmpPath); - console.error('Files blocking:', files); - - if (files.some((f) => f.startsWith('.nfs'))) { - // Warn about NFS "silly rename" - console.error('Note: ".nfs*" might be files that were open and ' + - 'unlinked but not closed.'); - console.error('See http://nfs.sourceforge.net/#faq_d2 for details.'); - } - - console.error(); - throw e; - } -} - -function resolve(...paths) { - return path.resolve(tmpPath, ...paths); -} - -function hasEnoughSpace(size) { - const { bavail, bsize } = fs.statfsSync(tmpPath); - return bavail >= Math.ceil(size / bsize); -} - -module.exports = { - path: tmpPath, - refresh, - hasEnoughSpace, - resolve, -}; |