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=342d2fa6c997c0bfe1f696cfcecfefcce91931c2;hpb=a074ffee1b46f43d0dcfba58128748c7492104dd;p=poolifier.git diff --git a/tests/pools/selection-strategies/selection-strategies.test.mjs b/tests/pools/selection-strategies/selection-strategies.test.mjs index 342d2fa6..200e83c7 100644 --- a/tests/pools/selection-strategies/selection-strategies.test.mjs +++ b/tests/pools/selection-strategies/selection-strategies.test.mjs @@ -30,7 +30,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) expect(pool.opts.workerChoiceStrategy).toBe( WorkerChoiceStrategies.ROUND_ROBIN @@ -43,7 +43,7 @@ describe('Selection strategies test suite', () => { for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.opts.workerChoiceStrategy).toBe(workerChoiceStrategy) @@ -59,21 +59,16 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) pool.setWorkerChoiceStrategy(workerChoiceStrategy) expect(pool.opts.workerChoiceStrategy).toBe(workerChoiceStrategy) 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 } @@ -110,7 +100,7 @@ describe('Selection strategies test suite', () => { it('Verify available strategies default internals at pool creation', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) { expect( @@ -174,11 +164,30 @@ 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( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -189,7 +198,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -204,7 +213,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -230,7 +239,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -260,7 +269,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) // TODO: Create a better test to cover `RoundRobinWorkerChoiceStrategy#choose` @@ -277,6 +286,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -315,7 +325,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) // TODO: Create a better test to cover `RoundRobinWorkerChoiceStrategy#choose` @@ -332,6 +342,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -378,18 +389,18 @@ describe('Selection strategies test suite', () => { ) let results = new Set() for (let i = 0; i < max; i++) { - results.add(pool.workerNodes[pool.chooseWorkerNode()].worker.id) + results.add(pool.workerNodes[pool.chooseWorkerNode()].info.id) } expect(results.size).toBe(max) await pool.destroy() pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) results = new Set() for (let i = 0; i < max; i++) { - results.add(pool.workerNodes[pool.chooseWorkerNode()].worker.threadId) + results.add(pool.workerNodes[pool.chooseWorkerNode()].info.id) } expect(results.size).toBe(max) await pool.destroy() @@ -399,7 +410,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } ) expect( @@ -427,7 +438,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } ) expect( @@ -459,7 +470,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_USED let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -470,7 +481,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -485,7 +496,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_USED let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -511,7 +522,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -540,7 +551,7 @@ describe('Selection strategies test suite', () => { it('Verify LEAST_USED strategy can be run in a fixed pool', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED } ) // TODO: Create a better test to cover `LeastUsedWorkerChoiceStrategy#choose` @@ -557,6 +568,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -598,7 +610,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED } ) // TODO: Create a better test to cover `LeastUsedWorkerChoiceStrategy#choose` @@ -615,6 +627,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -656,7 +669,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_BUSY let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -667,7 +680,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -682,7 +695,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_BUSY let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -708,7 +721,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -737,7 +750,7 @@ describe('Selection strategies test suite', () => { it('Verify LEAST_BUSY strategy can be run in a fixed pool', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_BUSY } ) // TODO: Create a better test to cover `LeastBusyWorkerChoiceStrategy#choose` @@ -754,6 +767,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -805,7 +819,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_BUSY } ) // TODO: Create a better test to cover `LeastBusyWorkerChoiceStrategy#choose` @@ -822,6 +836,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -873,7 +888,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_ELU let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -884,7 +899,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -899,7 +914,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_ELU let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -925,7 +940,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -954,7 +969,7 @@ describe('Selection strategies test suite', () => { it('Verify LEAST_ELU strategy can be run in a fixed pool', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_ELU } ) // TODO: Create a better test to cover `LeastEluWorkerChoiceStrategy#choose` @@ -971,6 +986,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1028,7 +1044,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.LEAST_ELU } ) // TODO: Create a better test to cover `LeastEluWorkerChoiceStrategy#choose` @@ -1045,6 +1061,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1102,7 +1119,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -1113,7 +1130,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -1128,7 +1145,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -1154,7 +1171,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -1183,7 +1200,7 @@ describe('Selection strategies test suite', () => { it('Verify FAIR_SHARE strategy can be run in a fixed pool', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } ) // TODO: Create a better test to cover `FairShareChoiceStrategy#choose` @@ -1200,6 +1217,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1268,7 +1286,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } ) // TODO: Create a better test to cover `FairShareChoiceStrategy#choose` @@ -1285,6 +1303,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1353,7 +1372,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE, workerChoiceStrategyOptions: { @@ -1375,6 +1394,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1443,7 +1463,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) for (const workerNode of pool.workerNodes) { workerNode.strategyData = { @@ -1458,7 +1478,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) for (const workerNode of pool.workerNodes) { workerNode.strategyData = { @@ -1477,7 +1497,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -1488,7 +1508,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -1503,7 +1523,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -1529,7 +1549,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -1558,7 +1578,7 @@ describe('Selection strategies test suite', () => { it('Verify WEIGHTED_ROUND_ROBIN strategy can be run in a fixed pool', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } ) // TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose` @@ -1575,6 +1595,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1636,7 +1657,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } ) // TODO: Create a better test to cover `WeightedRoundRobinWorkerChoiceStrategy#choose` @@ -1653,6 +1674,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1714,7 +1736,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN, workerChoiceStrategyOptions: { @@ -1736,6 +1758,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -1797,7 +1820,7 @@ describe('Selection strategies test suite', () => { const workerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) expect( pool.workerChoiceStrategyContext.workerChoiceStrategies.get( @@ -1844,7 +1867,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) expect( pool.workerChoiceStrategyContext.workerChoiceStrategies.get( @@ -1896,7 +1919,7 @@ describe('Selection strategies test suite', () => { WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -1907,7 +1930,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect(pool.workerChoiceStrategyContext.getStrategyPolicy()).toStrictEqual({ @@ -1923,7 +1946,7 @@ describe('Selection strategies test suite', () => { WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -1949,7 +1972,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy } ) expect( @@ -1978,7 +2001,7 @@ describe('Selection strategies test suite', () => { it('Verify INTERLEAVED_WEIGHTED_ROUND_ROBIN strategy can be run in a fixed pool', async () => { const pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN @@ -1998,6 +2021,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -2063,7 +2087,7 @@ describe('Selection strategies test suite', () => { const pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN @@ -2083,6 +2107,7 @@ describe('Selection strategies test suite', () => { executing: 0, queued: 0, maxQueued: 0, + sequentiallyStolen: 0, stolen: 0, failed: 0 }, @@ -2149,7 +2174,7 @@ describe('Selection strategies test suite', () => { WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN let pool = new FixedThreadPool( max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) expect( pool.workerChoiceStrategyContext.workerChoiceStrategies.get( @@ -2220,7 +2245,7 @@ describe('Selection strategies test suite', () => { pool = new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js' + './tests/worker-files/thread/testWorker.mjs' ) expect( pool.workerChoiceStrategyContext.workerChoiceStrategies.get( @@ -2297,9 +2322,9 @@ describe('Selection strategies test suite', () => { new DynamicThreadPool( min, max, - './tests/worker-files/thread/testWorker.js', + './tests/worker-files/thread/testWorker.mjs', { workerChoiceStrategy: 'UNKNOWN_STRATEGY' } ) - ).toThrowError("Invalid worker choice strategy 'UNKNOWN_STRATEGY'") + ).toThrow("Invalid worker choice strategy 'UNKNOWN_STRATEGY'") }) })