Move fuzzing corpus generation to xtask

Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
This commit is contained in:
Andrew Gunnerson
2026-01-09 20:14:07 -05:00
parent 68d5bd6990
commit cd7316b429
4 changed files with 198 additions and 72 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ While avbroot's parsers are all memory-safe, it is still possible for panics or
2. [Optional] Generate sample files to use as the initial fuzzing corpus.
```bash
./corpus/build.sh
cargo xtask fuzz-corpus
```
3. Pick a fuzz target to run. A fuzz target is the name of the source file in [`src/bin/`](./src/bin) without the `.rs` extension.
-70
View File
@@ -1,70 +0,0 @@
#!/bin/bash
set -eu
cd "$(dirname "${BASH_SOURCE[0]}")"
pushd ../.. >/dev/null
cargo build
popd >/dev/null
avbroot=$(pwd)/../../target/debug/avbroot
generate_corpus() {
local generator=${1}
local corpus_dir=${2}
local suffix=${3}
for dir in "${corpus_dir}"/*/; do
output=${dir%/}${suffix}
output=../hfuzz_workspace/${output/\//\/input\/}
abs_output=$(pwd)/${output}
echo "# ${dir} -> ${output}"
mkdir -p "${abs_output%/*}"
pushd "${dir}" >/dev/null
"${generator}" "${abs_output}"
popd >/dev/null
echo
done
}
generate_avb_image() {
"${avbroot}" avb pack -q -o "${1}"
}
generate_boot_image() {
if [[ -d vts_signature ]]; then
pushd vts_signature >/dev/null
"${avbroot}" avb pack -q -o ../vts_signature.img
popd >/dev/null
fi
"${avbroot}" boot pack -q -o "${1}"
}
generate_cpio_image() {
"${avbroot}" cpio pack -q -o "${1}"
}
generate_fec_image() {
"${avbroot}" fec generate -i input.img -f "${1}"
}
generate_lp_image() {
"${avbroot}" lp pack -q -o "${1}"
}
generate_sparse_image() {
"${avbroot}" sparse pack -q -i input.img -o "${1}"
}
generate_corpus generate_avb_image avb .img
generate_corpus generate_boot_image bootimage .img
generate_corpus generate_cpio_image cpio .cpio
generate_corpus generate_fec_image fec .fec
generate_corpus generate_lp_image lp .img
generate_corpus generate_sparse_image sparse .img