Skip to content

Commit b1aacf2

Browse files
vivzbansalk8s-publishing-bot
authored andcommitted
Added some unit tests
Kubernetes-commit: 8fa8277908a2e0897a701891a17b2840fa53be09
1 parent 401f833 commit b1aacf2

File tree

1 file changed

+190
-26
lines changed

1 file changed

+190
-26
lines changed

resource/helpers_test.go

+190-26
Original file line numberDiff line numberDiff line change
@@ -286,15 +286,15 @@ func TestPodRequestsAndLimitsWithoutOverhead(t *testing.T) {
286286
func TestPodResourceRequests(t *testing.T) {
287287
restartAlways := v1.ContainerRestartPolicyAlways
288288
testCases := []struct {
289-
description string
290-
options PodResourcesOptions
291-
overhead v1.ResourceList
292-
podResizeStatus v1.PodResizeStatus
293-
initContainers []v1.Container
294-
initContainerStatus []v1.ContainerStatus
295-
containers []v1.Container
296-
containerStatus []v1.ContainerStatus
297-
expectedRequests v1.ResourceList
289+
description string
290+
options PodResourcesOptions
291+
overhead v1.ResourceList
292+
podResizeStatus v1.PodResizeStatus
293+
initContainers []v1.Container
294+
initContainerStatuses []v1.ContainerStatus
295+
containers []v1.Container
296+
containerStatus []v1.ContainerStatus
297+
expectedRequests v1.ResourceList
298298
}{
299299
{
300300
description: "nil options, larger init container",
@@ -481,14 +481,6 @@ func TestPodResourceRequests(t *testing.T) {
481481
},
482482
},
483483
},
484-
initContainerStatus: []v1.ContainerStatus{
485-
{
486-
Name: "restartable-init-1",
487-
AllocatedResources: v1.ResourceList{
488-
v1.ResourceCPU: resource.MustParse("2"),
489-
},
490-
},
491-
},
492484
},
493485
{
494486
description: "resized, infeasible, but don't use status",
@@ -518,6 +510,92 @@ func TestPodResourceRequests(t *testing.T) {
518510
},
519511
},
520512
},
513+
{
514+
description: "resized, restartable init container, infeasible",
515+
expectedRequests: v1.ResourceList{
516+
v1.ResourceCPU: resource.MustParse("2"),
517+
},
518+
podResizeStatus: v1.PodResizeStatusInfeasible,
519+
options: PodResourcesOptions{UseStatusResources: true},
520+
initContainers: []v1.Container{
521+
{
522+
Name: "restartable-init-1",
523+
RestartPolicy: &restartAlways,
524+
Resources: v1.ResourceRequirements{
525+
Requests: v1.ResourceList{
526+
v1.ResourceCPU: resource.MustParse("4"),
527+
},
528+
},
529+
},
530+
},
531+
initContainerStatuses: []v1.ContainerStatus{
532+
{
533+
Name: "restartable-init-1",
534+
Resources: &v1.ResourceRequirements{
535+
Requests: v1.ResourceList{
536+
v1.ResourceCPU: resource.MustParse("2"),
537+
},
538+
},
539+
},
540+
},
541+
},
542+
{
543+
description: "resized, restartable init container, no resize status",
544+
expectedRequests: v1.ResourceList{
545+
v1.ResourceCPU: resource.MustParse("4"),
546+
},
547+
options: PodResourcesOptions{UseStatusResources: true},
548+
initContainers: []v1.Container{
549+
{
550+
Name: "restartable-init-1",
551+
RestartPolicy: &restartAlways,
552+
Resources: v1.ResourceRequirements{
553+
Requests: v1.ResourceList{
554+
v1.ResourceCPU: resource.MustParse("4"),
555+
},
556+
},
557+
},
558+
},
559+
initContainerStatuses: []v1.ContainerStatus{
560+
{
561+
Name: "restartable-init-1",
562+
Resources: &v1.ResourceRequirements{
563+
Requests: v1.ResourceList{
564+
v1.ResourceCPU: resource.MustParse("2"),
565+
},
566+
},
567+
},
568+
},
569+
},
570+
{
571+
description: "resized, restartable init container, infeasible, but don't use status",
572+
expectedRequests: v1.ResourceList{
573+
v1.ResourceCPU: resource.MustParse("4"),
574+
},
575+
podResizeStatus: v1.PodResizeStatusInfeasible,
576+
options: PodResourcesOptions{UseStatusResources: false},
577+
initContainers: []v1.Container{
578+
{
579+
Name: "restartable-init-1",
580+
RestartPolicy: &restartAlways,
581+
Resources: v1.ResourceRequirements{
582+
Requests: v1.ResourceList{
583+
v1.ResourceCPU: resource.MustParse("4"),
584+
},
585+
},
586+
},
587+
},
588+
initContainerStatuses: []v1.ContainerStatus{
589+
{
590+
Name: "restartable-init-1",
591+
Resources: &v1.ResourceRequirements{
592+
Requests: v1.ResourceList{
593+
v1.ResourceCPU: resource.MustParse("2"),
594+
},
595+
},
596+
},
597+
},
598+
},
521599
{
522600
description: "restartable init container",
523601
expectedRequests: v1.ResourceList{
@@ -710,7 +788,7 @@ func TestPodResourceRequests(t *testing.T) {
710788
},
711789
Status: v1.PodStatus{
712790
ContainerStatuses: tc.containerStatus,
713-
InitContainerStatuses: tc.initContainerStatus,
791+
InitContainerStatuses: tc.initContainerStatuses,
714792
Resize: tc.podResizeStatus,
715793
},
716794
}
@@ -758,13 +836,14 @@ func TestPodResourceRequestsReuse(t *testing.T) {
758836
func TestPodResourceLimits(t *testing.T) {
759837
restartAlways := v1.ContainerRestartPolicyAlways
760838
testCases := []struct {
761-
description string
762-
options PodResourcesOptions
763-
overhead v1.ResourceList
764-
initContainers []v1.Container
765-
containers []v1.Container
766-
containerStatuses []v1.ContainerStatus
767-
expectedLimits v1.ResourceList
839+
description string
840+
options PodResourcesOptions
841+
overhead v1.ResourceList
842+
initContainers []v1.Container
843+
initContainerStatuses []v1.ContainerStatus
844+
containers []v1.Container
845+
containerStatuses []v1.ContainerStatus
846+
expectedLimits v1.ResourceList
768847
}{
769848
{
770849
description: "nil options, larger init container",
@@ -1217,6 +1296,90 @@ func TestPodResourceLimits(t *testing.T) {
12171296
},
12181297
},
12191298
},
1299+
{
1300+
description: "pod scaled up with restartable init containers",
1301+
expectedLimits: v1.ResourceList{
1302+
v1.ResourceMemory: resource.MustParse("2Gi"),
1303+
},
1304+
options: PodResourcesOptions{UseStatusResources: true},
1305+
initContainers: []v1.Container{
1306+
{
1307+
Name: "restartable-init-1",
1308+
RestartPolicy: &restartAlways,
1309+
Resources: v1.ResourceRequirements{
1310+
Limits: v1.ResourceList{
1311+
v1.ResourceMemory: resource.MustParse("2Gi"),
1312+
},
1313+
},
1314+
},
1315+
},
1316+
initContainerStatuses: []v1.ContainerStatus{
1317+
{
1318+
Name: "restartable-init-1",
1319+
Resources: &v1.ResourceRequirements{
1320+
Limits: v1.ResourceList{
1321+
v1.ResourceMemory: resource.MustParse("1Gi"),
1322+
},
1323+
},
1324+
},
1325+
},
1326+
},
1327+
{
1328+
description: "pod scaled down with restartable init containers",
1329+
expectedLimits: v1.ResourceList{
1330+
v1.ResourceMemory: resource.MustParse("2Gi"),
1331+
},
1332+
options: PodResourcesOptions{UseStatusResources: true},
1333+
initContainers: []v1.Container{
1334+
{
1335+
Name: "restartable-init-1",
1336+
RestartPolicy: &restartAlways,
1337+
Resources: v1.ResourceRequirements{
1338+
Limits: v1.ResourceList{
1339+
v1.ResourceMemory: resource.MustParse("1Gi"),
1340+
},
1341+
},
1342+
},
1343+
},
1344+
initContainerStatuses: []v1.ContainerStatus{
1345+
{
1346+
Name: "restartable-init-1",
1347+
Resources: &v1.ResourceRequirements{
1348+
Limits: v1.ResourceList{
1349+
v1.ResourceMemory: resource.MustParse("2Gi"),
1350+
},
1351+
},
1352+
},
1353+
},
1354+
},
1355+
{
1356+
description: "pod scaled down with restartable init containers, don't use status",
1357+
expectedLimits: v1.ResourceList{
1358+
v1.ResourceMemory: resource.MustParse("1Gi"),
1359+
},
1360+
options: PodResourcesOptions{UseStatusResources: false},
1361+
initContainers: []v1.Container{
1362+
{
1363+
Name: "restartable-init-1",
1364+
RestartPolicy: &restartAlways,
1365+
Resources: v1.ResourceRequirements{
1366+
Limits: v1.ResourceList{
1367+
v1.ResourceMemory: resource.MustParse("1Gi"),
1368+
},
1369+
},
1370+
},
1371+
},
1372+
initContainerStatuses: []v1.ContainerStatus{
1373+
{
1374+
Name: "restartable-init-1",
1375+
Resources: &v1.ResourceRequirements{
1376+
Limits: v1.ResourceList{
1377+
v1.ResourceMemory: resource.MustParse("2Gi"),
1378+
},
1379+
},
1380+
},
1381+
},
1382+
},
12201383
}
12211384
for _, tc := range testCases {
12221385
t.Run(tc.description, func(t *testing.T) {
@@ -1227,7 +1390,8 @@ func TestPodResourceLimits(t *testing.T) {
12271390
Overhead: tc.overhead,
12281391
},
12291392
Status: v1.PodStatus{
1230-
ContainerStatuses: tc.containerStatuses,
1393+
ContainerStatuses: tc.containerStatuses,
1394+
InitContainerStatuses: tc.initContainerStatuses,
12311395
},
12321396
}
12331397
limits := PodLimits(p, tc.options)

0 commit comments

Comments
 (0)