Skip to content

test(viewer): bundle_diff proptest surface (WBS-6.2 #434) #377

test(viewer): bundle_diff proptest surface (WBS-6.2 #434)

test(viewer): bundle_diff proptest surface (WBS-6.2 #434) #377

Workflow file for this run

# Soft / nightly sustained fuzz cadence for C07 L67 beyond PR fuzz-smoke.
# PR path: hermetic SelfCheck only (keeps default PR CI fast).
# Schedule / dispatch: 120s per target + crash artifact upload on failure.
# continue-on-error: soft gate; does not block merges.
name: fuzz cadence
on:
schedule:
- cron: "57 4 * * *" # nightly 04:57 UTC (offset from miri/loom soft jobs)
workflow_dispatch:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
jobs:
fuzz-selfcheck:
name: soft fuzz · SelfCheck
runs-on: ubuntu-latest
timeout-minutes: 5
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: fuzz cadence SelfCheck
shell: pwsh
run: ./scripts/fuzz-cadence-check.ps1 -SelfCheck
fuzz-sustained:
name: soft fuzz · sustained 120s
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 45
continue-on-error: true
# cargo-fuzz requires nightly. rust-toolchain.toml pins an exact rustc, so force
# nightly via RUSTUP_TOOLCHAIN. Clear inherited RUSTFLAGS. Pin gnu host
# target — cargo-fuzz otherwise may pick musl, which cannot use ASAN.
env:
RUSTFLAGS: ""
RUSTUP_TOOLCHAIN: nightly
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # nightly for fuzz
with:
toolchain: nightly
components: rust-src
targets: x86_64-unknown-linux-gnu
- name: install cargo-fuzz
uses: taiki-e/install-action@e28ac56891501ddb0600608470dbe94544964ed4 # cargo-fuzz
with:
tool: cargo-fuzz
- name: sustained fuzz OKF parse and roundtrip (120s)
run: cargo +nightly fuzz run okf_roundtrip --sanitizer address --target x86_64-unknown-linux-gnu -- -max_total_time=120
- name: sustained fuzz JSONL ingest parse (120s)
run: cargo +nightly fuzz run jsonl_ingest --sanitizer address --target x86_64-unknown-linux-gnu -- -max_total_time=120
- name: upload fuzz crash artifacts
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: fuzz-crash-artifacts
path: fuzz/artifacts/
if-no-files-found: ignore
retention-days: 14