diff --git a/package/version b/package/version index 9dd1793..a52e041 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.34 +0.1.35 diff --git a/pyproject.toml b/pyproject.toml index 52e1a54..b82ee07 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "skribe" -version = "0.1.34" +version = "0.1.35" description = "Property testing for Stylus smart contracts" readme = "README.md" requires-python = "~=3.10" diff --git a/skribe-fuzz-rs/Cargo.lock b/skribe-fuzz-rs/Cargo.lock index 0f869df..fffcc0c 100644 --- a/skribe-fuzz-rs/Cargo.lock +++ b/skribe-fuzz-rs/Cargo.lock @@ -1352,6 +1352,12 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + [[package]] name = "pkcs8" version = "0.10.2" @@ -1854,6 +1860,7 @@ name = "skribe-libfuzzer" version = "0.0.0" dependencies = [ "libfuzzer-sys", + "pico-args", "skribe-fuzz-rs", ] diff --git a/skribe-fuzz-rs/Cargo.toml b/skribe-fuzz-rs/Cargo.toml index d78f3ed..fca6db0 100644 --- a/skribe-fuzz-rs/Cargo.toml +++ b/skribe-fuzz-rs/Cargo.toml @@ -14,6 +14,7 @@ hex-literal = "1.1.0" kframework = { git = "https://github.com/runtimeverification/kframework-rs.git", rev = "1e7ee3a" } kframework_ffi = { git = "https://github.com/runtimeverification/kframework-rs.git", rev = "1e7ee3a" } libfuzzer-sys = "0.4" +pico-args = "0.5.0" serde = "1.0.228" serde_json = "1.0.149" diff --git a/skribe-fuzz-rs/fuzz/Cargo.toml b/skribe-fuzz-rs/fuzz/Cargo.toml index 49027c8..48bffaa 100644 --- a/skribe-fuzz-rs/fuzz/Cargo.toml +++ b/skribe-fuzz-rs/fuzz/Cargo.toml @@ -9,6 +9,7 @@ cargo-fuzz = true [dependencies] libfuzzer-sys.workspace = true +pico-args = { workspace = true, features = ["eq-separator"] } [dependencies.skribe-fuzz-rs] path = ".." diff --git a/skribe-fuzz-rs/fuzz/fuzz_targets/fuzz_target_1.rs b/skribe-fuzz-rs/fuzz/fuzz_targets/fuzz_target_1.rs index 163d0e3..9310cf3 100644 --- a/skribe-fuzz-rs/fuzz/fuzz_targets/fuzz_target_1.rs +++ b/skribe-fuzz-rs/fuzz/fuzz_targets/fuzz_target_1.rs @@ -2,10 +2,25 @@ use libfuzzer_sys::fuzz_target; -use skribe_fuzz_rs::{kllvm, make_dv}; +use pico_args::Arguments; + +use skribe_fuzz_rs::{kllvm, fuzz_specs_from_json, make_dv}; fuzz_target!( init: { kllvm::init(); + let mut args = Arguments::from_env(); + + let fuzz_spec_file: Option = args + // You must pass this option as `--fuzz-spec=` with the + // equals sign, otherwise libfuzzer treats it as a positional argument + .opt_value_from_str("--fuzz-spec") + .unwrap(); + + if let Some(file) = fuzz_spec_file { + let contents = std::fs::read_to_string(file).unwrap(); + let specs = fuzz_specs_from_json(&contents).unwrap(); + println!("{:?}", specs); + } }, |data: &[u8]| { let _ = make_dv(); diff --git a/uv.lock b/uv.lock index 50c9687..3b5c721 100644 --- a/uv.lock +++ b/uv.lock @@ -1815,7 +1815,7 @@ wheels = [ [[package]] name = "skribe" -version = "0.1.34" +version = "0.1.35" source = { editable = "." } dependencies = [ { name = "kontrol" },