From b5691051831c6f4bb8fd3cd35271674d8d430b77 Mon Sep 17 00:00:00 2001 From: Darshan Sen Date: Mon, 15 Feb 2021 20:25:17 +0530 Subject: [PATCH] test: clarify usage of tmpdir.refresh() This emphasizes that `tmpdir.refresh()` must be called only once in each test file when needed. PR-URL: https://github.com/nodejs/node/pull/37383 Reviewed-By: Rich Trott Reviewed-By: Zijian Liu Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Gireesh Punathil --- test/common/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/common/README.md b/test/common/README.md index 9bbc107dd853c5..f05308d0da3bb6 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -945,13 +945,18 @@ The realpath of the testing temporary directory. Deletes and recreates the testing temporary directory. -The first time `refresh()` runs, it adds a listener to process `'exit'` that +The first time `refresh()` runs, it adds a listener to process `'exit'` that cleans the temporary directory. Thus, every file under `tmpdir.path` needs to be closed before the test completes. A good way to do this is to add a listener to process `'beforeExit'`. If a file needs to be left open until Node.js completes, use a child process and call `refresh()` only in the parent. +It is usually only necessary to call `refresh()` once in a test file. +Avoid calling it more than once in an asynchronous context as one call +might refresh the temporary directory of a different context, causing +the test to fail somewhat mysteriously. + ## UDP pair helper The `common/udppair` module exports a function `makeUDPPair` and a class