Skip to content

Commit

Permalink
add fuzzing
Browse files Browse the repository at this point in the history
  • Loading branch information
Dav1dde committed Sep 26, 2024
1 parent b2ae90f commit 96ca156
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 3 deletions.
25 changes: 25 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = ["relay", "relay-*", "tools/*"]
members = ["relay", "relay-*", "relay-*/fuzz/", "tools/*"]
default-members = ["relay"]
resolver = "2"

Expand Down
4 changes: 4 additions & 0 deletions relay-pattern/fuzz/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
target
corpus
artifacts
coverage
26 changes: 26 additions & 0 deletions relay-pattern/fuzz/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[package]
name = "relay-pattern-fuzz"
version = "0.0.0"
publish = false
edition = "2021"

[package.metadata]
cargo-fuzz = true

[dependencies]
libfuzzer-sys = "0.4"
relay-pattern = { path = ".." }

[[bin]]
name = "is_match_case_sensitive"
path = "fuzz_targets/is_match_case_sensitive.rs"
test = false
doc = false
bench = false

[[bin]]
name = "is_match_case_insensitive"
path = "fuzz_targets/is_match_case_insensitive.rs"
test = false
doc = false
bench = false
13 changes: 13 additions & 0 deletions relay-pattern/fuzz/fuzz_targets/is_match_case_insensitive.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#![no_main]

use libfuzzer_sys::fuzz_target;

fuzz_target!(|input: (&str, &str)| {
let (pattern, haystack) = input;
if let Ok(pattern) = relay_pattern::Pattern::builder(pattern)
.case_insensitive(true)
.build()
{
std::hint::black_box(pattern.is_match(haystack));
}
});
10 changes: 10 additions & 0 deletions relay-pattern/fuzz/fuzz_targets/is_match_case_sensitive.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#![no_main]

use libfuzzer_sys::fuzz_target;

fuzz_target!(|input: (&str, &str)| {
let (pattern, haystack) = input;
if let Ok(pattern) = relay_pattern::Pattern::new(pattern) {
std::hint::black_box(pattern.is_match(haystack));
}
});
4 changes: 2 additions & 2 deletions relay-pattern/src/wildmatch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ trait TokenIndex: std::ops::Index<usize, Output = Token> + std::fmt::Debug {
&'a self,
offset: usize,
alternate: &'a [Token],
) -> Self::WithAlternates<'_>;
) -> Self::WithAlternates<'a>;
}

impl TokenIndex for [Token] {
Expand All @@ -370,7 +370,7 @@ impl TokenIndex for [Token] {
&'a self,
offset: usize,
alternate: &'a [Token],
) -> Self::WithAlternates<'_> {
) -> Self::WithAlternates<'a> {
AltAndTokens {
alternate,
tokens: &self[offset..],
Expand Down

0 comments on commit 96ca156

Please sign in to comment.