@@ -34,7 +34,7 @@ import (
3434 "reflect"
3535 "testing"
3636
37- "k8s.io/api/core/v1"
37+ v1 "k8s.io/api/core/v1"
3838 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3939)
4040
@@ -206,3 +206,62 @@ func TestDeleteTaskInfo(t *testing.T) {
206206 }
207207 }
208208}
209+
210+ func TestCloneJob (t * testing.T ) {
211+ case01UID := JobID ("job_1" )
212+ case01Ns := "c1"
213+ case01_owner := buildOwnerReference ("uid" )
214+
215+ case01Pod1 := buildPod ("c1" , "p1" , "" , v1 .PodPending , buildResourceList ("1000m" , "1G" ), []metav1.OwnerReference {case01_owner }, make (map [string ]string ))
216+ case01Pod2 := buildPod ("c1" , "p2" , "n1" , v1 .PodRunning , buildResourceList ("2000m" , "2G" ), []metav1.OwnerReference {case01_owner }, make (map [string ]string ))
217+ case01Pod3 := buildPod ("c1" , "p3" , "n1" , v1 .PodPending , buildResourceList ("1000m" , "1G" ), []metav1.OwnerReference {case01_owner }, make (map [string ]string ))
218+ case01Pod4 := buildPod ("c1" , "p4" , "n1" , v1 .PodPending , buildResourceList ("1000m" , "1G" ), []metav1.OwnerReference {case01_owner }, make (map [string ]string ))
219+ case01Task1 := NewTaskInfo (case01Pod1 )
220+ case01Task2 := NewTaskInfo (case01Pod2 )
221+ case01Task3 := NewTaskInfo (case01Pod3 )
222+ case01Task4 := NewTaskInfo (case01Pod4 )
223+
224+ tests := []struct {
225+ name string
226+ expected * JobInfo
227+ }{
228+ {
229+ name : "add 1 pending owner pod, 1 running owner pod" ,
230+ expected : & JobInfo {
231+ UID : case01UID ,
232+ Name : "job_1" ,
233+ Namespace : case01Ns ,
234+ MinAvailable : 1 ,
235+
236+ Allocated : buildResource ("4000m" , "4G" ),
237+ TotalRequest : buildResource ("5000m" , "5G" ),
238+ Tasks : tasksMap {
239+ case01Task1 .UID : case01Task1 ,
240+ case01Task2 .UID : case01Task2 ,
241+ case01Task3 .UID : case01Task3 ,
242+ case01Task4 .UID : case01Task4 ,
243+ },
244+ TaskStatusIndex : map [TaskStatus ]tasksMap {
245+ Running : {
246+ case01Task2 .UID : case01Task2 ,
247+ },
248+ Pending : {
249+ case01Task1 .UID : case01Task1 ,
250+ },
251+ Bound : {
252+ case01Task3 .UID : case01Task3 ,
253+ case01Task4 .UID : case01Task4 ,
254+ },
255+ },
256+ },
257+ },
258+ }
259+
260+ for i , test := range tests {
261+ clone := test .expected .Clone ()
262+ //assert.Equal(t, test.expected, clone)
263+ if ! jobInfoEqual (clone , test .expected ) {
264+ t .Errorf ("clone info %d: \n expected: %v, \n got: %v \n " , i , test .expected , clone )
265+ }
266+ }
267+ }
0 commit comments