aboutsummaryrefslogtreecommitdiff
path: root/test/cli/run/require-cache-bug-leak-fixture.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/cli/run/require-cache-bug-leak-fixture.js')
-rw-r--r--test/cli/run/require-cache-bug-leak-fixture.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/cli/run/require-cache-bug-leak-fixture.js b/test/cli/run/require-cache-bug-leak-fixture.js
new file mode 100644
index 000000000..f3b334d26
--- /dev/null
+++ b/test/cli/run/require-cache-bug-leak-fixture.js
@@ -0,0 +1,27 @@
+const dest = require.resolve("./require-cache-bug-leak-fixture-large-ast.js");
+
+if (typeof Bun !== "undefined") Bun.gc(true);
+for (let i = 0; i < 5; i++) {
+ delete require.cache[dest];
+ require(dest);
+}
+if (typeof Bun !== "undefined") Bun.gc(true);
+const baseline = process.memoryUsage.rss();
+
+for (let i = 0; i < 50; i++) {
+ delete require.cache[dest];
+ require(dest);
+}
+if (typeof Bun !== "undefined") Bun.gc(true);
+
+setTimeout(() => {
+ let diff = process.memoryUsage.rss() - baseline;
+ diff = (diff / 1024 / 1024) | 0;
+ console.log({ leaked: diff + " MB" });
+ if (diff > 120) {
+ console.log("\n--fail--\n");
+ process.exit(1);
+ } else {
+ console.log("\n--pass--\n");
+ }
+}, 16);