diff --git a/pkg/scheduler/extender_test.go b/pkg/scheduler/extender_test.go index ce7ed6ec466..cd6b67df2ea 100644 --- a/pkg/scheduler/extender_test.go +++ b/pkg/scheduler/extender_test.go @@ -270,6 +270,30 @@ func TestSchedulerWithExtenders(t *testing.T) { }, name: "test 9", }, + { + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + }, + extenders: []tf.FakeExtender{ + { + ExtenderName: "FakeExtender1", + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, + }, + { + ExtenderName: "FakeExtender2", + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, + }, + }, + nodes: []string{"node1", "node2"}, + expectedResult: ScheduleResult{ + SuggestedHost: "node1", + EvaluatedNodes: 1, + FeasibleNodes: 1, + }, + name: "test 10", + }, } for _, test := range tests { diff --git a/pkg/scheduler/schedule_one_test.go b/pkg/scheduler/schedule_one_test.go index ee40f81f4c3..03f8fc07416 100644 --- a/pkg/scheduler/schedule_one_test.go +++ b/pkg/scheduler/schedule_one_test.go @@ -2343,6 +2343,33 @@ func TestSchedulerSchedulePod(t *testing.T) { pod: st.MakePod().Name("ignore").UID("ignore").Obj(), wantNodes: sets.New("node1", "node2"), }, + { + name: "test without score plugin no extra nodes are evaluated", + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + }, + nodes: []string{"node1", "node2", "node3"}, + pod: st.MakePod().Name("pod1").UID("pod1").Obj(), + wantNodes: sets.New("node1", "node2", "node3"), + wantEvaluatedNodes: ptr.To[int32](1), + }, + { + name: "test no score plugin, prefilter plugin returning 2 nodes, only 1 node is evaluated", + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( + "FakePreFilter", + tf.NewFakePreFilterPlugin("FakePreFilter", &framework.PreFilterResult{NodeNames: sets.New("node1", "node2")}, nil), + ), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + }, + nodes: []string{"node1", "node2", "node3"}, + pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), + wantNodes: sets.New("node1", "node2"), + wantEvaluatedNodes: ptr.To[int32](1), + }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) {