37 lines
1.1 KiB
YAML
37 lines
1.1 KiB
YAML
# Fuzz smoke, Go. Dispatched by hand when a change asks for it.
|
|
#
|
|
# Fuzzing is exploration, so it never belongs to the push pipeline; a 30 second
|
|
# smoke per target on a hand dispatch checks a change without holding the
|
|
# shared box. The targets run the seeds and whatever the corpus has gathered; a
|
|
# failure leaves its crashing input in testdata/fuzz, which the ordinary suite
|
|
# then reproduces on every push.
|
|
#
|
|
# Every step is one command, so the step that fails is the gate that failed.
|
|
name: Fuzz
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
# One core: parallelism buys no speed here and costs memory the box does not have.
|
|
GOFLAGS: -p=1
|
|
GOMAXPROCS: "2"
|
|
|
|
jobs:
|
|
fuzz:
|
|
runs-on: fedora
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
cache: true
|
|
|
|
- name: Fuzz the parser
|
|
run: go test -run '^$' -fuzz FuzzParse -fuzztime=30s -timeout 10m .
|
|
|
|
- name: Fuzz the encoder
|
|
run: go test -run '^$' -fuzz FuzzMarshal -fuzztime=30s -timeout 10m .
|