X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fabstract%2Fabstract-pool.test.js;h=e9c65dde91de251b6228c303861696a9f8629162;hb=41e3e08eb7fbcde0a69cea17e697aacb222990a6;hp=df109fe1982e4c511e40a73b9e5449683a18ae00;hpb=4735284627d276d3532cb3bd4b6d7fe392bb6b8b;p=poolifier.git diff --git a/tests/pools/abstract/abstract-pool.test.js b/tests/pools/abstract/abstract-pool.test.js index df109fe1..e9c65dde 100644 --- a/tests/pools/abstract/abstract-pool.test.js +++ b/tests/pools/abstract/abstract-pool.test.js @@ -238,8 +238,8 @@ describe('Abstract pool test suite', () => { enableTasksQueue: true, tasksQueueOptions: { concurrency: 2, - size: 4, - tasksStealing: true, + size: Math.pow(numberOfWorkers, 2), + taskStealing: true, tasksStealingOnBackPressure: true }, workerChoiceStrategy: WorkerChoiceStrategies.LEAST_USED, @@ -630,25 +630,41 @@ describe('Abstract pool test suite', () => { ) expect(pool.opts.enableTasksQueue).toBe(false) expect(pool.opts.tasksQueueOptions).toBeUndefined() + for (const workerNode of pool.workerNodes) { + expect(workerNode.onEmptyQueue).toBeUndefined() + expect(workerNode.onBackPressure).toBeUndefined() + } pool.enableTasksQueue(true) expect(pool.opts.enableTasksQueue).toBe(true) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 1, - size: 4, - tasksStealing: true, + size: Math.pow(numberOfWorkers, 2), + taskStealing: true, tasksStealingOnBackPressure: true }) + for (const workerNode of pool.workerNodes) { + expect(workerNode.onEmptyQueue).toBeInstanceOf(Function) + expect(workerNode.onBackPressure).toBeInstanceOf(Function) + } pool.enableTasksQueue(true, { concurrency: 2 }) expect(pool.opts.enableTasksQueue).toBe(true) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 2, - size: 4, - tasksStealing: true, + size: Math.pow(numberOfWorkers, 2), + taskStealing: true, tasksStealingOnBackPressure: true }) + for (const workerNode of pool.workerNodes) { + expect(workerNode.onEmptyQueue).toBeInstanceOf(Function) + expect(workerNode.onBackPressure).toBeInstanceOf(Function) + } pool.enableTasksQueue(false) expect(pool.opts.enableTasksQueue).toBe(false) expect(pool.opts.tasksQueueOptions).toBeUndefined() + for (const workerNode of pool.workerNodes) { + expect(workerNode.onEmptyQueue).toBeUndefined() + expect(workerNode.onBackPressure).toBeUndefined() + } await pool.destroy() }) @@ -660,17 +676,54 @@ describe('Abstract pool test suite', () => { ) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 1, - size: 4, - tasksStealing: true, + size: Math.pow(numberOfWorkers, 2), + taskStealing: true, tasksStealingOnBackPressure: true }) - pool.setTasksQueueOptions({ concurrency: 2 }) + for (const workerNode of pool.workerNodes) { + expect(workerNode.tasksQueueBackPressureSize).toBe( + pool.opts.tasksQueueOptions.size + ) + expect(workerNode.onEmptyQueue).toBeInstanceOf(Function) + expect(workerNode.onBackPressure).toBeInstanceOf(Function) + } + pool.setTasksQueueOptions({ + concurrency: 2, + size: 2, + taskStealing: false, + tasksStealingOnBackPressure: false + }) expect(pool.opts.tasksQueueOptions).toStrictEqual({ concurrency: 2, - size: 4, - tasksStealing: true, + size: 2, + taskStealing: false, + tasksStealingOnBackPressure: false + }) + for (const workerNode of pool.workerNodes) { + expect(workerNode.tasksQueueBackPressureSize).toBe( + pool.opts.tasksQueueOptions.size + ) + expect(workerNode.onEmptyQueue).toBeUndefined() + expect(workerNode.onBackPressure).toBeUndefined() + } + pool.setTasksQueueOptions({ + concurrency: 1, + taskStealing: true, + tasksStealingOnBackPressure: true + }) + expect(pool.opts.tasksQueueOptions).toStrictEqual({ + concurrency: 1, + size: Math.pow(numberOfWorkers, 2), + taskStealing: true, tasksStealingOnBackPressure: true }) + for (const workerNode of pool.workerNodes) { + expect(workerNode.tasksQueueBackPressureSize).toBe( + pool.opts.tasksQueueOptions.size + ) + expect(workerNode.onEmptyQueue).toBeInstanceOf(Function) + expect(workerNode.onBackPressure).toBeInstanceOf(Function) + } expect(() => pool.setTasksQueueOptions('invalidTasksQueueOptions') ).toThrowError(