db1d1982

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

Skip coverage phase when manifest has no records

When every module in the instrumented library is opted out (e.g. each
src/*.hs annotated with {-# ANN module ("DisableMutations" :: String) #-}),
the mutation manifest is empty. The coverage phase was still spawning
one child per leaf test, paying the full per-test setup cost (tmp-postgres
spin-up, etc.) to record zero mutation IDs.

Read the manifests first; if there are no records, write an empty
augmented manifest and return. The mutation phase already handles the
empty-records case (mapConcurrently on []) so no change there.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 3s 3s 2s 0s
Eval 2s 38s 38s 41s 0s
Build 6s 1h45m24s 103h36m55s 103h37m01s 0s
Suite 0s 1h46m06s 103h37m02s 103h37m01s 102h57m35s