Replace godep with dep
This commit is contained in:
parent
1e7489927c
commit
bf5616c65b
14883 changed files with 3937406 additions and 361781 deletions
207
vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/helpers_test.go
generated
vendored
Normal file
207
vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/helpers_test.go
generated
vendored
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kuberuntime
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtimetesting "k8s.io/kubernetes/pkg/kubelet/apis/cri/testing"
|
||||
runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime"
|
||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||
)
|
||||
|
||||
func TestStableKey(t *testing.T) {
|
||||
container := &v1.Container{
|
||||
Name: "test_container",
|
||||
Image: "foo/image:v1",
|
||||
}
|
||||
pod := &v1.Pod{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test_pod",
|
||||
Namespace: "test_pod_namespace",
|
||||
UID: "test_pod_uid",
|
||||
},
|
||||
Spec: v1.PodSpec{
|
||||
Containers: []v1.Container{*container},
|
||||
},
|
||||
}
|
||||
oldKey := getStableKey(pod, container)
|
||||
|
||||
// Updating the container image should change the key.
|
||||
container.Image = "foo/image:v2"
|
||||
newKey := getStableKey(pod, container)
|
||||
assert.NotEqual(t, oldKey, newKey)
|
||||
}
|
||||
|
||||
// TestGetSystclsFromAnnotations tests the logic of getting sysctls from annotations.
|
||||
func TestGetSystclsFromAnnotations(t *testing.T) {
|
||||
tests := []struct {
|
||||
annotations map[string]string
|
||||
expectedSysctls map[string]string
|
||||
}{{
|
||||
annotations: map[string]string{
|
||||
v1.SysctlsPodAnnotationKey: "kernel.shmmni=32768,kernel.shmmax=1000000000",
|
||||
v1.UnsafeSysctlsPodAnnotationKey: "knet.ipv4.route.min_pmtu=1000",
|
||||
},
|
||||
expectedSysctls: map[string]string{
|
||||
"kernel.shmmni": "32768",
|
||||
"kernel.shmmax": "1000000000",
|
||||
"knet.ipv4.route.min_pmtu": "1000",
|
||||
},
|
||||
}, {
|
||||
annotations: map[string]string{
|
||||
v1.SysctlsPodAnnotationKey: "kernel.shmmni=32768,kernel.shmmax=1000000000",
|
||||
},
|
||||
expectedSysctls: map[string]string{
|
||||
"kernel.shmmni": "32768",
|
||||
"kernel.shmmax": "1000000000",
|
||||
},
|
||||
}, {
|
||||
annotations: map[string]string{
|
||||
v1.UnsafeSysctlsPodAnnotationKey: "knet.ipv4.route.min_pmtu=1000",
|
||||
},
|
||||
expectedSysctls: map[string]string{
|
||||
"knet.ipv4.route.min_pmtu": "1000",
|
||||
},
|
||||
}}
|
||||
|
||||
for i, test := range tests {
|
||||
actualSysctls, err := getSysctlsFromAnnotations(test.annotations)
|
||||
assert.NoError(t, err, "TestCase[%d]", i)
|
||||
assert.Len(t, actualSysctls, len(test.expectedSysctls), "TestCase[%d]", i)
|
||||
assert.Equal(t, test.expectedSysctls, actualSysctls, "TestCase[%d]", i)
|
||||
}
|
||||
}
|
||||
|
||||
func TestToKubeContainer(t *testing.T) {
|
||||
c := &runtimeapi.Container{
|
||||
Id: "test-id",
|
||||
Metadata: &runtimeapi.ContainerMetadata{
|
||||
Name: "test-name",
|
||||
Attempt: 1,
|
||||
},
|
||||
Image: &runtimeapi.ImageSpec{Image: "test-image"},
|
||||
ImageRef: "test-image-ref",
|
||||
State: runtimeapi.ContainerState_CONTAINER_RUNNING,
|
||||
Annotations: map[string]string{
|
||||
containerHashLabel: "1234",
|
||||
},
|
||||
}
|
||||
expect := &kubecontainer.Container{
|
||||
ID: kubecontainer.ContainerID{
|
||||
Type: runtimetesting.FakeRuntimeName,
|
||||
ID: "test-id",
|
||||
},
|
||||
Name: "test-name",
|
||||
ImageID: "test-image-ref",
|
||||
Image: "test-image",
|
||||
Hash: uint64(0x1234),
|
||||
State: kubecontainer.ContainerStateRunning,
|
||||
}
|
||||
|
||||
_, _, m, err := createTestRuntimeManager()
|
||||
assert.NoError(t, err)
|
||||
got, err := m.toKubeContainer(c)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, expect, got)
|
||||
}
|
||||
|
||||
func TestGetImageUser(t *testing.T) {
|
||||
_, i, m, err := createTestRuntimeManager()
|
||||
assert.NoError(t, err)
|
||||
|
||||
type image struct {
|
||||
name string
|
||||
uid *runtimeapi.Int64Value
|
||||
username string
|
||||
}
|
||||
|
||||
type imageUserValues struct {
|
||||
// getImageUser can return (*int64)(nil) so comparing with *uid will break
|
||||
// type cannot be *int64 as Golang does not allow to take the address of a numeric constant"
|
||||
uid interface{}
|
||||
username string
|
||||
err error
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
description string
|
||||
originalImage image
|
||||
expectedImageUserValues imageUserValues
|
||||
}{
|
||||
{
|
||||
"image without username and uid should return (new(int64), \"\", nil)",
|
||||
image{
|
||||
name: "test-image-ref1",
|
||||
uid: (*runtimeapi.Int64Value)(nil),
|
||||
username: "",
|
||||
},
|
||||
imageUserValues{
|
||||
uid: int64(0),
|
||||
username: "",
|
||||
err: nil,
|
||||
},
|
||||
},
|
||||
{
|
||||
"image with username and no uid should return ((*int64)nil, imageStatus.Username, nil)",
|
||||
image{
|
||||
name: "test-image-ref2",
|
||||
uid: (*runtimeapi.Int64Value)(nil),
|
||||
username: "testUser",
|
||||
},
|
||||
imageUserValues{
|
||||
uid: (*int64)(nil),
|
||||
username: "testUser",
|
||||
err: nil,
|
||||
},
|
||||
},
|
||||
{
|
||||
"image with uid should return (*int64, \"\", nil)",
|
||||
image{
|
||||
name: "test-image-ref3",
|
||||
uid: &runtimeapi.Int64Value{
|
||||
Value: 2,
|
||||
},
|
||||
username: "whatever",
|
||||
},
|
||||
imageUserValues{
|
||||
uid: int64(2),
|
||||
username: "",
|
||||
err: nil,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
i.SetFakeImages([]string{"test-image-ref1", "test-image-ref2", "test-image-ref3"})
|
||||
for j, test := range tests {
|
||||
i.Images[test.originalImage.name].Username = test.originalImage.username
|
||||
i.Images[test.originalImage.name].Uid = test.originalImage.uid
|
||||
|
||||
uid, username, err := m.getImageUser(test.originalImage.name)
|
||||
assert.NoError(t, err, "TestCase[%d]", j)
|
||||
|
||||
if test.expectedImageUserValues.uid == (*int64)(nil) {
|
||||
assert.Equal(t, test.expectedImageUserValues.uid, uid, "TestCase[%d]", j)
|
||||
} else {
|
||||
assert.Equal(t, test.expectedImageUserValues.uid, *uid, "TestCase[%d]", j)
|
||||
}
|
||||
assert.Equal(t, test.expectedImageUserValues.username, username, "TestCase[%d]", j)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue