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