test: add fuzzing to the test suite (#1463)

As a part of #1298, we add fuzzing based on Go test's fuzzing support to the test suite
This commit is contained in:
Yusuke Kuoka 2022-05-19 21:34:23 +09:00 committed by GitHub
parent 84210f3d2b
commit 3e988afc09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View File

@ -56,6 +56,7 @@ GO_TEST_ARGS ?= -short
# Run tests
test: generate fmt vet manifests
go test $(GO_TEST_ARGS) ./... -coverprofile cover.out
go test -fuzz=Fuzz -fuzztime=10s -run=Fuzz* ./controllers
test-with-deps: kube-apiserver etcd kubectl
# See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/envtest#pkg-constants

View File

@ -605,3 +605,13 @@ func parseAndMatchRecurringPeriod(now time.Time, start, end, frequency, until st
return MatchSchedule(now, startTime, endTime, RecurrenceRule{Frequency: frequency, UntilTime: untilTime})
}
func FuzzMatchSchedule(f *testing.F) {
start := time.Now()
end := time.Now()
now := time.Now()
f.Fuzz(func(t *testing.T, freq string) {
// Verify that it never panics
_, _, _ = MatchSchedule(now, start, end, RecurrenceRule{Frequency: freq})
})
}