diff options
author | Christian Murphy <christian.murphy.42@gmail.com> | 2023-04-01 03:09:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-01 12:09:26 +0200 |
commit | b3a921c761309ae00a51fe348d8a43adbc54b518 (patch) | |
tree | 4e3b50a46d35cd3ce768746c12088fadf36f43fc | |
parent | 2498e31eecead798efc649502bbf5f86feaa94be (diff) | |
download | markdown-rs-b3a921c761309ae00a51fe348d8a43adbc54b518.tar.gz markdown-rs-b3a921c761309ae00a51fe348d8a43adbc54b518.tar.bz2 markdown-rs-b3a921c761309ae00a51fe348d8a43adbc54b518.zip |
Add `honggfuzz` as an alternative fuzzer
Closes GH-55.
Reviewed-by: Titus Wormer <tituswormer@gmail.com>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | fuzz/Cargo.toml | 11 | ||||
-rw-r--r-- | fuzz/fuzz_targets/markdown_honggfuzz.rs | 15 | ||||
-rw-r--r-- | fuzz/fuzz_targets/markdown_libfuzz.rs (renamed from fuzz/fuzz_targets/markdown.rs) | 0 | ||||
-rw-r--r-- | readme.md | 4 |
5 files changed, 29 insertions, 3 deletions
@@ -8,3 +8,5 @@ unicode-data.txt fuzz/target fuzz/corpus fuzz/artifacts +fuzz/hfuzz_target +fuzz/hfuzz_workspace
\ No newline at end of file diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index c8f9850..6a50fd2 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -10,6 +10,7 @@ cargo-fuzz = true [dependencies] libfuzzer-sys = "0.4" +honggfuzz = "0.5" [dependencies.markdown] path = ".." @@ -19,7 +20,13 @@ path = ".." members = ["."] [[bin]] -name = "markdown" -path = "fuzz_targets/markdown.rs" +name = "markdown_libfuzz" +path = "fuzz_targets/markdown_libfuzz.rs" test = false doc = false + +[[bin]] +name = "markdown_honggfuzz" +path = "fuzz_targets/markdown_honggfuzz.rs" +test = false +doc = false
\ No newline at end of file diff --git a/fuzz/fuzz_targets/markdown_honggfuzz.rs b/fuzz/fuzz_targets/markdown_honggfuzz.rs new file mode 100644 index 0000000..6aa3c79 --- /dev/null +++ b/fuzz/fuzz_targets/markdown_honggfuzz.rs @@ -0,0 +1,15 @@ +use honggfuzz::fuzz; + +fn main() { + loop { + fuzz!(|data: &[u8]| { + if let Ok(s) = std::str::from_utf8(data) { + let _ = markdown::to_html(s); + let _ = markdown::to_html_with_options(s, &markdown::Options::gfm()); + let _ = markdown::to_mdast(s, &markdown::ParseOptions::default()); + let _ = markdown::to_mdast(s, &markdown::ParseOptions::gfm()); + let _ = markdown::to_mdast(s, &markdown::ParseOptions::mdx()); + } + }); + } +} diff --git a/fuzz/fuzz_targets/markdown.rs b/fuzz/fuzz_targets/markdown_libfuzz.rs index ca6d86b..ca6d86b 100644 --- a/fuzz/fuzz_targets/markdown.rs +++ b/fuzz/fuzz_targets/markdown_libfuzz.rs @@ -268,7 +268,9 @@ The following bash scripts are useful when working on this project: * fuzz: ```sh cargo install cargo-fuzz - cargo +nightly fuzz run markdown + cargo install honggfuzz + cargo +nightly fuzz run markdown_libfuzz + cargo hfuzz run markdown_honggfuzz ``` ### Version |