@@ -16,6 +16,50 @@ import (
16
16
"github.com/projecteru2/core/types"
17
17
)
18
18
19
+ func TestPodResource (t * testing.T ) {
20
+ c := NewTestCluster ()
21
+ ctx := context .Background ()
22
+ podname := "testpod"
23
+ nodename := "testnode"
24
+ store := & storemocks.Store {}
25
+ c .store = store
26
+ // failed by GetNodesByPod
27
+ store .On ("GetNodesByPod" , mock .Anything , mock .Anything ).Return (nil , types .ErrBadPodType ).Once ()
28
+ _ , err := c .PodResource (ctx , podname )
29
+ assert .Error (t , err )
30
+ node := & types.Node {
31
+ Name : nodename ,
32
+ CPU : types.CPUMap {"0" : 0 , "1" : 10 },
33
+ MemCap : 2 ,
34
+ InitCPU : types.CPUMap {"0" : 100 , "1" : 100 },
35
+ InitMemCap : 6 ,
36
+ }
37
+ store .On ("GetNodesByPod" , mock .Anything , mock .Anything ).Return ([]* types.Node {node }, nil )
38
+ // failed by ListNodeContainers
39
+ store .On ("ListNodeContainers" , mock .Anything , mock .Anything ).Return (nil , types .ErrBadPodType ).Once ()
40
+ _ , err = c .PodResource (ctx , podname )
41
+ assert .Error (t , err )
42
+ containers := []* types.Container {
43
+ & types.Container {
44
+ Memory : 1 ,
45
+ CPU : types.CPUMap {"0" : 100 , "1" : 30 },
46
+ Quota : 1.3 ,
47
+ },
48
+ & types.Container {
49
+ Memory : 2 ,
50
+ CPU : types.CPUMap {"1" : 50 },
51
+ Quota : 0.5 ,
52
+ },
53
+ }
54
+ store .On ("ListNodeContainers" , mock .Anything , mock .Anything ).Return (containers , nil )
55
+ // success
56
+ r , err := c .PodResource (ctx , podname )
57
+ assert .NoError (t , err )
58
+ assert .Len (t , r .CPUPercent , 1 )
59
+ assert .Len (t , r .MEMPercent , 1 )
60
+ assert .False (t , r .Diff [nodename ])
61
+ }
62
+
19
63
func TestAllocResource (t * testing.T ) {
20
64
c := NewTestCluster ()
21
65
ctx := context .Background ()
0 commit comments