aboutsummaryrefslogtreecommitdiff
path: root/lib/header
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2024-12-18 09:19:16 +0100
committerMiquel Sabaté Solà <mikisabate@gmail.com>2024-12-18 09:19:16 +0100
commit6af3219daee1457c3b9fb03fe73d2b0019d70408 (patch)
tree266f263c52846b6b53167df370175935780eea10 /lib/header
parent407048d0037c8d6d26c7e3fe2384e974212f124e (diff)
downloadtools.nes-6af3219daee1457c3b9fb03fe73d2b0019d70408.tar.gz
tools.nes-6af3219daee1457c3b9fb03fe73d2b0019d70408.zip
header: Add fuzzy testing
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'lib/header')
-rw-r--r--lib/header/fuzz/.gitignore4
-rw-r--r--lib/header/fuzz/Cargo.lock63
-rw-r--r--lib/header/fuzz/Cargo.toml24
-rw-r--r--lib/header/fuzz/fuzz_targets/fuzz_target_header.rs7
4 files changed, 98 insertions, 0 deletions
diff --git a/lib/header/fuzz/.gitignore b/lib/header/fuzz/.gitignore
new file mode 100644
index 0000000..1a45eee
--- /dev/null
+++ b/lib/header/fuzz/.gitignore
@@ -0,0 +1,4 @@
+target
+corpus
+artifacts
+coverage
diff --git a/lib/header/fuzz/Cargo.lock b/lib/header/fuzz/Cargo.lock
new file mode 100644
index 0000000..190ed38
--- /dev/null
+++ b/lib/header/fuzz/Cargo.lock
@@ -0,0 +1,63 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "arbitrary"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
+
+[[package]]
+name = "cc"
+version = "1.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf"
+dependencies = [
+ "jobserver",
+ "libc",
+ "shlex",
+]
+
+[[package]]
+name = "header"
+version = "0.1.0"
+
+[[package]]
+name = "header-fuzz"
+version = "0.0.0"
+dependencies = [
+ "header",
+ "libfuzzer-sys",
+]
+
+[[package]]
+name = "jobserver"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.168"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d"
+
+[[package]]
+name = "libfuzzer-sys"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b9569d2f74e257076d8c6bfa73fb505b46b851e51ddaecc825944aa3bed17fa"
+dependencies = [
+ "arbitrary",
+ "cc",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
diff --git a/lib/header/fuzz/Cargo.toml b/lib/header/fuzz/Cargo.toml
new file mode 100644
index 0000000..9ea48be
--- /dev/null
+++ b/lib/header/fuzz/Cargo.toml
@@ -0,0 +1,24 @@
+[package]
+name = "header-fuzz"
+version = "0.0.0"
+publish = false
+edition = "2021"
+
+[workspace]
+members = []
+
+[package.metadata]
+cargo-fuzz = true
+
+[dependencies]
+libfuzzer-sys = "0.4"
+
+[dependencies.header]
+path = ".."
+
+[[bin]]
+name = "fuzz_target_header"
+path = "fuzz_targets/fuzz_target_header.rs"
+test = false
+doc = false
+bench = false
diff --git a/lib/header/fuzz/fuzz_targets/fuzz_target_header.rs b/lib/header/fuzz/fuzz_targets/fuzz_target_header.rs
new file mode 100644
index 0000000..794853a
--- /dev/null
+++ b/lib/header/fuzz/fuzz_targets/fuzz_target_header.rs
@@ -0,0 +1,7 @@
+#![no_main]
+
+use libfuzzer_sys::fuzz_target;
+
+fuzz_target!(|data: &[u8]| {
+ let _ = header::Header::try_from(data);
+});