Skip to content

Commit e54719b

Browse files
committed
Use randfill, do API renames
1 parent 0eaee48 commit e54719b

File tree

87 files changed

+875
-873
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+875
-873
lines changed

cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717
package fuzzer
1818

1919
import (
20-
fuzz "github.com/google/gofuzz"
20+
"sigs.k8s.io/randfill"
2121

2222
corev1 "k8s.io/api/core/v1"
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -46,8 +46,8 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
4646
}
4747
}
4848

49-
func fuzzInitConfiguration(obj *kubeadm.InitConfiguration, c fuzz.Continue) {
50-
c.FuzzNoCustom(obj)
49+
func fuzzInitConfiguration(obj *kubeadm.InitConfiguration, c randfill.Continue) {
50+
c.FillNoCustom(obj)
5151

5252
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
5353

@@ -71,16 +71,16 @@ func fuzzInitConfiguration(obj *kubeadm.InitConfiguration, c fuzz.Continue) {
7171
kubeadm.SetDefaultTimeouts(&obj.Timeouts)
7272
}
7373

74-
func fuzzNodeRegistration(obj *kubeadm.NodeRegistrationOptions, c fuzz.Continue) {
75-
c.FuzzNoCustom(obj)
74+
func fuzzNodeRegistration(obj *kubeadm.NodeRegistrationOptions, c randfill.Continue) {
75+
c.FillNoCustom(obj)
7676

7777
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
7878
obj.IgnorePreflightErrors = nil
7979
obj.ImagePullSerial = ptr.To(true)
8080
}
8181

82-
func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c fuzz.Continue) {
83-
c.FuzzNoCustom(obj)
82+
func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c randfill.Continue) {
83+
c.FillNoCustom(obj)
8484

8585
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
8686
obj.CertificatesDir = "foo"
@@ -100,33 +100,33 @@ func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c fuzz.Continue
100100
obj.CACertificateValidityPeriod = &metav1.Duration{Duration: constants.CACertificateValidityPeriod}
101101
}
102102

103-
func fuzzDNS(obj *kubeadm.DNS, c fuzz.Continue) {
104-
c.FuzzNoCustom(obj)
103+
func fuzzDNS(obj *kubeadm.DNS, c randfill.Continue) {
104+
c.FillNoCustom(obj)
105105
obj.Disabled = false
106106
}
107107

108-
func fuzzComponentConfigMap(obj *kubeadm.ComponentConfigMap, c fuzz.Continue) {
108+
func fuzzComponentConfigMap(obj *kubeadm.ComponentConfigMap, c randfill.Continue) {
109109
// This is intentionally empty because component config does not exists in the public api
110110
// (empty mean all ComponentConfigs fields nil, and this is necessary for getting roundtrip passing)
111111
}
112112

113-
func fuzzLocalEtcd(obj *kubeadm.LocalEtcd, c fuzz.Continue) {
114-
c.FuzzNoCustom(obj)
113+
func fuzzLocalEtcd(obj *kubeadm.LocalEtcd, c randfill.Continue) {
114+
c.FillNoCustom(obj)
115115

116116
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
117117
obj.DataDir = "foo"
118118
}
119119

120-
func fuzzNetworking(obj *kubeadm.Networking, c fuzz.Continue) {
121-
c.FuzzNoCustom(obj)
120+
func fuzzNetworking(obj *kubeadm.Networking, c randfill.Continue) {
121+
c.FillNoCustom(obj)
122122

123123
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
124124
obj.DNSDomain = "foo"
125125
obj.ServiceSubnet = "bar"
126126
}
127127

128-
func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) {
129-
c.FuzzNoCustom(obj)
128+
func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c randfill.Continue) {
129+
c.FillNoCustom(obj)
130130

131131
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
132132
obj.CACertPath = "foo"
@@ -143,20 +143,20 @@ func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) {
143143
kubeadm.SetDefaultTimeouts(&obj.Timeouts)
144144
}
145145

146-
func fuzzJoinControlPlane(obj *kubeadm.JoinControlPlane, c fuzz.Continue) {
147-
c.FuzzNoCustom(obj)
146+
func fuzzJoinControlPlane(obj *kubeadm.JoinControlPlane, c randfill.Continue) {
147+
c.FillNoCustom(obj)
148148
}
149149

150-
func fuzzResetConfiguration(obj *kubeadm.ResetConfiguration, c fuzz.Continue) {
151-
c.FuzzNoCustom(obj)
150+
func fuzzResetConfiguration(obj *kubeadm.ResetConfiguration, c randfill.Continue) {
151+
c.FillNoCustom(obj)
152152

153153
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
154154
obj.CertificatesDir = "/tmp"
155155
kubeadm.SetDefaultTimeouts(&obj.Timeouts)
156156
}
157157

158-
func fuzzUpgradeConfiguration(obj *kubeadm.UpgradeConfiguration, c fuzz.Continue) {
159-
c.FuzzNoCustom(obj)
158+
func fuzzUpgradeConfiguration(obj *kubeadm.UpgradeConfiguration, c randfill.Continue) {
159+
c.FillNoCustom(obj)
160160

161161
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
162162
obj.Node.EtcdUpgrade = ptr.To(true)

cmd/kubeadm/app/apis/output/fuzzer/fuzzer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fuzzer
1919
import (
2020
"time"
2121

22-
fuzz "github.com/google/gofuzz"
22+
"sigs.k8s.io/randfill"
2323

2424
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2525
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
@@ -36,8 +36,8 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
3636
}
3737
}
3838

39-
func fuzzBootstrapToken(obj *output.BootstrapToken, c fuzz.Continue) {
40-
c.FuzzNoCustom(obj)
39+
func fuzzBootstrapToken(obj *output.BootstrapToken, c randfill.Continue) {
40+
c.FillNoCustom(obj)
4141

4242
obj.Token = &bootstraptokenv1.BootstrapTokenString{ID: "uvxdac", Secret: "fq35fuyue3kd4gda"}
4343
obj.Description = ""

pkg/api/testing/applyconfiguration_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"testing"
2323

2424
"github.com/google/go-cmp/cmp"
25-
fuzz "github.com/google/gofuzz"
2625
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
2726
apiequality "k8s.io/apimachinery/pkg/api/equality"
2827
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -31,6 +30,7 @@ import (
3130
"k8s.io/apimachinery/pkg/util/json"
3231
"k8s.io/client-go/applyconfigurations"
3332
v1mf "k8s.io/client-go/applyconfigurations/core/v1"
33+
"sigs.k8s.io/randfill"
3434

3535
"k8s.io/kubernetes/pkg/api/legacyscheme"
3636
api "k8s.io/kubernetes/pkg/apis/core"
@@ -166,22 +166,22 @@ func fuzzObject(t *testing.T, gvk schema.GroupVersionKind) runtime.Object {
166166
// Ensure that InitContainers and their statuses are not generated. This
167167
// is because in this test we are simply doing json operations, in which
168168
// those disappear.
169-
func(s *api.PodSpec, c fuzz.Continue) {
170-
c.FuzzNoCustom(s)
169+
func(s *api.PodSpec, c randfill.Continue) {
170+
c.FillNoCustom(s)
171171
s.InitContainers = nil
172172
},
173-
func(s *api.PodStatus, c fuzz.Continue) {
174-
c.FuzzNoCustom(s)
173+
func(s *api.PodStatus, c randfill.Continue) {
174+
c.FillNoCustom(s)
175175
s.InitContainerStatuses = nil
176176
},
177177
// Apply configuration types do not have managed fields, so we exclude
178178
// them in our fuzz test cases.
179-
func(s *v1.ObjectMeta, c fuzz.Continue) {
180-
c.FuzzNoCustom(s)
179+
func(s *v1.ObjectMeta, c randfill.Continue) {
180+
c.FillNoCustom(s)
181181
s.ManagedFields = nil
182182
s.SelfLink = ""
183183
},
184-
).Fuzz(internalObj)
184+
).Fill(internalObj)
185185

186186
item, err := legacyscheme.Scheme.New(externalVersion.WithKind(kind))
187187
if err != nil {

pkg/api/testing/conversion_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func BenchmarkPodConversion(b *testing.B) {
3636
apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs)
3737
items := make([]api.Pod, 4)
3838
for i := range items {
39-
apiObjectFuzzer.Fuzz(&items[i])
39+
apiObjectFuzzer.Fill(&items[i])
4040
items[i].Spec.InitContainers = nil
4141
items[i].Status.InitContainerStatuses = nil
4242
}

pkg/api/testing/copy_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"testing"
2424

2525
"github.com/google/go-cmp/cmp"
26-
fuzz "github.com/google/gofuzz"
26+
"sigs.k8s.io/randfill"
2727

2828
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
2929
"k8s.io/apimachinery/pkg/api/apitesting/roundtrip"
@@ -43,12 +43,12 @@ func TestDeepCopyApiObjects(t *testing.T) {
4343
}
4444
}
4545

46-
func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) {
46+
func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *randfill.Filler) {
4747
item, err := legacyscheme.Scheme.New(kind)
4848
if err != nil {
4949
t.Fatalf("Could not create a %v: %s", kind, err)
5050
}
51-
f.Fuzz(item)
51+
f.Fill(item)
5252
itemCopy := item.DeepCopyObject()
5353
if !reflect.DeepEqual(item, itemCopy) {
5454
t.Errorf("\nexpected: %#v\n\ngot: %#v\n\ndiff: %v", item, itemCopy, cmp.Diff(item, itemCopy))
@@ -61,7 +61,7 @@ func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer)
6161
}
6262

6363
// Refuzz the copy, which should have no effect on the original
64-
f.Fuzz(itemCopy)
64+
f.Fill(itemCopy)
6565

6666
postfuzzData := &bytes.Buffer{}
6767
if err := legacyscheme.Codecs.LegacyCodec(kind.GroupVersion()).Encode(item, postfuzzData); err != nil {

pkg/api/testing/defaulting_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"testing"
2424

2525
"github.com/google/go-cmp/cmp"
26-
fuzz "github.com/google/gofuzz"
26+
"sigs.k8s.io/randfill"
2727

2828
apiv1 "k8s.io/api/core/v1"
2929
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
@@ -219,20 +219,20 @@ func TestDefaulting(t *testing.T) {
219219
t.Run(gvk.String(), func(t *testing.T) {
220220
// Each sub-tests gets its own fuzzer instance to make running it independent
221221
// from what other tests ran before.
222-
f := fuzz.New().NilChance(.5).NumElements(1, 1).RandSource(rand.NewSource(1))
222+
f := randfill.New().NilChance(.5).NumElements(1, 1).RandSource(rand.NewSource(1))
223223
f.Funcs(
224-
func(s *runtime.RawExtension, c fuzz.Continue) {},
225-
func(s *metav1.LabelSelector, c fuzz.Continue) {
226-
c.FuzzNoCustom(s)
224+
func(s *runtime.RawExtension, c randfill.Continue) {},
225+
func(s *metav1.LabelSelector, c randfill.Continue) {
226+
c.FillNoCustom(s)
227227
s.MatchExpressions = nil // need to fuzz this specially
228228
},
229-
func(s *metav1.ListOptions, c fuzz.Continue) {
230-
c.FuzzNoCustom(s)
229+
func(s *metav1.ListOptions, c randfill.Continue) {
230+
c.FillNoCustom(s)
231231
s.LabelSelector = "" // need to fuzz requirement strings specially
232232
s.FieldSelector = "" // need to fuzz requirement strings specially
233233
},
234-
func(s *extensionsv1beta1.ScaleStatus, c fuzz.Continue) {
235-
c.FuzzNoCustom(s)
234+
func(s *extensionsv1beta1.ScaleStatus, c randfill.Continue) {
235+
c.FillNoCustom(s)
236236
s.TargetSelector = "" // need to fuzz requirement strings specially
237237
},
238238
)
@@ -262,7 +262,7 @@ func TestDefaulting(t *testing.T) {
262262
if err != nil {
263263
t.Fatal(err)
264264
}
265-
f.Fuzz(src)
265+
f.Fill(src)
266266

267267
src.GetObjectKind().SetGroupVersionKind(schema.GroupVersionKind{})
268268

@@ -289,10 +289,10 @@ func TestDefaulting(t *testing.T) {
289289
}
290290

291291
func BenchmarkPodDefaulting(b *testing.B) {
292-
f := fuzz.New().NilChance(.5).NumElements(1, 1).RandSource(rand.NewSource(1))
292+
f := randfill.New().NilChance(.5).NumElements(1, 1).RandSource(rand.NewSource(1))
293293
items := make([]apiv1.Pod, 100)
294294
for i := range items {
295-
f.Fuzz(&items[i])
295+
f.Fill(&items[i])
296296
}
297297

298298
scheme := legacyscheme.Scheme

pkg/api/testing/fuzzer.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package testing
1919
import (
2020
"fmt"
2121

22-
fuzz "github.com/google/gofuzz"
22+
"sigs.k8s.io/randfill"
2323

2424
appsv1 "k8s.io/api/apps/v1"
2525
v1 "k8s.io/api/core/v1"
@@ -51,9 +51,9 @@ import (
5151
// values in a Kubernetes context.
5252
func overrideGenericFuncs(codecs runtimeserializer.CodecFactory) []interface{} {
5353
return []interface{}{
54-
func(j *runtime.Object, c fuzz.Continue) {
54+
func(j *runtime.Object, c randfill.Continue) {
5555
// TODO: uncomment when round trip starts from a versioned object
56-
if true { //c.RandBool() {
56+
if true { // c.Bool() {
5757
*j = &runtime.Unknown{
5858
// We do not set TypeMeta here because it is not carried through a round trip
5959
Raw: []byte(`{"apiVersion":"unknown.group/unknown","kind":"Something","someKey":"someValue"}`),
@@ -62,15 +62,15 @@ func overrideGenericFuncs(codecs runtimeserializer.CodecFactory) []interface{} {
6262
} else {
6363
types := []runtime.Object{&api.Pod{}, &api.ReplicationController{}}
6464
t := types[c.Rand.Intn(len(types))]
65-
c.Fuzz(t)
65+
c.Fill(t)
6666
*j = t
6767
}
6868
},
69-
func(r *runtime.RawExtension, c fuzz.Continue) {
69+
func(r *runtime.RawExtension, c randfill.Continue) {
7070
// Pick an arbitrary type and fuzz it
7171
types := []runtime.Object{&api.Pod{}, &apps.Deployment{}, &api.Service{}}
7272
obj := types[c.Rand.Intn(len(types))]
73-
c.Fuzz(obj)
73+
c.Fill(obj)
7474

7575
var codec runtime.Codec
7676
switch obj.(type) {

pkg/api/testing/serialization_proto_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func fieldsHaveProtobufTags(obj reflect.Type) error {
9999

100100
func TestProtobufRoundTrip(t *testing.T) {
101101
obj := &v1.Pod{}
102-
fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs).Fuzz(obj)
102+
fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs).Fill(obj)
103103
// InitContainers are turned into annotations by conversion.
104104
obj.Spec.InitContainers = nil
105105
obj.Status.InitContainerStatuses = nil

pkg/api/testing/serialization_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ import (
5151
// fuzzInternalObject fuzzes an arbitrary runtime object using the appropriate
5252
// fuzzer registered with the apitesting package.
5353
func fuzzInternalObject(t *testing.T, forVersion schema.GroupVersion, item runtime.Object, seed int64) runtime.Object {
54-
fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs).Fuzz(item)
54+
fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs).Fill(item)
5555

5656
j, err := meta.TypeAccessor(item)
5757
if err != nil {
@@ -331,7 +331,7 @@ func TestUnversionedTypes(t *testing.T) {
331331
func TestObjectWatchFraming(t *testing.T) {
332332
f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs)
333333
secret := &api.Secret{}
334-
f.Fuzz(secret)
334+
f.Fill(secret)
335335
if secret.Data == nil {
336336
secret.Data = map[string][]byte{}
337337
}
@@ -418,7 +418,7 @@ func benchmarkItems(b *testing.B) []v1.Pod {
418418
items := make([]v1.Pod, 10)
419419
for i := range items {
420420
var pod api.Pod
421-
apiObjectFuzzer.Fuzz(&pod)
421+
apiObjectFuzzer.Fill(&pod)
422422
pod.Spec.InitContainers, pod.Status.InitContainerStatuses = nil, nil
423423
out, err := legacyscheme.Scheme.ConvertToVersion(&pod, v1.SchemeGroupVersion)
424424
if err != nil {
@@ -434,7 +434,7 @@ func benchmarkItemsList(b *testing.B, numItems int) v1.PodList {
434434
items := make([]v1.Pod, numItems)
435435
for i := range items {
436436
var pod api.Pod
437-
apiObjectFuzzer.Fuzz(&pod)
437+
apiObjectFuzzer.Fill(&pod)
438438
pod.Spec.InitContainers, pod.Status.InitContainerStatuses = nil, nil
439439
out, err := legacyscheme.Scheme.ConvertToVersion(&pod, v1.SchemeGroupVersion)
440440
if err != nil {

pkg/api/testing/unstructured_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
"testing"
2323

2424
"github.com/google/go-cmp/cmp"
25-
fuzz "github.com/google/gofuzz"
25+
"sigs.k8s.io/randfill"
2626

2727
v1 "k8s.io/api/core/v1"
2828
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
@@ -54,15 +54,15 @@ func doRoundTrip(t *testing.T, internalVersion schema.GroupVersion, externalVers
5454
// because in this test we are simply doing json operations, in which
5555
// those disappear.
5656
Funcs(
57-
func(s *api.PodSpec, c fuzz.Continue) {
58-
c.FuzzNoCustom(s)
57+
func(s *api.PodSpec, c randfill.Continue) {
58+
c.FillNoCustom(s)
5959
s.InitContainers = nil
6060
},
61-
func(s *api.PodStatus, c fuzz.Continue) {
62-
c.FuzzNoCustom(s)
61+
func(s *api.PodStatus, c randfill.Continue) {
62+
c.FillNoCustom(s)
6363
s.InitContainerStatuses = nil
6464
},
65-
).Fuzz(internalObj)
65+
).Fill(internalObj)
6666

6767
item, err := legacyscheme.Scheme.New(externalVersion.WithKind(kind))
6868
if err != nil {

0 commit comments

Comments
 (0)