diff --git a/.github/workflows/fuzz-test.yml b/.github/workflows/fuzz-test.yml index 0acc7ae..941c012 100644 --- a/.github/workflows/fuzz-test.yml +++ b/.github/workflows/fuzz-test.yml @@ -41,7 +41,10 @@ jobs: jq '.|select(.Action == "output")|select( (.Output|test("^(ok)|(\\?)"))|not )|{package: .Package, test: (.Output|gsub("\n";""))}'|\ jq --slurp \ ) - echo "matrix=${fuzz_test}" >> "${GITHUB_OUTPUT}" + export fuzz_tests + echo "matrix<> "${GITHUB_OUTPUT}" + printenv fuzz_tests >> "${GITHUB_OUTPUT}" + echo "EOF" >> "${GITHUB_OUTPUT}" echo "::notice title=Fuzz tests found:${fuzz_tests}" fuzz-test: diff --git a/sample/sample.go b/sample/sample.go index d38e9a3..ec30726 100644 --- a/sample/sample.go +++ b/sample/sample.go @@ -4,3 +4,11 @@ package sample func Sample() int { return 1 } + +func fuzzable(input []byte) string { + if len(input) > 0 { + return string(input) + } + + return "0" +} diff --git a/sample/sample_test.go b/sample/sample_test.go index e5adc7b..7c6a513 100644 --- a/sample/sample_test.go +++ b/sample/sample_test.go @@ -17,3 +17,15 @@ func TestSample(t *testing.T) { */ require.Equal(t, 1, Sample()) } + +func FuzzSample(f *testing.F) { + f.Add([]byte(nil)) + f.Add([]byte{}) + f.Add([]byte{'x'}) + + f.Fuzz(func(t *testing.T, input []byte) { + require.NotPanics(t, func() { + _ = fuzzable(input) + }) + }) +}