Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
f3429776
Commit
f3429776
authored
Feb 03, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #20598 from mikedanese/serialization-tests
Auto commit by PR queue bot
parents
65ebe191
216a35d9
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
28 deletions
+36
-28
serialization_test.go
pkg/api/serialization_test.go
+24
-24
testapi.go
pkg/api/testapi/testapi.go
+5
-4
fuzzer.go
pkg/api/testing/fuzzer.go
+7
-0
No files found.
pkg/api/serialization_test.go
View file @
f3429776
...
...
@@ -32,8 +32,6 @@ import (
apitesting
"k8s.io/kubernetes/pkg/api/testing"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/v1"
_
"k8s.io/kubernetes/pkg/apis/extensions"
_
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/sets"
...
...
@@ -61,7 +59,7 @@ func fuzzInternalObject(t *testing.T, forVersion unversioned.GroupVersion, item
}
func
roundTrip
(
t
*
testing
.
T
,
codec
runtime
.
Codec
,
item
runtime
.
Object
)
{
t
.
Logf
(
"codec: %#v"
,
codec
)
//
t.Logf("codec: %#v", codec)
printer
:=
spew
.
ConfigState
{
DisableMethods
:
true
}
...
...
@@ -94,12 +92,12 @@ func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) {
}
// roundTripSame verifies the same source object is tested in all API versions.
func
roundTripSame
(
t
*
testing
.
T
,
item
runtime
.
Object
,
except
...
string
)
{
func
roundTripSame
(
t
*
testing
.
T
,
group
testapi
.
TestGroup
,
item
runtime
.
Object
,
except
...
string
)
{
set
:=
sets
.
NewString
(
except
...
)
seed
:=
rand
.
Int63
()
fuzzInternalObject
(
t
,
testapi
.
Default
.
InternalGroupVersion
(),
item
,
seed
)
fuzzInternalObject
(
t
,
group
.
InternalGroupVersion
(),
item
,
seed
)
version
:=
*
testapi
.
Default
.
GroupVersion
()
version
:=
*
group
.
GroupVersion
()
codecs
:=
[]
runtime
.
Codec
{}
for
_
,
fn
:=
range
codecsToTest
{
codec
,
err
:=
fn
(
version
,
item
)
...
...
@@ -123,9 +121,9 @@ func TestSpecificKind(t *testing.T) {
// api.Scheme.Log(t)
// defer api.Scheme.Log(nil)
kind
:=
"
Lis
t"
kind
:=
"
DaemonSe
t"
for
i
:=
0
;
i
<
*
fuzzIters
;
i
++
{
doRoundTripTest
(
kind
,
t
)
doRoundTripTest
(
testapi
.
Groups
[
"extensions"
],
kind
,
t
)
if
t
.
Failed
()
{
break
}
...
...
@@ -142,7 +140,7 @@ func TestList(t *testing.T) {
t
.
Errorf
(
"Couldn't make a %v? %v"
,
kind
,
err
)
return
}
roundTripSame
(
t
,
item
)
roundTripSame
(
t
,
testapi
.
Default
,
item
)
}
var
nonRoundTrippableTypes
=
sets
.
NewString
(
"ExportOptions"
)
...
...
@@ -154,34 +152,36 @@ func TestRoundTripTypes(t *testing.T) {
// api.Scheme.Log(t)
// defer api.Scheme.Log(nil)
for
kind
:=
range
api
.
Scheme
.
KnownTypes
(
testapi
.
Default
.
InternalGroupVersion
())
{
t
.
Logf
(
"working on %v in %v"
,
kind
,
testapi
.
Default
.
InternalGroupVersion
())
if
nonRoundTrippableTypes
.
Has
(
kind
)
{
continue
}
// Try a few times, since runTest uses random values.
for
i
:=
0
;
i
<
*
fuzzIters
;
i
++
{
doRoundTripTest
(
kind
,
t
)
if
t
.
Failed
()
{
break
for
groupKey
,
group
:=
range
testapi
.
Groups
{
for
kind
:=
range
api
.
Scheme
.
KnownTypes
(
group
.
InternalGroupVersion
())
{
t
.
Logf
(
"working on %v in %v"
,
kind
,
groupKey
)
if
nonRoundTrippableTypes
.
Has
(
kind
)
{
continue
}
// Try a few times, since runTest uses random values.
for
i
:=
0
;
i
<
*
fuzzIters
;
i
++
{
doRoundTripTest
(
group
,
kind
,
t
)
if
t
.
Failed
()
{
break
}
}
}
}
}
func
doRoundTripTest
(
kind
string
,
t
*
testing
.
T
)
{
item
,
err
:=
api
.
Scheme
.
New
(
testapi
.
Default
.
InternalGroupVersion
()
.
WithKind
(
kind
))
func
doRoundTripTest
(
group
testapi
.
TestGroup
,
kind
string
,
t
*
testing
.
T
)
{
item
,
err
:=
api
.
Scheme
.
New
(
group
.
InternalGroupVersion
()
.
WithKind
(
kind
))
if
err
!=
nil
{
t
.
Fatalf
(
"Couldn't make a %v? %v"
,
kind
,
err
)
}
if
_
,
err
:=
meta
.
TypeAccessor
(
item
);
err
!=
nil
{
t
.
Fatalf
(
"%q is not a TypeMeta and cannot be tested - add it to nonRoundTrippableTypes: %v"
,
kind
,
err
)
}
if
api
.
Scheme
.
Recognizes
(
testapi
.
Default
.
GroupVersion
()
.
WithKind
(
kind
))
{
roundTripSame
(
t
,
item
,
nonRoundTrippableTypesByVersion
[
kind
]
...
)
if
api
.
Scheme
.
Recognizes
(
group
.
GroupVersion
()
.
WithKind
(
kind
))
{
roundTripSame
(
t
,
group
,
item
,
nonRoundTrippableTypesByVersion
[
kind
]
...
)
}
if
!
nonInternalRoundTrippableTypes
.
Has
(
kind
)
{
roundTrip
(
t
,
testapi
.
Default
.
Codec
(),
fuzzInternalObject
(
t
,
testapi
.
Default
.
InternalGroupVersion
(),
item
,
rand
.
Int63
()))
roundTrip
(
t
,
group
.
Codec
(),
fuzzInternalObject
(
t
,
group
.
InternalGroupVersion
(),
item
,
rand
.
Int63
()))
}
}
...
...
pkg/api/testapi/testapi.go
View file @
f3429776
...
...
@@ -23,15 +23,16 @@ import (
"strings"
"k8s.io/kubernetes/pkg/api"
_
"k8s.io/kubernetes/pkg/api/install"
_
"k8s.io/kubernetes/pkg/apis/extensions/install"
_
"k8s.io/kubernetes/pkg/apis/metrics/install"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/runtime"
_
"k8s.io/kubernetes/pkg/api/install"
_
"k8s.io/kubernetes/pkg/apis/componentconfig/install"
_
"k8s.io/kubernetes/pkg/apis/extensions/install"
_
"k8s.io/kubernetes/pkg/apis/metrics/install"
)
var
(
...
...
pkg/api/testing/fuzzer.go
View file @
f3429776
...
...
@@ -397,6 +397,13 @@ func FuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source)
s
.
MinReplicas
=
&
minReplicas
s
.
CPUUtilization
=
&
extensions
.
CPUTargetUtilization
{
TargetPercentage
:
int
(
int32
(
c
.
RandUint64
()))}
},
func
(
s
*
extensions
.
DaemonSetUpdateStrategy
,
c
fuzz
.
Continue
)
{
c
.
FuzzNoCustom
(
s
)
s
.
Type
=
extensions
.
RollingUpdateDaemonSetStrategyType
s
.
RollingUpdate
=
&
extensions
.
RollingUpdateDaemonSet
{
MaxUnavailable
:
intstr
.
FromInt
(
10
),
}
},
)
return
f
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment