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:
parent
84210f3d2b
commit
3e988afc09
1
Makefile
1
Makefile
|
|
@ -56,6 +56,7 @@ GO_TEST_ARGS ?= -short
|
||||||
# Run tests
|
# Run tests
|
||||||
test: generate fmt vet manifests
|
test: generate fmt vet manifests
|
||||||
go test $(GO_TEST_ARGS) ./... -coverprofile cover.out
|
go test $(GO_TEST_ARGS) ./... -coverprofile cover.out
|
||||||
|
go test -fuzz=Fuzz -fuzztime=10s -run=Fuzz* ./controllers
|
||||||
|
|
||||||
test-with-deps: kube-apiserver etcd kubectl
|
test-with-deps: kube-apiserver etcd kubectl
|
||||||
# See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/envtest#pkg-constants
|
# See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/envtest#pkg-constants
|
||||||
|
|
|
||||||
|
|
@ -605,3 +605,13 @@ func parseAndMatchRecurringPeriod(now time.Time, start, end, frequency, until st
|
||||||
|
|
||||||
return MatchSchedule(now, startTime, endTime, RecurrenceRule{Frequency: frequency, UntilTime: untilTime})
|
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})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue