mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 23:37:01 +00:00
add unit test
This commit is contained in:
parent
df87982950
commit
86e0ed1892
@ -445,22 +445,32 @@ func shuffle(statuses []v1.ContainerStatus) []v1.ContainerStatus {
|
||||
}
|
||||
|
||||
func TestStatusEquality(t *testing.T) {
|
||||
pod := v1.Pod{
|
||||
Spec: v1.PodSpec{},
|
||||
}
|
||||
containerStatus := []v1.ContainerStatus{}
|
||||
for i := 0; i < 10; i++ {
|
||||
s := v1.ContainerStatus{
|
||||
Name: fmt.Sprintf("container%d", i),
|
||||
getContainersAndStatuses := func() ([]v1.Container, []v1.ContainerStatus) {
|
||||
var containers []v1.Container
|
||||
var containerStatuses []v1.ContainerStatus
|
||||
for i := 0; i < 10; i++ {
|
||||
containerName := fmt.Sprintf("container%d", i)
|
||||
containers = append(containers, v1.Container{Name: containerName})
|
||||
containerStatuses = append(containerStatuses, v1.ContainerStatus{Name: containerName})
|
||||
}
|
||||
containerStatus = append(containerStatus, s)
|
||||
return containers, containerStatuses
|
||||
}
|
||||
containers, containerStatuses := getContainersAndStatuses()
|
||||
pod := v1.Pod{
|
||||
Spec: v1.PodSpec{
|
||||
InitContainers: containers,
|
||||
},
|
||||
}
|
||||
podStatus := v1.PodStatus{
|
||||
ContainerStatuses: containerStatus,
|
||||
ContainerStatuses: containerStatuses,
|
||||
InitContainerStatuses: containerStatuses,
|
||||
EphemeralContainerStatuses: containerStatuses,
|
||||
}
|
||||
for i := 0; i < 10; i++ {
|
||||
oldPodStatus := v1.PodStatus{
|
||||
ContainerStatuses: shuffle(podStatus.ContainerStatuses),
|
||||
ContainerStatuses: shuffle(podStatus.ContainerStatuses),
|
||||
InitContainerStatuses: shuffle(podStatus.InitContainerStatuses),
|
||||
EphemeralContainerStatuses: shuffle(podStatus.EphemeralContainerStatuses),
|
||||
}
|
||||
normalizeStatus(&pod, &oldPodStatus)
|
||||
normalizeStatus(&pod, &podStatus)
|
||||
@ -504,8 +514,9 @@ func TestStatusNormalizationEnforcesMaxBytes(t *testing.T) {
|
||||
containerStatus = append(containerStatus, s)
|
||||
}
|
||||
podStatus := v1.PodStatus{
|
||||
InitContainerStatuses: containerStatus[:24],
|
||||
ContainerStatuses: containerStatus[24:],
|
||||
InitContainerStatuses: containerStatus[:16],
|
||||
ContainerStatuses: containerStatus[16:32],
|
||||
EphemeralContainerStatuses: containerStatus[32:],
|
||||
}
|
||||
result := normalizeStatus(&pod, &podStatus)
|
||||
count := 0
|
||||
@ -521,6 +532,49 @@ func TestStatusNormalizationEnforcesMaxBytes(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestStatusNormalizeTimeStamp(t *testing.T) {
|
||||
pod := v1.Pod{
|
||||
Spec: v1.PodSpec{},
|
||||
}
|
||||
|
||||
now := metav1.Now()
|
||||
podStatus := v1.PodStatus{
|
||||
ContainerStatuses: []v1.ContainerStatus{
|
||||
{State: v1.ContainerState{Running: &v1.ContainerStateRunning{StartedAt: now}}},
|
||||
{State: v1.ContainerState{Terminated: &v1.ContainerStateTerminated{StartedAt: now, FinishedAt: now}}},
|
||||
},
|
||||
InitContainerStatuses: []v1.ContainerStatus{
|
||||
{State: v1.ContainerState{Running: &v1.ContainerStateRunning{StartedAt: now}}},
|
||||
{State: v1.ContainerState{Terminated: &v1.ContainerStateTerminated{StartedAt: now, FinishedAt: now}}},
|
||||
},
|
||||
EphemeralContainerStatuses: []v1.ContainerStatus{
|
||||
{State: v1.ContainerState{Running: &v1.ContainerStateRunning{StartedAt: now}}},
|
||||
{State: v1.ContainerState{Terminated: &v1.ContainerStateTerminated{StartedAt: now, FinishedAt: now}}},
|
||||
},
|
||||
}
|
||||
|
||||
expectedTime := now.DeepCopy().Rfc3339Copy()
|
||||
expectedPodStatus := v1.PodStatus{
|
||||
ContainerStatuses: []v1.ContainerStatus{
|
||||
{State: v1.ContainerState{Running: &v1.ContainerStateRunning{StartedAt: expectedTime}}},
|
||||
{State: v1.ContainerState{Terminated: &v1.ContainerStateTerminated{StartedAt: expectedTime, FinishedAt: expectedTime}}},
|
||||
},
|
||||
InitContainerStatuses: []v1.ContainerStatus{
|
||||
{State: v1.ContainerState{Running: &v1.ContainerStateRunning{StartedAt: expectedTime}}},
|
||||
{State: v1.ContainerState{Terminated: &v1.ContainerStateTerminated{StartedAt: expectedTime, FinishedAt: expectedTime}}},
|
||||
},
|
||||
EphemeralContainerStatuses: []v1.ContainerStatus{
|
||||
{State: v1.ContainerState{Running: &v1.ContainerStateRunning{StartedAt: expectedTime}}},
|
||||
{State: v1.ContainerState{Terminated: &v1.ContainerStateTerminated{StartedAt: expectedTime, FinishedAt: expectedTime}}},
|
||||
},
|
||||
}
|
||||
|
||||
normalizedStatus := normalizeStatus(&pod, &podStatus)
|
||||
if !isPodStatusByKubeletEqual(&expectedPodStatus, normalizedStatus) {
|
||||
t.Fatalf("The timestamp is not correctly converted to RFC3339 format.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestStaticPod(t *testing.T) {
|
||||
staticPod := getTestPod()
|
||||
staticPod.Annotations = map[string]string{kubetypes.ConfigSourceAnnotationKey: "file"}
|
||||
|
Loading…
Reference in New Issue
Block a user