From 23833b9c81c6dd991788b30f8780381d1343c337 Mon Sep 17 00:00:00 2001 From: PiotrProkop Date: Fri, 30 Jun 2023 10:20:28 +0200 Subject: [PATCH] topologymanager: Increase TopologyManager test coverage by adding negative test cases around NUMA topology discovery Signed-off-by: PiotrProkop --- .../topologymanager/topology_manager_test.go | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/cm/topologymanager/topology_manager_test.go b/pkg/kubelet/cm/topologymanager/topology_manager_test.go index c18c38cb429..24404981d6e 100644 --- a/pkg/kubelet/cm/topologymanager/topology_manager_test.go +++ b/pkg/kubelet/cm/topologymanager/topology_manager_test.go @@ -42,6 +42,7 @@ func TestNewManager(t *testing.T) { expectedError error topologyError error policyOptions map[string]string + topology []cadvisorapi.Node }{ { description: "Policy is set to none", @@ -86,10 +87,59 @@ func TestNewManager(t *testing.T) { "unknown-option": "true", }, }, + { + description: "can't get NUMA distances", + policyName: "best-effort", + expectedPolicy: "best-effort", + policyOptions: map[string]string{ + PreferClosestNUMANodes: "true", + }, + expectedError: fmt.Errorf("error getting NUMA distances from cadvisor"), + topology: []cadvisorapi.Node{ + { + Id: 0, + }, + }, + }, + { + description: "more than 8 NUMA nodes", + policyName: "best-effort", + expectedPolicy: "best-effort", + expectedError: fmt.Errorf("unsupported on machines with more than %v NUMA Nodes", maxAllowableNUMANodes), + topology: []cadvisorapi.Node{ + { + Id: 0, + }, + { + Id: 1, + }, + { + Id: 2, + }, + { + Id: 3, + }, + { + Id: 4, + }, + { + Id: 5, + }, + { + Id: 6, + }, + { + Id: 7, + }, + { + Id: 8, + }, + }, + }, } for _, tc := range tcases { - topology := []cadvisorapi.Node{} + topology := tc.topology mngr, err := NewManager(topology, tc.policyName, "container", tc.policyOptions) if tc.expectedError != nil {