scheduler: Expand testcases to cover more plugin defaults

Signed-off-by: Dave Chen <dave.chen@arm.com>
This commit is contained in:
Dave Chen 2020-05-20 12:35:31 +08:00
parent ebcae8ff2c
commit c74a5d4fe2

View File

@ -470,11 +470,13 @@ func recordingPluginFactory(name string, result map[string]runtime.Object) Plugi
func TestNewFrameworkPluginDefaults(t *testing.T) { func TestNewFrameworkPluginDefaults(t *testing.T) {
// In-tree plugins that use args. // In-tree plugins that use args.
pluginsWithArgs := []string{"InterPodAffinity", "NodeLabel", "NodeResourcesFit", "RequestedToCapacityRatio", "PodTopologySpread"} pluginsWithArgs := []string{"InterPodAffinity", "NodeLabel", "NodeResourcesFit", "NodeResourcesLeastAllocated", "NodeResourcesMostAllocated", "PodTopologySpread", "RequestedToCapacityRatio"}
plugins := config.Plugins{ plugins := config.Plugins{
Filter: &config.PluginSet{}, Filter: &config.PluginSet{},
} }
// Use all plugins in Filter. // Use all plugins in Filter.
// NOTE: This does not mean those plugins implemented `Filter` interfaces.
// `TestPlugin` is created in this test to fake the behavior for test purpose.
for _, name := range pluginsWithArgs { for _, name := range pluginsWithArgs {
plugins.Filter.Enabled = append(plugins.Filter.Enabled, config.Plugin{Name: name}) plugins.Filter.Enabled = append(plugins.Filter.Enabled, config.Plugin{Name: name})
} }
@ -498,6 +500,12 @@ func TestNewFrameworkPluginDefaults(t *testing.T) {
}, },
"NodeLabel": &config.NodeLabelArgs{}, "NodeLabel": &config.NodeLabelArgs{},
"NodeResourcesFit": &config.NodeResourcesFitArgs{}, "NodeResourcesFit": &config.NodeResourcesFitArgs{},
"NodeResourcesLeastAllocated": &config.NodeResourcesLeastAllocatedArgs{
Resources: []config.ResourceSpec{{Name: "cpu", Weight: 1}, {Name: "memory", Weight: 1}},
},
"NodeResourcesMostAllocated": &config.NodeResourcesMostAllocatedArgs{
Resources: []config.ResourceSpec{{Name: "cpu", Weight: 1}, {Name: "memory", Weight: 1}},
},
"RequestedToCapacityRatio": &config.RequestedToCapacityRatioArgs{ "RequestedToCapacityRatio": &config.RequestedToCapacityRatioArgs{
Resources: []config.ResourceSpec{{Name: "cpu", Weight: 1}, {Name: "memory", Weight: 1}}, Resources: []config.ResourceSpec{{Name: "cpu", Weight: 1}, {Name: "memory", Weight: 1}},
}, },
@ -519,6 +527,24 @@ func TestNewFrameworkPluginDefaults(t *testing.T) {
IgnoredResources: []string{"example.com/foo"}, IgnoredResources: []string{"example.com/foo"},
}, },
}, },
{
Name: "NodeResourcesLeastAllocated",
Args: &config.NodeResourcesLeastAllocatedArgs{
Resources: []config.ResourceSpec{{Name: "resource", Weight: 4}},
},
},
{
Name: "NodeResourcesMostAllocated",
Args: &config.NodeResourcesMostAllocatedArgs{
Resources: []config.ResourceSpec{{Name: "resource", Weight: 3}},
},
},
{
Name: "RequestedToCapacityRatio",
Args: &config.RequestedToCapacityRatioArgs{
Resources: []config.ResourceSpec{{Name: "resource", Weight: 2}},
},
},
}, },
wantCfg: map[string]runtime.Object{ wantCfg: map[string]runtime.Object{
"InterPodAffinity": &config.InterPodAffinityArgs{ "InterPodAffinity": &config.InterPodAffinityArgs{
@ -528,10 +554,16 @@ func TestNewFrameworkPluginDefaults(t *testing.T) {
"NodeResourcesFit": &config.NodeResourcesFitArgs{ "NodeResourcesFit": &config.NodeResourcesFitArgs{
IgnoredResources: []string{"example.com/foo"}, IgnoredResources: []string{"example.com/foo"},
}, },
"RequestedToCapacityRatio": &config.RequestedToCapacityRatioArgs{ "NodeResourcesLeastAllocated": &config.NodeResourcesLeastAllocatedArgs{
Resources: []config.ResourceSpec{{Name: "cpu", Weight: 1}, {Name: "memory", Weight: 1}}, Resources: []config.ResourceSpec{{Name: "resource", Weight: 4}},
},
"NodeResourcesMostAllocated": &config.NodeResourcesMostAllocatedArgs{
Resources: []config.ResourceSpec{{Name: "resource", Weight: 3}},
}, },
"PodTopologySpread": &config.PodTopologySpreadArgs{}, "PodTopologySpread": &config.PodTopologySpreadArgs{},
"RequestedToCapacityRatio": &config.RequestedToCapacityRatioArgs{
Resources: []config.ResourceSpec{{Name: "resource", Weight: 2}},
},
}, },
}, },
} }