Jelajahi Sumber

fuzz: Serialize attempt

parazyd 3 tahun lalu
induk
melakukan
00e4456787
3 mengubah file dengan 49 tambahan dan 0 penghapusan
  1. 5 0
      fuzz/.gitignore
  2. 31 0
      fuzz/Cargo.toml
  3. 13 0
      fuzz/fuzz_targets/serial.rs

+ 5 - 0
fuzz/.gitignore

@@ -0,0 +1,5 @@
+target
+corpus
+artifacts
+coverage
+Cargo.lock

+ 31 - 0
fuzz/Cargo.toml

@@ -0,0 +1,31 @@
+[package]
+name = "darkfi-fuzz"
+version = "0.0.0"
+publish = false
+edition = "2021"
+
+[package.metadata]
+cargo-fuzz = true
+
+[dependencies]
+libfuzzer-sys = "0.4"
+
+[dependencies.darkfi]
+path = ".."
+
+[dependencies.darkfi-serial]
+path = "../src/serial"
+features = ["derive", "semver", "collections", "crypto", "hash"]
+
+# Prevent this from interfering with workspaces
+[workspace]
+members = ["."]
+
+[profile.release]
+debug = 1
+
+[[bin]]
+name = "serial"
+path = "fuzz_targets/serial.rs"
+test = false
+doc = false

+ 13 - 0
fuzz/fuzz_targets/serial.rs

@@ -0,0 +1,13 @@
+#![no_main]
+extern crate darkfi_serial;
+use darkfi_serial::{deserialize, serialize};
+
+use libfuzzer_sys::fuzz_target;
+
+fuzz_target!(|data: &[u8]| {
+    if let Ok(s) = std::str::from_utf8(data) {
+        let ser = serialize(&s);
+        let des: String = deserialize(&ser).unwrap();
+        assert_eq!(s, des);
+    }
+});