From 851dbf25e5984f9409ac9a73d3996b960065d759 Mon Sep 17 00:00:00 2001 From: Sreeram Venkitesh Date: Fri, 8 Nov 2024 01:17:05 +0530 Subject: [PATCH] Added unit tests --- pkg/apis/core/validation/validation_test.go | 68 +++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index bd457b40adf..412b4116958 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -25188,6 +25188,74 @@ func TestValidatePodResize(t *testing.T) { new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", ""), podtest.SetOS(core.Windows)), err: "Forbidden: windows pods cannot be resized", }, + { + test: "Pod with nil Resource field in Status", + old: mkPod(core.ResourceList{}, getResources("100m", "0", "1Gi", ""), podtest.SetStatus(core.PodStatus{ + ContainerStatuses: []core.ContainerStatus{{ + ContainerID: "docker://numbers", + Image: "nginx:alpine", + Name: "main", + Ready: true, + Started: proto.Bool(true), + Resources: nil, + State: core.ContainerState{ + Running: &core.ContainerStateRunning{ + StartedAt: metav1.NewTime(time.Now()), + }, + }, + }}, + })), + new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", "")), + err: "Forbidden: Pod running on node without support for resize", + }, + { + test: "Pod with non-nil Resources field in Status", + old: mkPod(core.ResourceList{}, getResources("100m", "0", "1Gi", ""), podtest.SetStatus(core.PodStatus{ + ContainerStatuses: []core.ContainerStatus{{ + ContainerID: "docker://numbers", + Image: "nginx:alpine", + Name: "main", + Ready: true, + Started: proto.Bool(true), + Resources: &core.ResourceRequirements{}, + State: core.ContainerState{ + Running: &core.ContainerStateRunning{ + StartedAt: metav1.NewTime(time.Now()), + }, + }, + }}, + })), + new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", "")), + err: "", + }, + { + test: "Pod without running containers", + old: mkPod(core.ResourceList{}, getResources("100m", "0", "1Gi", ""), podtest.SetStatus(core.PodStatus{ + ContainerStatuses: []core.ContainerStatus{}, + })), + new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", "")), + err: "", + }, + { + test: "Pod with containers which are not running yet", + old: mkPod(core.ResourceList{}, getResources("100m", "0", "1Gi", ""), podtest.SetStatus(core.PodStatus{ + ContainerStatuses: []core.ContainerStatus{{ + ContainerID: "docker://numbers", + Image: "nginx:alpine", + Name: "main", + Ready: true, + Started: proto.Bool(true), + Resources: &core.ResourceRequirements{}, + State: core.ContainerState{ + Waiting: &core.ContainerStateWaiting{ + Reason: "PodInitializing", + }, + }, + }}, + })), + new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", "")), + err: "", + }, } for _, test := range tests {