[!fuzz] skip
+[short] skip
+env GOCACHE=$WORK/cache
# Test that running a fuzz target that returns without failing or calling
# f.Fuzz fails and causes a non-zero exit status.
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# Run chatty fuzz targets with an error.
! go test -v chatty_error_fuzz_test.go
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# Cleanup should run after F.Skip.
go test -run=FuzzTargetSkip
[short] skip
[!fuzz-instrumented] skip
+env GOCACHE=$WORK/cache
# TODO(#51484): enabled debugging info to help diagnose a deadlock in the fuzzer
env GODEBUG=fuzzdebug=1
-go clean --fuzzcache
! go test -fuzz=FuzzCov -v
! stderr 'cov instrumentation working'
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# The fuzz function should be able to detect whether -timeout
# was set with T.Deadline. Note there is no F.Deadline, and
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# This test checks that cached corpus loading properly handles duplicate entries (this can
# happen when a f.Add value has a duplicate entry in the cached corpus.) Duplicate entries
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# There are no seed values, so 'go test' should finish quickly.
go test
# Timeout should not cause inputs to be written as crashers.
! exists testdata/fuzz
-env GOCACHE=$WORK/tmp
-
# When we use fuzztime with an "x" suffix, it runs a specific number of times.
# This fuzz function creates a file with a unique name ($pid.$count) on each
# run. We count the files to find the number of runs.
# due to ^C and EOF errors which are more common. We don't report those.
[short] skip
[!fuzz] skip
+env GOCACHE=$WORK/cache
# If the I/O error occurs before F.Fuzz is called, the coordinator should
# stop the worker and say that.
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# FuzzA attempts to cause the mutator to create duplicate inputs that generate
# new coverage. Previously this would trigger a corner case when the fuzzer
# had a execution limit, causing it to deadlock and sit in the coordinator
# loop indefinitely, failing to exit once the limit had been exhausted.
-go clean --fuzzcache
go test -fuzz=FuzzA -fuzztime=100x -parallel=1
-- go.mod --
[!fuzz] skip
+[short] skip
+env GOCACHE=$WORK/cache
# Matches only fuzz targets to test.
go test standalone_fuzz_test.go
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# With fuzzing disabled, multiple targets can be tested.
go test ./...
# to the seed corpus in testdata, and failing the next time the test is run.
[short] skip
+env GOCACHE=$WORK/cache
# Running the seed corpus for all of the targets should pass the first
# time, since nothing in the seed corpus will cause a crash.
# 'go test' exits non-zero and no crasher is recorded.
[short] skip
+env GOCACHE=$WORK/cache
! go test -fuzz=FuzzReturn
! exists testdata
# tests seed values and the worker tests mutated values on the fuzz target.
[short] skip
+env GOCACHE=$WORK/cache
go test -fuzz=FuzzA -fuzztime=100x -parallel=1 -log=fuzz
go run check_logs.go fuzz fuzz.worker
# to the coordinator.
[short] skip
+env GOCACHE=$WORK/cache
# Start fuzzing. The worker crashes after 100 iterations.
# The fuzz function writes the crashing input to "want" before exiting.
[GOOS:windows] skip
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# FuzzNonCrash sends itself a signal that does not appear to be a crash.
# We should not save a crasher.
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
# When running seed inputs, T.Parallel should let multiple inputs run in
# parallel.
[!fuzz] skip
[short] skip
+env GOCACHE=$WORK/cache
go test -fuzz=FuzzA -fuzztime=100x fuzz_setenv_test.go
[short] skip
[!fuzz] skip
[!race] skip
+env GOCACHE=$WORK/cache
# Test with coverage instrumentation enabled (-fuzz) and race instrumentation
# but without actually fuzzing the target (by using a non-matching pattern)