rust-lang / rust-lang/regex

Add differential fuzzing between different regex engines

Open
#1,003 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
4k
Forks
534
PR merge metrics
No merged PRs in 30d

Description

We observed some success with differential fuzzing between the regex 1.8 and 1.9 in #848. The 1.9 release promises to have many different engines with different optimisation strategies; it would be good to take advantage of this to verify the engines with each other, which may identify subtle bugs with the compilation or execution of regexes.

This is discussed in some detail (with a proof of concept) in #978 but requires quite a bit more engineering, and can only really be written by someone intimately familiar with the 1.9 release as it would need to account for all potential use cases of the crate.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the proof of concept and discussion in issue #978, then review the earlier differential-fuzzing work in #848. Understand the regex 1.9 engine implementations and their potential use cases before designing the comparison approach. Done means differential fuzzing can verify the engines against one another and expose compilation or execution bugs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.