...
1
16
17 package fuzzer
18
19 import (
20 fuzz "github.com/google/gofuzz"
21
22 runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
23 api "k8s.io/kubernetes/pkg/apis/core"
24 "k8s.io/kubernetes/pkg/apis/discovery"
25 )
26
27
28 var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
29 return []interface{}{
30 func(obj *discovery.EndpointSlice, c fuzz.Continue) {
31 c.FuzzNoCustom(obj)
32
33 addressTypes := []discovery.AddressType{discovery.AddressTypeIPv4, discovery.AddressTypeIPv6, discovery.AddressTypeFQDN}
34 obj.AddressType = addressTypes[c.Rand.Intn(len(addressTypes))]
35
36 for i, endpointPort := range obj.Ports {
37 if endpointPort.Name == nil {
38 emptyStr := ""
39 obj.Ports[i].Name = &emptyStr
40 }
41
42 if endpointPort.Protocol == nil {
43 protos := []api.Protocol{api.ProtocolTCP, api.ProtocolUDP, api.ProtocolSCTP}
44 obj.Ports[i].Protocol = &protos[c.Rand.Intn(len(protos))]
45 }
46 }
47 },
48 }
49 }
50
View as plain text