mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-06 08:47:04 +00:00
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
|
package resourcemonitor
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
corev1 "k8s.io/api/core/v1"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
cpu = string(corev1.ResourceCPU)
|
||
|
memory = string(corev1.ResourceMemory)
|
||
|
hugepages2Mi = "hugepages-2Mi"
|
||
|
nicResourceName = "vendor/nic1"
|
||
|
)
|
||
|
|
||
|
func TestNewExcludeResourceList(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
desc string
|
||
|
excludeListConfig map[string][]string
|
||
|
nodeName string
|
||
|
expectedExcludedResources []string
|
||
|
}{
|
||
|
{
|
||
|
|
||
|
desc: "exclude list with multiple nodes",
|
||
|
excludeListConfig: map[string][]string{
|
||
|
"node1": {
|
||
|
cpu,
|
||
|
nicResourceName,
|
||
|
},
|
||
|
"node2": {
|
||
|
memory,
|
||
|
hugepages2Mi,
|
||
|
},
|
||
|
},
|
||
|
nodeName: "node1",
|
||
|
expectedExcludedResources: []string{cpu, nicResourceName},
|
||
|
},
|
||
|
{
|
||
|
desc: "exclude list with wild card",
|
||
|
excludeListConfig: map[string][]string{
|
||
|
"*": {
|
||
|
memory, nicResourceName,
|
||
|
},
|
||
|
"node1": {
|
||
|
cpu,
|
||
|
hugepages2Mi,
|
||
|
},
|
||
|
},
|
||
|
nodeName: "node2",
|
||
|
expectedExcludedResources: []string{memory, nicResourceName},
|
||
|
},
|
||
|
{
|
||
|
desc: "empty exclude list",
|
||
|
excludeListConfig: map[string][]string{},
|
||
|
nodeName: "node1",
|
||
|
expectedExcludedResources: []string{},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _, tt := range tests {
|
||
|
t.Logf("test %s", tt.desc)
|
||
|
excludeList := NewExcludeResourceList(tt.excludeListConfig, tt.nodeName)
|
||
|
for _, res := range tt.expectedExcludedResources {
|
||
|
if !excludeList.IsExcluded(corev1.ResourceName(res)) {
|
||
|
t.Errorf("resource: %q expected to be excluded from node: %q", res, tt.nodeName)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|