mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
shuffleArrayWithSeed was introduced along with test order randomization but was never called: the feature picks a random pending subtest at dequeue time using createSeededGenerator directly. Remove the dead helper and its export, and add direct unit coverage for createSeededGenerator's deterministic contract. Signed-off-by: Daijiro Wachi <daijiro.wachi@gmail.com> PR-URL: https://github.com/nodejs/node/pull/63847 Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Jacob Smith <jacob@frende.me> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
// Flags: --expose-internals
|
|
'use strict';
|
|
require('../common');
|
|
const assert = require('node:assert');
|
|
const { createSeededGenerator, kMaxRandomSeed } = require('internal/test_runner/utils');
|
|
|
|
function sequence(seed, length = 10) {
|
|
const random = createSeededGenerator(seed);
|
|
const values = [];
|
|
for (let i = 0; i < length; i++) {
|
|
values.push(random());
|
|
}
|
|
return values;
|
|
}
|
|
|
|
// The same seed must always produce the same sequence so that
|
|
// --test-random-seed reproduces a randomized test order across runs.
|
|
assert.deepStrictEqual(sequence(0), sequence(0));
|
|
assert.deepStrictEqual(sequence(12345), sequence(12345));
|
|
assert.deepStrictEqual(sequence(kMaxRandomSeed), sequence(kMaxRandomSeed));
|
|
|
|
// Different seeds must produce different sequences.
|
|
assert.notDeepStrictEqual(sequence(11111), sequence(22222));
|
|
assert.notDeepStrictEqual(sequence(0), sequence(1));
|
|
|
|
// Seeds are coerced to uint32, matching the range accepted by
|
|
// --test-random-seed.
|
|
assert.deepStrictEqual(sequence(1), sequence(1 + 2 ** 32));
|
|
|
|
// All generated values must fall in [0, 1).
|
|
for (const value of sequence(98765, 1000)) {
|
|
assert.ok(value >= 0 && value < 1, `value ${value} out of range`);
|
|
}
|