From 42c84079c3c347b48ba272365117dd260b45a804 Mon Sep 17 00:00:00 2001 From: jneem Date: Sat, 19 Oct 2024 08:22:23 +0700 Subject: [PATCH] Add fuzzing (#15) --- Cargo.toml | 1 + fuzz/Cargo.toml | 19 +++++++++++++++++++ fuzz/fuzz_targets/parse.rs | 9 +++++++++ 3 files changed, 29 insertions(+) create mode 100644 fuzz/Cargo.toml create mode 100644 fuzz/fuzz_targets/parse.rs diff --git a/Cargo.toml b/Cargo.toml index 7c6bcc9..5ada1fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ members = [ "bench", "bench/tools/gen_large_yaml", "bench/tools/bench_compare", + "fuzz", ] resolver = "2" diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml new file mode 100644 index 0000000..29d1e2e --- /dev/null +++ b/fuzz/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "saphyr-fuzz" +version = "0.0.0" +publish = false +edition = "2021" + +[package.metadata] +cargo-fuzz = true + +[dependencies] +libfuzzer-sys = "0.4" +saphyr.workspace = true + +[[bin]] +name = "parse" +path = "fuzz_targets/parse.rs" +test = false +doc = false +bench = false diff --git a/fuzz/fuzz_targets/parse.rs b/fuzz/fuzz_targets/parse.rs new file mode 100644 index 0000000..b8b6911 --- /dev/null +++ b/fuzz/fuzz_targets/parse.rs @@ -0,0 +1,9 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; + +fuzz_target!(|data: &[u8]| { + if let Ok(s) = std::str::from_utf8(data) { + let _ = saphyr::Yaml::load_from_str(s); + } +});