Skip to content

Commit 3ab338d

Browse files
authored
Merge pull request kubernetes#77576 from Huang-Wei/sched-ut-escape
prevent `predicatesOrdering` from escaping from UT
2 parents 6d94a23 + c4df3a2 commit 3ab338d

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

pkg/scheduler/algorithm/predicates/predicates.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,6 @@ func Ordering() []string {
173173
return predicatesOrdering
174174
}
175175

176-
// SetPredicatesOrdering sets the ordering of predicates.
177-
func SetPredicatesOrdering(names []string) {
178-
predicatesOrdering = names
179-
}
180-
181176
// GetPersistentVolumeInfo returns a persistent volume object by PV ID.
182177
func (c *CachedPersistentVolumeInfo) GetPersistentVolumeInfo(pvID string) (*v1.PersistentVolume, error) {
183178
return c.Get(pvID)

pkg/scheduler/algorithm/predicates/utils.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,13 @@ func portsConflict(existingPorts schedulernodeinfo.HostPortInfo, wantPorts []*v1
7777

7878
return false
7979
}
80+
81+
// SetPredicatesOrderingDuringTest sets the predicatesOrdering to the specified
82+
// value, and returns a function that restores the original value.
83+
func SetPredicatesOrderingDuringTest(value []string) func() {
84+
origVal := predicatesOrdering
85+
predicatesOrdering = value
86+
return func() {
87+
predicatesOrdering = origVal
88+
}
89+
}

pkg/scheduler/core/generic_scheduler_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ func TestSelectHost(t *testing.T) {
217217
}
218218

219219
func TestGenericScheduler(t *testing.T) {
220-
algorithmpredicates.SetPredicatesOrdering(order)
220+
defer algorithmpredicates.SetPredicatesOrderingDuringTest(order)()
221221
tests := []struct {
222222
name string
223223
predicates map[string]algorithmpredicates.FitPredicate
@@ -479,7 +479,6 @@ func TestGenericScheduler(t *testing.T) {
479479

480480
// makeScheduler makes a simple genericScheduler for testing.
481481
func makeScheduler(predicates map[string]algorithmpredicates.FitPredicate, nodes []*v1.Node) *genericScheduler {
482-
algorithmpredicates.SetPredicatesOrdering(order)
483482
cache := internalcache.New(time.Duration(0), wait.NeverStop)
484483
fwk, _ := framework.NewFramework(EmptyPluginRegistry, nil)
485484
for _, n := range nodes {
@@ -503,6 +502,7 @@ func makeScheduler(predicates map[string]algorithmpredicates.FitPredicate, nodes
503502
}
504503

505504
func TestFindFitAllError(t *testing.T) {
505+
defer algorithmpredicates.SetPredicatesOrderingDuringTest(order)()
506506
predicates := map[string]algorithmpredicates.FitPredicate{"true": truePredicate, "matches": matchesPredicate}
507507
nodes := makeNodeList([]string{"3", "2", "1"})
508508
scheduler := makeScheduler(predicates, nodes)
@@ -531,6 +531,7 @@ func TestFindFitAllError(t *testing.T) {
531531
}
532532

533533
func TestFindFitSomeError(t *testing.T) {
534+
defer algorithmpredicates.SetPredicatesOrderingDuringTest(order)()
534535
predicates := map[string]algorithmpredicates.FitPredicate{"true": truePredicate, "matches": matchesPredicate}
535536
nodes := makeNodeList([]string{"3", "2", "1"})
536537
scheduler := makeScheduler(predicates, nodes)
@@ -846,7 +847,7 @@ var startTime20190107 = metav1.Date(2019, 1, 7, 1, 1, 1, 0, time.UTC)
846847
// TestSelectNodesForPreemption tests selectNodesForPreemption. This test assumes
847848
// that podsFitsOnNode works correctly and is tested separately.
848849
func TestSelectNodesForPreemption(t *testing.T) {
849-
algorithmpredicates.SetPredicatesOrdering(order)
850+
defer algorithmpredicates.SetPredicatesOrderingDuringTest(order)()
850851
tests := []struct {
851852
name string
852853
predicates map[string]algorithmpredicates.FitPredicate
@@ -1005,7 +1006,7 @@ func TestSelectNodesForPreemption(t *testing.T) {
10051006

10061007
// TestPickOneNodeForPreemption tests pickOneNodeForPreemption.
10071008
func TestPickOneNodeForPreemption(t *testing.T) {
1008-
algorithmpredicates.SetPredicatesOrdering(order)
1009+
defer algorithmpredicates.SetPredicatesOrderingDuringTest(order)()
10091010
tests := []struct {
10101011
name string
10111012
predicates map[string]algorithmpredicates.FitPredicate
@@ -1321,6 +1322,7 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
13211322
}
13221323

13231324
func TestPreempt(t *testing.T) {
1325+
defer algorithmpredicates.SetPredicatesOrderingDuringTest(order)()
13241326
failedPredMap := FailedPredicateMap{
13251327
"machine1": []algorithmpredicates.PredicateFailureReason{algorithmpredicates.NewInsufficientResourceError(v1.ResourceMemory, 1000, 500, 300)},
13261328
"machine2": []algorithmpredicates.PredicateFailureReason{algorithmpredicates.ErrDiskConflict},

0 commit comments

Comments
 (0)