Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Fuzz

on:
push:
branches: ["main"]
pull_request:

env:
CARGO_TERM_COLOR: always

jobs:
fuzz-smoke:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5

# Pinned nightly (matches the version the fuzz suite was developed
# against) so upstream nightly breakage can't fail CI.
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2025-12-04

- uses: Swatinem/rust-cache@v2
with:
workspaces: types/fuzz

- name: Install cargo-binstall
uses: cargo-bins/cargo-binstall@main

- name: Install cargo-fuzz
run: cargo binstall --no-confirm cargo-fuzz

- name: Build fuzz targets
run: cargo fuzz build
working-directory: types

# Short smoke run per target: catches regressions on shallow inputs.
# Longer exploratory runs are meant to be done locally (see fuzz/README.md).
- name: Smoke-run fuzz targets
working-directory: types
run: |
for target in $(cargo fuzz list); do
echo "::group::${target}"
cargo fuzz run "$target" -- -max_total_time=15
echo "::endgroup::"
done
4 changes: 4 additions & 0 deletions types/fuzz/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
target
corpus
artifacts
coverage
Loading
Loading