X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fpools%2Futils.test.mjs;h=3842c8c5e223e3e89fdea92e581b0d7f8e41fb52;hb=2eee72204bc851f616ded11cb5381f96c6dc5cbf;hp=5feb6596296914252a94231e5de19132968a832f;hpb=c3719753af0a9be03abf722a7543495359e817b5;p=poolifier.git diff --git a/tests/pools/utils.test.mjs b/tests/pools/utils.test.mjs index 5feb6596..3842c8c5 100644 --- a/tests/pools/utils.test.mjs +++ b/tests/pools/utils.test.mjs @@ -1,17 +1,42 @@ +import cluster, { Worker as ClusterWorker } from 'node:cluster' import { Worker as ThreadWorker } from 'node:worker_threads' -import { Worker as ClusterWorker } from 'node:cluster' + import { expect } from 'expect' + import { CircularArray, DEFAULT_CIRCULAR_ARRAY_SIZE -} from '../../lib/circular-array.js' +} from '../../lib/circular-array.cjs' +import { WorkerTypes } from '../../lib/index.cjs' import { createWorker, + DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS, + getDefaultTasksQueueOptions, + getWorkerId, + getWorkerType, updateMeasurementStatistics -} from '../../lib/pools/utils.js' -import { WorkerTypes } from '../../lib/index.js' +} from '../../lib/pools/utils.cjs' describe('Pool utils test suite', () => { + it('Verify DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS values', () => { + expect(DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS).toStrictEqual({ + aggregate: false, + average: false, + median: false + }) + }) + + it('Verify getDefaultTasksQueueOptions() behavior', () => { + const poolMaxSize = 4 + expect(getDefaultTasksQueueOptions(poolMaxSize)).toStrictEqual({ + concurrency: 1, + size: Math.pow(poolMaxSize, 2), + taskStealing: true, + tasksStealingOnBackPressure: false, + tasksFinishedTimeout: 2000 + }) + }) + it('Verify updateMeasurementStatistics() behavior', () => { const measurementStatistics = { history: new CircularArray() @@ -103,14 +128,34 @@ describe('Pool utils test suite', () => { expect( createWorker( WorkerTypes.thread, - './tests/worker-files/thread/testWorker.mjs' + './tests/worker-files/thread/testWorker.mjs', + {} ) ).toBeInstanceOf(ThreadWorker) expect( createWorker( WorkerTypes.cluster, - './tests/worker-files/cluster/testWorker.mjs' + './tests/worker-files/cluster/testWorker.mjs', + {} ) ).toBeInstanceOf(ClusterWorker) }) + + it('Verify getWorkerType() behavior', () => { + expect( + getWorkerType( + new ThreadWorker('./tests/worker-files/thread/testWorker.mjs') + ) + ).toBe(WorkerTypes.thread) + expect(getWorkerType(cluster.fork())).toBe(WorkerTypes.cluster) + }) + + it('Verify getWorkerId() behavior', () => { + const threadWorker = new ThreadWorker( + './tests/worker-files/thread/testWorker.mjs' + ) + const clusterWorker = cluster.fork() + expect(getWorkerId(threadWorker)).toBe(threadWorker.threadId) + expect(getWorkerId(clusterWorker)).toBe(clusterWorker.id) + }) })