[!fuzz-instrumented] skip

[short] skip
env GOCACHE=$WORK/cache

# Fuzz cache should not exist after a regular test run.
go test .
exists $GOCACHE
! exists $GOCACHE/fuzz

# Fuzzing should write interesting values to the cache.
go test -fuzz=FuzzY -fuzztime=100x .
go run ./contains_files $GOCACHE/fuzz/example.com/y/FuzzY

# 'go clean -cache' should not delete the fuzz cache.
go clean -cache
exists $GOCACHE/fuzz

# 'go clean -fuzzcache' should delete the fuzz cache but not the build cache.
go list -f {{.Stale}} ./empty
stdout true
go install ./empty
go list -f {{.Stale}} ./empty
stdout false
go clean -fuzzcache
! exists $GOCACHE/fuzz
go list -f {{.Stale}} ./empty
stdout false

# Fuzzing indicates that one new interesting value was found with an empty
# corpus, and the total size of the cache is now 1.
go clean -fuzzcache
go test -fuzz=FuzzEmpty -fuzztime=10000x .
stdout 'new interesting: 1'
stdout 'total: 1'

# Fuzzing again with a small fuzztime does not find any other interesting
# values but still indicates that the cache size is 1.
go test -fuzz=FuzzEmpty -fuzztime=2x .
stdout 'new interesting: 0'
stdout 'total: 1'

-- go.mod --
module example.com/y

go 1.16
-- y_test.go --
package y

import (
	"io"
	"testing"
)

func FuzzEmpty(f *testing.F) {
    f.Fuzz(func (*testing.T, []byte) {})
}

func FuzzY(f *testing.F) {
	f.Add([]byte("y"))
	f.Fuzz(func(t *testing.T, b []byte) { Y(io.Discard, b) })
}
-- y.go --
package y

import (
	"bytes"
	"io"
)

func Y(w io.Writer, b []byte) {
	if !bytes.Equal(b, []byte("y")) {
		w.Write([]byte("not equal"))
	}
}
-- empty/empty.go --
package empty
-- contains_files/contains_files.go --
package main

import (
	"fmt"
	"path/filepath"
	"io/ioutil"
	"os"
)

func main() {
	infos, err := ioutil.ReadDir(filepath.Clean(os.Args[1]))
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
	if len(infos) == 0 {
		os.Exit(1)
	}
}
