X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fselection-strategies%2Fselection-strategies.test.mjs;h=200e83c7c83af1eaca13ec86e62efee724402d3b;hb=26ce26ca8861318068427cc86697103e7a3ddbf4;hp=4a2ace0469d1da108fe49e3c5f776ab3ad8a5825;hpb=463226a44b0370911db746052bcad0bcc7878acf;p=poolifier.git diff --git a/tests/pools/selection-strategies/selection-strategies.test.mjs b/tests/pools/selection-strategies/selection-strategies.test.mjs index 4a2ace04..200e83c7 100644 --- a/tests/pools/selection-strategies/selection-strategies.test.mjs +++ b/tests/pools/selection-strategies/selection-strategies.test.mjs @@ -66,14 +66,9 @@ describe('Selection strategies test suite', () => { expect(pool.workerChoiceStrategyContext.workerChoiceStrategy).toBe( workerChoiceStrategy ) - expect(pool.opts.workerChoiceStrategyOptions).toStrictEqual({ - retries: 6, - runTime: { median: false }, - waitTime: { median: false }, - elu: { median: false } - }) + expect(pool.opts.workerChoiceStrategyOptions).toBeUndefined() expect(pool.workerChoiceStrategyContext.opts).toStrictEqual({ - retries: 6, + retries: pool.info.maxSize, runTime: { median: false }, waitTime: { median: false }, elu: { median: false } @@ -86,19 +81,14 @@ describe('Selection strategies test suite', () => { max, './tests/worker-files/cluster/testWorker.js' ) - pool.setWorkerChoiceStrategy(workerChoiceStrategy, { retries: 3 }) + pool.setWorkerChoiceStrategy(workerChoiceStrategy) expect(pool.opts.workerChoiceStrategy).toBe(workerChoiceStrategy) expect(pool.workerChoiceStrategyContext.workerChoiceStrategy).toBe( workerChoiceStrategy ) - expect(pool.opts.workerChoiceStrategyOptions).toStrictEqual({ - retries: 3, - runTime: { median: false }, - waitTime: { median: false }, - elu: { median: false } - }) + expect(pool.opts.workerChoiceStrategyOptions).toBeUndefined() expect(pool.workerChoiceStrategyContext.opts).toStrictEqual({ - retries: 3, + retries: pool.info.maxSize, runTime: { median: false }, waitTime: { median: false }, elu: { median: false } @@ -174,6 +164,25 @@ describe('Selection strategies test suite', () => { await pool.destroy() }) + it('Verify strategies wait for worker node readiness in dynamic pool', async () => { + const pool = new DynamicThreadPool( + min, + max, + './tests/worker-files/thread/testWorker.mjs' + ) + expect(pool.starting).toBe(false) + expect(pool.workerNodes.length).toBe(min) + const maxMultiplier = 10000 + const promises = new Set() + for (let i = 0; i < max * maxMultiplier; i++) { + promises.add(pool.execute()) + } + await Promise.all(promises) + expect(pool.workerNodes.length).toBe(max) + // We need to clean up the resources after our test + await pool.destroy() + }) + it('Verify ROUND_ROBIN strategy default policy', async () => { const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN let pool = new FixedThreadPool( @@ -277,8 +286,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: { @@ -333,8 +342,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: { @@ -559,8 +568,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: { @@ -618,8 +627,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: { @@ -758,8 +767,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -827,8 +836,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -977,8 +986,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: { @@ -1052,8 +1061,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: { @@ -1208,8 +1217,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -1294,8 +1303,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -1385,8 +1394,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -1586,8 +1595,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -1665,8 +1674,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -1749,8 +1758,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -2012,8 +2021,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({ @@ -2098,8 +2107,8 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, - stolen: 0, sequentiallyStolen: 0, + stolen: 0, failed: 0 }, runTime: expect.objectContaining({