rvf: three ADR-280 changes survive mutation testing (test coverage gaps)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 4.5k
- Forks
- 603
- Avg merge
- 23h 32m
- Merged PRs (30d)
- 59
Description
Found during ADR-280 review via mutation testing. All 11 metadata_growth tests stay green when these are broken:
- dropped_generations accumulation (
store.rs:3984) — deleting it leaves every test passing, because assertions are all> 0or== 0; no test pins an exact count. The CLI prints this number to users. - delete/set_file_metadata rollback via full clone (
:1496/:1543,:2815/:2834) — reverting totruncateis only detectable via ENOSPC, which the suite never exercises. (Verified load-bearing by hand: withtruncate, an ENOSPC run permanently drops a live Meta entry and retains an uncommitted one.) - the
if re_anchoring { … retain … }prune block (:3830-3836) — deleting it is benign for convergence since orphans sit below the new snapshot, but it leaves the pruning half — the entire reasonorphaned_metadata_offsetsexists — unpinned.
One test each when convenient. An ENOSPC harness (small RAM disk) would cover #2 and is reusable.
Also informational (store.rs:1496, pre-existing): a delete() that fails before its manifest commits leaves its Journal segment in segment_dir, because the append happens above the rollback snapshot point. Harmless — the deletion isn't applied and the id stays queryable — but it makes the "snapshot everything visible first" comment at :1490-1493 inexact.
🤖 Generated with claude-flow
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in store.rs at lines 3984, 1496/1543, 2815/2834, and 3830-3836, then run the existing metadata_growth tests. Add one regression test for the exact dropped_generations count, one ENOSPC rollback test for metadata changes, and one test pinning re-anchoring pruning. Done means these tests fail when each targeted behavior is removed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- testing-qa
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100