X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fabstract%2Fabstract-pool.test.js;h=a87c8934701bd442af287fcdc91e27af33eeda41;hb=e65c6cd9a3d6ed2e5b8af95120a5aa070101e945;hp=e6a7ad36cc5ae2ae5839fdd42497bbd86ce0cd9c;hpb=ffcbbad84f63b8a77f2b1a08f82deef5430f646e;p=poolifier.git diff --git a/tests/pools/abstract/abstract-pool.test.js b/tests/pools/abstract/abstract-pool.test.js index e6a7ad36..a87c8934 100644 --- a/tests/pools/abstract/abstract-pool.test.js +++ b/tests/pools/abstract/abstract-pool.test.js @@ -8,12 +8,12 @@ const { describe('Abstract pool test suite', () => { const numberOfWorkers = 1 - const workerNotFoundInTasksUsageMapError = new Error( + const workerNotFoundInPoolError = new Error( 'Worker could not be found in the pool' ) class StubPoolWithRemoveAllWorker extends FixedThreadPool { removeAllWorker () { - this.workers = new Map() + this.workers = [] this.promiseMap.clear() } } @@ -98,7 +98,7 @@ describe('Abstract pool test suite', () => { numberOfWorkers, './tests/worker-files/thread/testWorker.js', { - workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED, + workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED, enableEvents: false, messageHandler: testHandler, errorHandler: testHandler, @@ -109,7 +109,7 @@ describe('Abstract pool test suite', () => { expect(pool.opts.enableEvents).toBe(false) expect(pool.emitter).toBeUndefined() expect(pool.opts.workerChoiceStrategy).toBe( - WorkerChoiceStrategies.LESS_RECENTLY_USED + WorkerChoiceStrategies.LESS_USED ) expect(pool.opts.messageHandler).toStrictEqual(testHandler) expect(pool.opts.errorHandler).toStrictEqual(testHandler) @@ -118,78 +118,18 @@ describe('Abstract pool test suite', () => { await pool.destroy() }) - it('Simulate worker not found during increaseWorkerRunningTasks', async () => { - const pool = new StubPoolWithRemoveAllWorker( - numberOfWorkers, - './tests/worker-files/cluster/testWorker.js' - ) - // Simulate worker not found. - pool.removeAllWorker() - expect(() => pool.increaseWorkerRunningTasks()).toThrowError( - workerNotFoundInTasksUsageMapError - ) - await pool.destroy() - }) - - it('Simulate worker not found during decreaseWorkerRunningTasks', async () => { - const pool = new StubPoolWithRemoveAllWorker( - numberOfWorkers, - './tests/worker-files/cluster/testWorker.js', - { - errorHandler: e => console.error(e) - } - ) - // Simulate worker not found. - pool.removeAllWorker() - expect(() => pool.decreaseWorkerRunningTasks()).toThrowError( - workerNotFoundInTasksUsageMapError - ) - await pool.destroy() - }) - - it('Simulate worker not found during stepWorkerRunTasks', async () => { - const pool = new StubPoolWithRemoveAllWorker( - numberOfWorkers, - './tests/worker-files/cluster/testWorker.js', - { - errorHandler: e => console.error(e) - } - ) - // Simulate worker not found. - pool.removeAllWorker() - expect(() => pool.stepWorkerRunTasks()).toThrowError( - workerNotFoundInTasksUsageMapError - ) - await pool.destroy() - }) - - it('Simulate worker not found during updateWorkerTasksRunTime with strategy not requiring it', async () => { - const pool = new StubPoolWithRemoveAllWorker( - numberOfWorkers, - './tests/worker-files/cluster/testWorker.js', - { - errorHandler: e => console.error(e) - } - ) - // Simulate worker not found. - pool.removeAllWorker() - expect(() => pool.updateWorkerTasksRunTime()).not.toThrowError() - await pool.destroy() - }) - - it('Simulate worker not found during updateWorkerTasksRunTime with strategy requiring it', async () => { + it('Simulate worker not found during getWorkerTasksUsage', async () => { const pool = new StubPoolWithRemoveAllWorker( numberOfWorkers, './tests/worker-files/cluster/testWorker.js', { - workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE, errorHandler: e => console.error(e) } ) // Simulate worker not found. pool.removeAllWorker() - expect(() => pool.updateWorkerTasksRunTime()).toThrowError( - workerNotFoundInTasksUsageMapError + expect(() => pool.getWorkerTasksUsage()).toThrowError( + workerNotFoundInPoolError ) await pool.destroy() }) @@ -199,12 +139,12 @@ describe('Abstract pool test suite', () => { numberOfWorkers, './tests/worker-files/cluster/testWorker.js' ) - for (const value of pool.workers.values()) { - expect(value.tasksUsage).toBeDefined() - expect(value.tasksUsage.run).toBe(0) - expect(value.tasksUsage.running).toBe(0) - expect(value.tasksUsage.runTime).toBe(0) - expect(value.tasksUsage.avgRunTime).toBe(0) + for (const workerItem of pool.workers) { + expect(workerItem.tasksUsage).toBeDefined() + expect(workerItem.tasksUsage.run).toBe(0) + expect(workerItem.tasksUsage.running).toBe(0) + expect(workerItem.tasksUsage.runTime).toBe(0) + expect(workerItem.tasksUsage.avgRunTime).toBe(0) } await pool.destroy() }) @@ -218,20 +158,20 @@ describe('Abstract pool test suite', () => { for (let i = 0; i < numberOfWorkers * 2; i++) { promises.push(pool.execute()) } - for (const value of pool.workers.values()) { - expect(value.tasksUsage).toBeDefined() - expect(value.tasksUsage.run).toBe(0) - expect(value.tasksUsage.running).toBe(numberOfWorkers * 2) - expect(value.tasksUsage.runTime).toBe(0) - expect(value.tasksUsage.avgRunTime).toBe(0) + for (const workerItem of pool.workers) { + expect(workerItem.tasksUsage).toBeDefined() + expect(workerItem.tasksUsage.run).toBe(0) + expect(workerItem.tasksUsage.running).toBe(numberOfWorkers * 2) + expect(workerItem.tasksUsage.runTime).toBe(0) + expect(workerItem.tasksUsage.avgRunTime).toBe(0) } await Promise.all(promises) - for (const value of pool.workers.values()) { - expect(value.tasksUsage).toBeDefined() - expect(value.tasksUsage.run).toBe(numberOfWorkers * 2) - expect(value.tasksUsage.running).toBe(0) - expect(value.tasksUsage.runTime).toBeGreaterThanOrEqual(0) - expect(value.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0) + for (const workerItem of pool.workers) { + expect(workerItem.tasksUsage).toBeDefined() + expect(workerItem.tasksUsage.run).toBe(numberOfWorkers * 2) + expect(workerItem.tasksUsage.running).toBe(0) + expect(workerItem.tasksUsage.runTime).toBeGreaterThanOrEqual(0) + expect(workerItem.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0) } await pool.destroy() }) @@ -247,20 +187,20 @@ describe('Abstract pool test suite', () => { promises.push(pool.execute()) } await Promise.all(promises) - for (const value of pool.workers.values()) { - expect(value.tasksUsage).toBeDefined() - expect(value.tasksUsage.run).toBe(numberOfWorkers * 2) - expect(value.tasksUsage.running).toBe(0) - expect(value.tasksUsage.runTime).toBeGreaterThanOrEqual(0) - expect(value.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0) + for (const workerItem of pool.workers) { + expect(workerItem.tasksUsage).toBeDefined() + expect(workerItem.tasksUsage.run).toBe(numberOfWorkers * 2) + expect(workerItem.tasksUsage.running).toBe(0) + expect(workerItem.tasksUsage.runTime).toBeGreaterThanOrEqual(0) + expect(workerItem.tasksUsage.avgRunTime).toBeGreaterThanOrEqual(0) } pool.setWorkerChoiceStrategy(WorkerChoiceStrategies.FAIR_SHARE) - for (const value of pool.workers.values()) { - expect(value.tasksUsage).toBeDefined() - expect(value.tasksUsage.run).toBe(0) - expect(value.tasksUsage.running).toBe(0) - expect(value.tasksUsage.runTime).toBe(0) - expect(value.tasksUsage.avgRunTime).toBe(0) + for (const workerItem of pool.workers) { + expect(workerItem.tasksUsage).toBeDefined() + expect(workerItem.tasksUsage.run).toBe(0) + expect(workerItem.tasksUsage.running).toBe(0) + expect(workerItem.tasksUsage.runTime).toBe(0) + expect(workerItem.tasksUsage.avgRunTime).toBe(0) } await pool.destroy() })