Skip to content

Commit 1030904

Browse files
fix
fix Signed-off-by: 张浩宇 <zhanghaoyu.zhy@bytedance.com>
1 parent d10a95d commit 1030904

1 file changed

Lines changed: 98 additions & 3 deletions

File tree

pkg/agent/qrm-plugins/cpu/dynamicpolicy/irqtuner/controller/controller_linux_test.go

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)