This is an automated email from the ASF dual-hosted git repository.

pbacsko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git


The following commit(s) were added to refs/heads/master by this push:
     new f8e9c116 [YUNIKORN-2842] Improve metadata & gang_utils funtion's test 
coverage (#903)
f8e9c116 is described below

commit f8e9c1161a79e469af6397d569008f375b216643
Author: SP12893678 <[email protected]>
AuthorDate: Wed Aug 28 20:07:42 2024 +0200

    [YUNIKORN-2842] Improve metadata & gang_utils funtion's test coverage (#903)
    
    Closes: #903
    
    Signed-off-by: Peter Bacsko <[email protected]>
---
 pkg/cache/gang_utils_test.go |  1 +
 pkg/cache/metadata_test.go   | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/pkg/cache/gang_utils_test.go b/pkg/cache/gang_utils_test.go
index 4c25b982..480dcf59 100644
--- a/pkg/cache/gang_utils_test.go
+++ b/pkg/cache/gang_utils_test.go
@@ -150,6 +150,7 @@ func Test_GetPlaceholderResourceRequest(t *testing.T) {
                {"base", map[string]resource.Quantity{"pods": 
resource.MustParse("1")}, v1.ResourceList{"pods": resource.MustParse("1")}},
                {"hugepages", map[string]resource.Quantity{"hugepages-huge": 
resource.MustParse("2")}, v1.ResourceList{"hugepages-huge": 
resource.MustParse("2")}},
                {"mixed", map[string]resource.Quantity{"pods": 
resource.MustParse("4"), "nvidia.com/gpu": resource.MustParse("5")}, 
v1.ResourceList{"pods": resource.MustParse("4"), "nvidia.com/gpu": 
resource.MustParse("5")}},
+               {"empty key", map[string]resource.Quantity{"": 
resource.MustParse("1")}, v1.ResourceList{}},
        }
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
diff --git a/pkg/cache/metadata_test.go b/pkg/cache/metadata_test.go
index 755ff65d..d4760e2d 100644
--- a/pkg/cache/metadata_test.go
+++ b/pkg/cache/metadata_test.go
@@ -99,9 +99,16 @@ func TestGetTaskMetadata(t *testing.T) {
        assert.Equal(t, task.ApplicationID, "yunikorn-default-autogen")
        assert.Equal(t, task.TaskID, "UID-POD-00001")
        assert.Equal(t, task.TaskGroupName, "")
+
+       // case: empty pod
+       task, ok = getTaskMetadata(&v1.Pod{})
+       assert.Equal(t, ok, false)
+       assert.DeepEqual(t, task, TaskMetadata{})
 }
 
 func TestGetAppMetadata(t *testing.T) { //nolint:funlen
+       conf.GetSchedulerConf().SetTestMode(true)
+
        defer utils.SetPluginMode(false)
        defer func() { conf.GetSchedulerConf().GenerateUniqueAppIds = false }()
        utils.SetPluginMode(false)
@@ -301,6 +308,33 @@ func TestGetAppMetadata(t *testing.T) { //nolint:funlen
        utils.SetPluginMode(true)
        app, ok = getAppMetadata(&pod)
        assert.Equal(t, ok, false)
+
+       // case: invalid annotation task groups
+       pod = v1.Pod{
+               TypeMeta: apis.TypeMeta{
+                       Kind:       "Pod",
+                       APIVersion: "v1",
+               },
+               ObjectMeta: apis.ObjectMeta{
+                       Name:      "pod00001",
+                       Namespace: "default",
+                       UID:       "UID-POD-00001",
+                       Labels: map[string]string{
+                               "applicationId": "app00001",
+                               "queue":         "root.a",
+                       },
+                       Annotations: map[string]string{
+                               constants.AnnotationTaskGroups: "{ name:\"\" }",
+                       },
+               },
+               Spec:   v1.PodSpec{SchedulerName: constants.SchedulerName},
+               Status: v1.PodStatus{Phase: v1.PodPending},
+       }
+       app, ok = getAppMetadata(&pod)
+       assert.Equal(t, ok, true)
+       assert.Equal(t, 
app.SchedulingPolicyParameters.GetGangSchedulingStyle(), "Soft")
+       assert.Equal(t, app.Tags[common.AppTagCreateForce], "false")
+       assert.Equal(t, len(app.TaskGroups), 0)
 }
 
 func TestGetOwnerReferences(t *testing.T) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to