Test individual monitor update compl in chanmon_consistency fuzzer
[rust-lightning] / fuzz / Cargo.toml
index 6b45066e80eaa48bcb42b66ca56329f94482a3a9..0c279a015c7398fe2ba0d8ba5e5b7ec49f2a154a 100644 (file)
@@ -3,6 +3,10 @@ name = "lightning-fuzz"
 version = "0.0.1"
 authors = ["Automatically generated"]
 publish = false
+edition = "2021"
+# Because the function is unused it gets dropped before we link lightning, so
+# we have to duplicate build.rs here. Note that this is only required for
+# fuzzing mode.
 
 [package.metadata]
 cargo-fuzz = true
@@ -10,26 +14,38 @@ cargo-fuzz = true
 [features]
 afl_fuzz = ["afl"]
 honggfuzz_fuzz = ["honggfuzz"]
+libfuzzer_fuzz = ["libfuzzer-sys"]
+stdin_fuzz = []
 
 [dependencies]
-lightning = { path = "..", features = ["fuzztarget"] }
-bitcoin = { version = "0.12", features = ["fuzztarget"] }
-secp256k1 = { version = "0.9", features = ["fuzztarget"] }
-honggfuzz = { version = "0.5", optional = true }
-afl = { version = "0.3", optional = true }
+lightning = { path = "../lightning", features = ["regex", "hashbrown", "_test_utils"] }
+lightning-rapid-gossip-sync = { path = "../lightning-rapid-gossip-sync" }
+bitcoin = { version = "0.30.2", features = ["secp-lowmemory"] }
+hex = { package = "hex-conservative", version = "0.1.1", default-features = false }
+hashbrown = "0.8"
+
+afl = { version = "0.12", optional = true }
+honggfuzz = { version = "0.5", optional = true, default-features = false }
+libfuzzer-sys = { version = "0.4", optional = true }
+
+[build-dependencies]
+cc = "1.0"
 
 # Prevent this from interfering with workspaces
 [workspace]
 members = ["."]
 
-[[bin]]
-name = "peer_crypt_target"
-path = "fuzz_targets/peer_crypt_target.rs"
+[profile.release]
+lto = true
+codegen-units = 1
+debug-assertions = true
+overflow-checks = true
 
-[[bin]]
-name = "channel_target"
-path = "fuzz_targets/channel_target.rs"
+# When testing a large fuzz corpus, -O1 offers a nice speedup
+[profile.dev]
+opt-level = 1
 
-[[bin]]
-name = "full_stack_target"
-path = "fuzz_targets/full_stack_target.rs"
+[lib]
+name = "lightning_fuzz"
+path = "src/lib.rs"
+crate-type = ["rlib", "dylib", "staticlib"]