From 10148d8eca96a20b5f7d73f4c3fb5a2379880aee Mon Sep 17 00:00:00 2001 From: Krisztian Litkey Date: Mon, 14 Oct 2024 18:29:49 +0300 Subject: [PATCH] libmem: add ParseNodeMask test. Signed-off-by: Krisztian Litkey --- pkg/resmgr/lib/memory/nodes_test.go | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/pkg/resmgr/lib/memory/nodes_test.go b/pkg/resmgr/lib/memory/nodes_test.go index d26b0186..5fe17fc0 100644 --- a/pkg/resmgr/lib/memory/nodes_test.go +++ b/pkg/resmgr/lib/memory/nodes_test.go @@ -22,6 +22,57 @@ import ( . "github.com/containers/nri-plugins/pkg/resmgr/lib/memory" ) +func TestParseNodeMask(t *testing.T) { + type testCase struct { + name string + mask string + result NodeMask + fail bool + } + for _, tc := range []*testCase{ + { + name: "empty mask", + mask: "", + result: NodeMask(0), + }, + { + name: "single node mask", + mask: "0", + result: NewNodeMask(0), + }, + { + name: "multiple nodes mask", + mask: "0,2,4,6,8,11,17", + result: NewNodeMask(0, 2, 4, 6, 8, 11, 17), + }, + { + name: "invalid mask, missing ID", + mask: "0,2,4,6,8,11,17,", + fail: true, + }, + { + name: "invalid mask, invalid ID", + mask: "0,2,xyzzy,11", + fail: true, + }, + { + name: "invalid mask, too large ID", + mask: "0,2,4,6,8,11,17,100", + fail: true, + }, + } { + t.Run(tc.name, func(t *testing.T) { + m, err := ParseNodeMask(tc.mask) + if tc.fail { + require.Error(t, err) + } else { + require.NoError(t, err) + require.Equal(t, m, tc.result) + } + }) + } +} + func TestMemsetString(t *testing.T) { type testCase struct { name string