@@ -58,7 +58,7 @@ func Test_clearNicXPS(t *testing.T) {
5858 },
5959 }
6060
61- PatchConvey ("Scenario 1: Set XPS successfully" , func () {
61+ PatchConvey ("Scenario 1: clear NIC XPS successfully" , func () {
6262 Mock (machine .GetNicTxQueuesXpsConf ).Return (map [int ]string {
6363 0 : "ffff" ,
6464 }, nil ).Build ()
@@ -70,7 +70,19 @@ func Test_clearNicXPS(t *testing.T) {
7070 So (err , ShouldBeNil )
7171 })
7272
73- PatchConvey ("Scenario 2: GetNicTxQueuesXpsConf failed" , func () {
73+ PatchConvey ("Scenario 2: IsZeroBitmap" , func () {
74+ Mock (machine .GetNicTxQueuesXpsConf ).Return (map [int ]string {
75+ 0 : "ffff" ,
76+ }, nil ).Build ()
77+
78+ Mock (machine .IsZeroBitmap ).Return (true ).Build ()
79+
80+ err := ic .clearNicXPS (nic )
81+
82+ So (err , ShouldBeNil )
83+ })
84+
85+ PatchConvey ("Scenario 3: GetNicTxQueuesXpsConf failed" , func () {
7486 nic .QueueNum = 0
7587 expectedErr := fmt .Errorf ("invalid queue number %d" , nic .QueueNum )
7688
@@ -80,7 +92,7 @@ func Test_clearNicXPS(t *testing.T) {
8092 So (err , ShouldResemble , expectedErr )
8193 })
8294
83- PatchConvey ("Scenario 3 : ClearNicTxQueueXPS failed" , func () {
95+ PatchConvey ("Scenario 4 : ClearNicTxQueueXPS failed" , func () {
8496 nic .QueueNum = 1
8597 expectedErr := errors .New ("failed to clear tx queue xps" )
8698
@@ -96,3 +108,86 @@ func Test_clearNicXPS(t *testing.T) {
96108 })
97109 })
98110}
111+
112+ func Test_clearRPSForNic (t * testing.T ) {
113+ t .Parallel ()
114+ PatchConvey ("Test_clearRPSForNic" , t , func () {
115+ ic := & IrqTuningController {
116+ Nics : []* NicIrqTuningManager {
117+ {
118+ NicInfo : & NicInfo {
119+ NicBasicInfo : & machine.NicBasicInfo {
120+ InterfaceInfo : machine.InterfaceInfo {
121+ Name : "eth0" ,
122+ },
123+ Irq2Queue : map [int ]int {
124+ 100 : 0 ,
125+ },
126+ Queue2Irq : map [int ]int {
127+ 0 : 100 ,
128+ },
129+ QueueNum : 1 ,
130+ },
131+ Irq2Core : map [int ]int64 {
132+ 100 : 2 ,
133+ },
134+ SocketIrqCores : map [int ][]int64 {
135+ 0 : {2 },
136+ },
137+ },
138+ },
139+ },
140+ }
141+
142+ PatchConvey ("Scenario 1: clear NIC RPS successfully" , func () {
143+ Mock (machine .GetNicRxQueuesRpsConf ).Return (map [int ]string {
144+ 0 : "ffff" ,
145+ }, nil ).Build ()
146+
147+ Mock (machine .ClearNicRxQueueRPS ).Return (nil ).Build ()
148+
149+ err := ic .clearRPSForNic (ic .Nics [0 ])
150+
151+ So (err , ShouldBeNil )
152+ })
153+
154+ PatchConvey ("Scenario 2: IsZeroBitmap" , func () {
155+ Mock (machine .GetNicRxQueuesRpsConf ).Return (map [int ]string {
156+ 0 : "ffff" ,
157+ }, nil ).Build ()
158+
159+ Mock (machine .IsZeroBitmap ).Return (true ).Build ()
160+
161+ err := ic .clearRPSForNic (ic .Nics [0 ])
162+
163+ So (err , ShouldBeNil )
164+ })
165+
166+ PatchConvey ("Scenario 3: ClearNicRxQueueRPS failed" , func () {
167+ nic := ic .Nics [0 ]
168+ nic .NicInfo .QueueNum = 0
169+ expectedErr := fmt .Errorf ("invalid queue number %d" , nic .NicInfo .QueueNum )
170+
171+ err := ic .clearRPSForNic (nic )
172+
173+ So (err , ShouldNotBeNil )
174+ So (err , ShouldResemble , expectedErr )
175+ })
176+
177+ PatchConvey ("Scenario 4: ClearNicRxQueueRPS failed" , func () {
178+ nic := ic .Nics [0 ]
179+ nic .NicInfo .QueueNum = 1
180+ expectedErr := errors .New ("failed to clear rx queue rps" )
181+
182+ Mock (machine .GetNicTxQueuesXpsConf ).Return (map [int ]string {
183+ 0 : "ffff" ,
184+ }, nil ).Build ()
185+
186+ Mock (machine .ClearNicRxQueueRPS ).Return (expectedErr ).Build ()
187+
188+ err := ic .clearRPSForNic (nic )
189+
190+ So (err , ShouldBeNil )
191+ })
192+ })
193+ }
0 commit comments