Run mutation testing to improve confidence in the test suite, especially around the areas being changed for 6.0.0.
Scope
Prior art
The fork already has some mutation testing experience (commits a8953e3, 252b4a4 killing surviving mutations in branch/fail code). The same approach should be extended to the rest of the codebase.
This is a prerequisite to performance regression testing — ensuring correctness can be tested effectively is necessary before performance regressions can be meaningfully checked. The 6.0.0 release touches core parsing, highlighting, and serialization internals, and mutation testing surfaces gaps in test coverage that conventional metrics miss. Suggested for the syntect 6.0.0 milestone.
Run mutation testing to improve confidence in the test suite, especially around the areas being changed for 6.0.0.
Scope
cargo-mutants(or equivalent) on the modules most affected by 6.0.0 changes:src/parsing/parser.rs,src/parsing/regex.rs,src/parsing/syntax_set.rs,src/highlighting/selector.rs,src/html.rs,src/dumps.rs,src/easy.rs.into_builder()round-tripping (Merging two syntax sets panics #574), Send+Sync safety (ParseState isn't Send and Sync with onig #297), and error type wrapping (Remove dependencies from public API #512).Prior art
The fork already has some mutation testing experience (commits
a8953e3,252b4a4killing surviving mutations in branch/fail code). The same approach should be extended to the rest of the codebase.This is a prerequisite to performance regression testing — ensuring correctness can be tested effectively is necessary before performance regressions can be meaningfully checked. The 6.0.0 release touches core parsing, highlighting, and serialization internals, and mutation testing surfaces gaps in test coverage that conventional metrics miss. Suggested for the syntect 6.0.0 milestone.