github.com/argoproj/argo-events@v1.9.1/controllers/eventbus/fuzz_test.go (about) 1 package eventbus 2 3 import ( 4 "context" 5 "sync" 6 "testing" 7 8 fuzz "github.com/AdaLogics/go-fuzz-headers" 9 appv1 "k8s.io/api/apps/v1" 10 corev1 "k8s.io/api/core/v1" 11 "k8s.io/client-go/kubernetes/scheme" 12 "sigs.k8s.io/controller-runtime/pkg/client/fake" 13 14 "github.com/argoproj/argo-events/controllers" 15 16 "github.com/argoproj/argo-events/common/logging" 17 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1" 18 ) 19 20 var initter sync.Once 21 22 func initScheme() { 23 _ = v1alpha1.AddToScheme(scheme.Scheme) 24 _ = appv1.AddToScheme(scheme.Scheme) 25 _ = corev1.AddToScheme(scheme.Scheme) 26 } 27 28 func FuzzEventbusReconciler(f *testing.F) { 29 f.Fuzz(func(t *testing.T, data []byte) { 30 initter.Do(initScheme) 31 f := fuzz.NewConsumer(data) 32 nativeBus := &v1alpha1.EventBus{} 33 err := f.GenerateStruct(nativeBus) 34 if err != nil { 35 return 36 } 37 cl := fake.NewClientBuilder().Build() 38 config := &controllers.GlobalConfig{} 39 err = f.GenerateStruct(config) 40 if err != nil { 41 return 42 } 43 r := &reconciler{ 44 client: cl, 45 scheme: scheme.Scheme, 46 config: config, 47 logger: logging.NewArgoEventsLogger(), 48 } 49 ctx := context.Background() 50 _ = r.reconcile(ctx, nativeBus) 51 _ = r.needsUpdate(nativeBus, nativeBus) 52 }) 53 }