X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fabstract%2Fabstract-pool.test.js;h=d1c58ddbb73658f495df83f345c013f16c631132;hb=fd13902fd959335e2c0f95d1b464317a2da8b6cf;hp=4fd76d03585bd7f76966591ff0f54bfc2300594f;hpb=8735b4e51c0cfabc9612d57417834d42042cab4e;p=poolifier.git diff --git a/tests/pools/abstract/abstract-pool.test.js b/tests/pools/abstract/abstract-pool.test.js index 4fd76d03..d1c58ddb 100644 --- a/tests/pools/abstract/abstract-pool.test.js +++ b/tests/pools/abstract/abstract-pool.test.js @@ -1,4 +1,5 @@ const { expect } = require('expect') +const sinon = require('sinon') const { DynamicClusterPool, DynamicThreadPool, @@ -755,7 +756,9 @@ describe('Abstract pool test suite', () => { } }) expect(workerNode.usage.tasks.executed).toBeGreaterThan(0) - expect(workerNode.usage.tasks.executed).toBeLessThanOrEqual(maxMultiplier) + expect(workerNode.usage.tasks.executed).toBeLessThanOrEqual( + numberOfWorkers * maxMultiplier + ) expect(workerNode.usage.runTime.history.length).toBe(0) expect(workerNode.usage.waitTime.history.length).toBe(0) expect(workerNode.usage.elu.idle.history.length).toBe(0) @@ -899,15 +902,15 @@ describe('Abstract pool test suite', () => { await pool.destroy() }) - it.skip("Verify that pool event emitter 'backPressure' event can register a callback", async () => { - const pool = new DynamicThreadPool( - Math.floor(numberOfWorkers / 2), + it("Verify that pool event emitter 'backPressure' event can register a callback", async () => { + const pool = new FixedThreadPool( numberOfWorkers, './tests/worker-files/thread/testWorker.js', { enableTasksQueue: true } ) + sinon.stub(pool, 'hasBackPressure').returns(true) const promises = new Set() let poolBackPressure = 0 let poolInfo @@ -915,14 +918,14 @@ describe('Abstract pool test suite', () => { ++poolBackPressure poolInfo = info }) - for (let i = 0; i < Math.pow(numberOfWorkers, 2); i++) { + for (let i = 0; i < numberOfWorkers * 2; i++) { promises.add(pool.execute()) } await Promise.all(promises) - expect(poolBackPressure).toBe(1) + expect(poolBackPressure).toBe(2) expect(poolInfo).toStrictEqual({ version, - type: PoolTypes.dynamic, + type: PoolTypes.fixed, worker: WorkerTypes.thread, ready: expect.any(Boolean), strategy: WorkerChoiceStrategies.ROUND_ROBIN, @@ -933,8 +936,12 @@ describe('Abstract pool test suite', () => { busyWorkerNodes: expect.any(Number), executedTasks: expect.any(Number), executingTasks: expect.any(Number), + maxQueuedTasks: expect.any(Number), + queuedTasks: expect.any(Number), + backPressure: true, failedTasks: expect.any(Number) }) + expect(pool.hasBackPressure.called).toBe(true) await pool.destroy() })