...

Source file src/edge-infra.dev/pkg/sds/ien/resource/resource_test.go

Documentation: edge-infra.dev/pkg/sds/ien/resource

     1  package resource
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  	corev1 "k8s.io/api/core/v1"
     8  	kresource "k8s.io/apimachinery/pkg/api/resource"
     9  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    10  )
    11  
    12  const testResource Resource = "test.edge.ncr.com/resource"
    13  
    14  func TestPodHasResourceRequest(t *testing.T) {
    15  	tcs := []struct {
    16  		Pod                *corev1.Pod
    17  		HasResourceRequest bool
    18  	}{
    19  		{
    20  			Pod: &corev1.Pod{
    21  				ObjectMeta: metav1.ObjectMeta{
    22  					Name:      "example",
    23  					Namespace: "example",
    24  				},
    25  				Spec: corev1.PodSpec{},
    26  			},
    27  			HasResourceRequest: false,
    28  		},
    29  		{
    30  			Pod: &corev1.Pod{
    31  				ObjectMeta: metav1.ObjectMeta{
    32  					Name:      "example",
    33  					Namespace: "example",
    34  				},
    35  				Spec: corev1.PodSpec{
    36  					Containers: []corev1.Container{
    37  						{
    38  							Name:  "ubuntu",
    39  							Image: "docker.io/ubuntu",
    40  							Resources: corev1.ResourceRequirements{
    41  								Requests: corev1.ResourceList{
    42  									testResource.ResourceName(): kresource.MustParse("1"),
    43  								},
    44  							},
    45  						},
    46  					},
    47  				},
    48  			},
    49  			HasResourceRequest: false,
    50  		},
    51  		{
    52  			Pod: &corev1.Pod{
    53  				ObjectMeta: metav1.ObjectMeta{
    54  					Name:      "example",
    55  					Namespace: "example",
    56  				},
    57  				Spec: corev1.PodSpec{
    58  					Containers: []corev1.Container{
    59  						{
    60  							Name:  "ubuntu",
    61  							Image: "docker.io/ubuntu",
    62  							Resources: corev1.ResourceRequirements{
    63  								Requests: corev1.ResourceList{
    64  									UIRequestResource.ResourceName(): kresource.MustParse("1"),
    65  								},
    66  							},
    67  						},
    68  					},
    69  				},
    70  			},
    71  			HasResourceRequest: true,
    72  		},
    73  		{
    74  			Pod: &corev1.Pod{
    75  				ObjectMeta: metav1.ObjectMeta{
    76  					Name:      "example",
    77  					Namespace: "example",
    78  				},
    79  				Spec: corev1.PodSpec{
    80  					Containers: []corev1.Container{
    81  						{
    82  							Name:  "ubuntu",
    83  							Image: "docker.io/ubuntu",
    84  							Resources: corev1.ResourceRequirements{
    85  								Requests: corev1.ResourceList{
    86  									AudioRequestResource.ResourceName(): kresource.MustParse("1"),
    87  								},
    88  							},
    89  						},
    90  					},
    91  				},
    92  			},
    93  			HasResourceRequest: true,
    94  		},
    95  	}
    96  	for idx, tc := range tcs {
    97  		require.Equal(t, tc.HasResourceRequest, ContainersHasResourceRequest(tc.Pod.Spec.Containers, UIRequestResource) || ContainersHasResourceRequest(tc.Pod.Spec.Containers, AudioRequestResource), "test case %d failed", idx+1)
    98  	}
    99  }
   100  

View as plain text