Skip to content

mutantkit 1.3.2

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Oct 18:44
1e34526

Highlights

  • Mutants in never-executed files are reported as noCoverage. A file whose
    regions never ran used to drop out of the coverage map, so its mutants ran the
    full test suite (211-280 s each on MutantKit itself) and were reported as
    survived. They are now classified noCoverage without running any test.
  • Schemata covers more mutations. Operands made of calls, subscripts,
    optional chaining, force unwraps, arithmetic and ?? are now lowered. On
    MutantKit's own default-operator candidates the share that can be embedded
    rose from 82.0% to 97.1%. The stronger profile's nil-coalescing-fallback
    operator now has a schemata lowerer too.
  • Confirmation rebuilds are faster. The crash and timeout confirmations reuse
    pooled sandboxes under incrementalBuild instead of a fresh sandbox each time
    (build 10.3 s down to 3.7-6.6 s).
  • execution-profile previews schemata. It samples the plan (up to 500
    mutations) and shows how many would be embedded and how many would fall back.

Reports and diagnostics

  • A run that reuses a cached coverage measurement no longer prints "Coverage was
    not measured". The baseline record now carries coverageReused.
  • The coverage cache key no longer includes the raw bytes of the root
    mutantkit.yml; the parsed configuration already feeds the key.

Fixes

  • Several tests that depended on fixed sleeps or short waits, on process
    ownership and on zombie handling failed under load; they are now robust.
  • SwiftFormat's repeatedGuard rule is disabled because it conflicts with
    SwiftLint's line_length, and Scripts/preflight.sh matches CI.

Known issue

  • With selectCoveringTests, a mutant killed only by a parameterized Swift
    Testing test can be reported as infrastructureFailure ("failure outside the
    selection") instead of killed. It is excluded from the score rather than
    counted, so scores are understated, never overstated.

What's Changed

Full Changelog: v1.3.1...v1.3.2