From a2283a198407d558dd7fdca4bad77a032623fdef Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Fri, 5 Jan 2024 16:44:58 +0100 Subject: [PATCH] test: add test to reproduce issue #1748 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- tests/pools/cluster/dynamic.test.mjs | 11 +++++++++++ tests/pools/thread/dynamic.test.mjs | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/tests/pools/cluster/dynamic.test.mjs b/tests/pools/cluster/dynamic.test.mjs index 870a5f4d..cc8f2c0c 100644 --- a/tests/pools/cluster/dynamic.test.mjs +++ b/tests/pools/cluster/dynamic.test.mjs @@ -168,6 +168,17 @@ describe('Dynamic cluster pool test suite', () => { } await Promise.all(promises) expect(pool.workerNodes.length).toBe(max) + await waitWorkerEvents(pool, 'exit', max) + expect(pool.workerNodes.length).toBe(pool.info.minSize) + // pool.enableTasksQueue(true, { concurrency: 2 }) + promises.clear() + for (let i = 0; i < max * maxMultiplier; i++) { + promises.add(pool.execute()) + } + await Promise.all(promises) + expect(pool.workerNodes.length).toBe(max) + await waitWorkerEvents(pool, 'exit', max) + expect(pool.workerNodes.length).toBe(pool.info.minSize) // We need to clean up the resources after our test await pool.destroy() }) diff --git a/tests/pools/thread/dynamic.test.mjs b/tests/pools/thread/dynamic.test.mjs index 9d35ce8a..7b951aaf 100644 --- a/tests/pools/thread/dynamic.test.mjs +++ b/tests/pools/thread/dynamic.test.mjs @@ -168,6 +168,17 @@ describe('Dynamic thread pool test suite', () => { } await Promise.all(promises) expect(pool.workerNodes.length).toBe(max) + await waitWorkerEvents(pool, 'exit', max) + expect(pool.workerNodes.length).toBe(pool.info.minSize) + // pool.enableTasksQueue(true, { concurrency: 2 }) + promises.clear() + for (let i = 0; i < max * maxMultiplier; i++) { + promises.add(pool.execute()) + } + await Promise.all(promises) + expect(pool.workerNodes.length).toBe(max) + await waitWorkerEvents(pool, 'exit', max) + expect(pool.workerNodes.length).toBe(pool.info.minSize) // We need to clean up the resources after our test await pool.destroy() }) -- 2.34.1