Commit | Line | Data |
---|---|---|
c7ed5d3b | 1 | import { randomInt } from 'node:crypto' |
a074ffee | 2 | import { expect } from 'expect' |
d35e5717 | 3 | import { FixedThreadPool } from '../../../lib/index.cjs' |
b1314cf6 | 4 | import { InterleavedWeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.cjs' |
d35e5717 | 5 | import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.cjs' |
0220f124 JB |
6 | |
7 | describe('Weighted round robin strategy worker choice strategy test suite', () => { | |
8 | // const min = 1 | |
9 | const max = 3 | |
10 | let pool | |
11 | ||
12 | before(() => { | |
b2fd3f4a JB |
13 | pool = new FixedThreadPool( |
14 | max, | |
15 | './tests/worker-files/thread/testWorker.mjs' | |
16 | ) | |
0220f124 JB |
17 | }) |
18 | ||
0220f124 JB |
19 | after(async () => { |
20 | await pool.destroy() | |
21 | }) | |
22 | ||
b1314cf6 | 23 | it('Verify that WRR reset() resets internals', () => { |
0220f124 | 24 | const strategy = new WeightedRoundRobinWorkerChoiceStrategy(pool) |
07a85ff1 JB |
25 | strategy.nextWorkerNodeKey = randomInt(1, 281474976710656) |
26 | strategy.previousWorkerNodeKey = randomInt(1, 281474976710656) | |
27 | strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656) | |
a1fef95a JB |
28 | expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0) |
29 | expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0) | |
30 | expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0) | |
516dcb0d | 31 | expect(strategy.reset()).toBe(true) |
9b106837 | 32 | expect(strategy.nextWorkerNodeKey).toBe(0) |
54f4e726 | 33 | expect(strategy.previousWorkerNodeKey).toBe(0) |
f3a91bac | 34 | expect(strategy.workerNodeVirtualTaskRunTime).toBe(0) |
0220f124 | 35 | }) |
b1314cf6 JB |
36 | |
37 | it('Verify that IWRR reset() resets internals', () => { | |
38 | const strategy = new InterleavedWeightedRoundRobinWorkerChoiceStrategy(pool) | |
39 | strategy.nextWorkerNodeKey = randomInt(1, 281474976710656) | |
40 | strategy.previousWorkerNodeKey = randomInt(1, 281474976710656) | |
41 | strategy.roundId = randomInt(1, 281474976710656) | |
42 | strategy.workerNodeId = randomInt(1, 281474976710656) | |
43 | strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656) | |
44 | expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0) | |
45 | expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0) | |
46 | expect(strategy.roundId).toBeGreaterThan(0) | |
47 | expect(strategy.workerNodeId).toBeGreaterThan(0) | |
48 | expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0) | |
49 | expect(strategy.reset()).toBe(true) | |
50 | expect(strategy.nextWorkerNodeKey).toBe(0) | |
51 | expect(strategy.previousWorkerNodeKey).toBe(0) | |
52 | expect(strategy.roundId).toBe(0) | |
53 | expect(strategy.workerNodeId).toBe(0) | |
54 | expect(strategy.workerNodeVirtualTaskRunTime).toBe(0) | |
55 | }) | |
0220f124 | 56 | }) |