From c7a2f05c78efc863688aac6e139b0209930aa367 Mon Sep 17 00:00:00 2001 From: Christian Aurich Date: Wed, 9 Sep 2026 23:11:40 -0300 Subject: [PATCH] test: deflake node-api test-free-called `node-api/test_worker_buffer_callback/test-free-called` checks that `getFreeCallCount()` is 0 on a line that runs after `new Worker()`. The worker thread can load the addon and run its finalizer before the main thread reaches that line, in which case the counter is already 1 and the assertion fails. The zero check is only a baseline, so it does not need the worker to exist. Move it above the worker creation. The equivalent test under test/addons/worker-buffer-callback was changed the same way in 64f7d0e0bd04. Signed-off-by: Christian Aurich --- test/node-api/test_worker_buffer_callback/test-free-called.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/node-api/test_worker_buffer_callback/test-free-called.js b/test/node-api/test_worker_buffer_callback/test-free-called.js index 2a3cc9e47c22..1d2b43daa8cc 100644 --- a/test/node-api/test_worker_buffer_callback/test-free-called.js +++ b/test/node-api/test_worker_buffer_callback/test-free-called.js @@ -6,12 +6,13 @@ const { Worker } = require('worker_threads'); const binding = path.resolve(__dirname, `./build/${common.buildType}/binding`); const { getFreeCallCount } = require(binding); +assert.strictEqual(getFreeCallCount(), 0); + // Test that buffers allocated with a free callback through our APIs are // released when a Worker owning it exits. const w = new Worker(`require(${JSON.stringify(binding)})`, { eval: true }); -assert.strictEqual(getFreeCallCount(), 0); w.on('exit', common.mustCall(() => { assert.strictEqual(getFreeCallCount(), 1); }));