850df106

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Mutation: seed the global RNG in the spec-forest runners

The global System.Random generator was only seeded by the top-level sydTest
runner. The mutation and coverage children run a forest directly via
runSpecForestSynchronously, bypassing that seeding, so tests drawing from the
global generator (randomIO, newStdGen, ...) rather than QuickCheck's replay
seed were non-reproducible under those children — a source of spurious
mutation kills or survivors.

Move setPseudorandomness down into Test.Syd.Run and call it from all four
forest runners, so every entry point that runs a forest seeds the global
generator and no future entry point can bypass it.

Add a regression test, bump sydtest to 0.27.1.0, and add a changelog entry.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 7s 7s 8s 0s
Eval 7s 2m38s 2m38s 2m46s 0s
Build 2m03s 42s 34s 2m37s 0s
Suite 0s 3m27s 2m45s 2m46s 0s

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s