Skip to content

Extend cargo-mutants beyond checksum/bcd/party to the full pksave crate #33

Description

@kasbuunk

The mutation pass in issue #5 covered only checksum.rs, bcd.rs, party.rs (206 mutants, 5 missed → fixed); the other ~15 core modules (boxes, items, pokemon, stats, text, validate, daycare, hof…) have never been mutation-tested, so their 98% line coverage may still hide weak assertions.

Instructions:

  1. Run cargo mutants -p pksave (whole crate; expect ~1h — use --in-place --jobs N or shard by -f per module if the runner is slow).
  2. For each missed mutant: add a killing test, or record it as provably-equivalent with a one-line rationale (the |-vs-^-on-disjoint-nibbles precedent from Review: test coverage — llvm-cov, mutation testing, high-value GUI tests #5).
  3. Consider a weekly scheduled CI job (cargo mutants --in-diff on PRs is cheap; full runs on cron) — only if the full run is under ~30 min with caching.

Alternatives considered
Leaving the remaining modules to line coverage alone — but #5 showed mutation testing finds assertion gaps 98% coverage misses.
Mutating the app crate too — lower value; its logic is thin over the core.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions