packages feed

sydtest-mutation-plugin 0.5.0.0 → 0.5.1.0

raw patch · 3 files changed

+21/−7 lines, 3 files

Files

CHANGELOG.md view
@@ -1,5 +1,13 @@ # Changelog +## [0.5.1.0] - 2026-10-13++### Changed++* A control (no-op) mutation is inserted at every module's first mutation+  site and then every hundred mutations, rather than every twelve.++ ## [0.5.0.0] - 2026-09-11  ### Added
src/Test/Syd/Mutation/Plugin/Instrument.hs view
@@ -400,7 +400,11 @@ emptyInstrState =   InstrState     { instrLocalDisableHits = Map.empty,-      instrSinceControl = 0,+      -- Due immediately, so the first mutation site of every module is also a+      -- control.  Without this a module needs 'controlInterval' mutations of+      -- its own to get one, which at the cadence that interval sets means a+      -- project of small modules gets no canary at all.+      instrSinceControl = controlInterval,       instrControlSeq = 0     } @@ -409,12 +413,14 @@ -- harness for false kills, and even a handful across a run catches a systemic -- flaky\/nondeterministic suite - more just adds overhead and report noise. ----- There is no per-module floor: a module (compilation unit) with fewer than--- 'controlInterval' real mutations gets no control.  Any real mutation-testing--- target has far more than this many mutations overall, so a run always ends up--- with controls; only toy builds get none, and those do not need the canary.+-- Sparser than a real mutation would warrant, because a control cannot stop at+-- the test that kills it: it is expected to survive, so its child runs every+-- covering test it is given.+--+-- Every module gets one regardless, at its first mutation site, since the+-- count is per module ('emptyInstrState'). controlInterval :: Int-controlInterval = 12+controlInterval = 100  type InstrM = WriterT [MutationGroup] (StateT InstrState (ReaderT InstrumentEnv TcM)) 
sydtest-mutation-plugin.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           sydtest-mutation-plugin-version:        0.5.0.0+version:        0.5.1.0 synopsis:       GHC plugin that instruments code for sydtest's mutation testing description:    A GHC source plugin that instruments code under test with the coverage and mutation hooks that sydtest's mutation testing infrastructure needs. See https://github.com/NorfairKing/sydtest#readme for more information. category:       Testing