package intelrdt import ( "os" "path/filepath" "testing" ) func TestGetCMTNumaNodeStats(t *testing.T) { mocksNUMANodesToCreate := []string{"mon_l3_00", "mon_l3_01"} mocksFilesToCreate := map[string]uint64{ "llc_occupancy": 9123911, } mockedL3_MON, err := mockResctrlL3_MON(mocksNUMANodesToCreate, mocksFilesToCreate) defer func() { err := os.RemoveAll(mockedL3_MON) if err != nil { t.Fatal(err) } }() if err != nil { t.Fatal(err) } t.Run("Gather mbm", func(t *testing.T) { enabledMonFeatures.llcOccupancy = true stats := make([]CMTNumaNodeStats, 0, len(mocksNUMANodesToCreate)) for _, numa := range mocksNUMANodesToCreate { other, err := getCMTNumaNodeStats(filepath.Join(mockedL3_MON, "mon_data", numa)) if err != nil { t.Fatal(err) } stats = append(stats, *other) } expectedStats := CMTNumaNodeStats{ LLCOccupancy: mocksFilesToCreate["llc_occupancy"], } checkCMTStatCorrection(stats[0], expectedStats, t) checkCMTStatCorrection(stats[1], expectedStats, t) }) } func checkCMTStatCorrection(got CMTNumaNodeStats, expected CMTNumaNodeStats, t *testing.T) { if got.LLCOccupancy != expected.LLCOccupancy { t.Fatalf("Wrong value of `llc_occupancy`. Expected: %v but got: %v", expected.LLCOccupancy, got.LLCOccupancy) } }