@@ -3,97 +3,67 @@ package intelrdt
33import (
44 "os"
55 "path/filepath"
6+ "slices"
67 "strings"
78 "testing"
8- )
9-
10- func TestIntelRdtSetL3CacheSchema (t * testing.T ) {
11- helper := NewIntelRdtTestUtil (t )
12-
13- const (
14- l3CacheSchemaBefore = "L3:0=f;1=f0"
15- l3CacheSchemeAfter = "L3:0=f0;1=f"
16- )
17-
18- helper .writeFileContents (map [string ]string {
19- "schemata" : l3CacheSchemaBefore + "\n " ,
20- })
21-
22- helper .config .IntelRdt .L3CacheSchema = l3CacheSchemeAfter
23- intelrdt := newManager (helper .config , "" , helper .IntelRdtPath )
24- if err := intelrdt .Set (helper .config ); err != nil {
25- t .Fatal (err )
26- }
27-
28- tmpStrings , err := getIntelRdtParamString (helper .IntelRdtPath , "schemata" )
29- if err != nil {
30- t .Fatalf ("Failed to parse file 'schemata' - %s" , err )
31- }
32- values := strings .Split (tmpStrings , "\n " )
33- value := values [0 ]
34-
35- if value != l3CacheSchemeAfter {
36- t .Fatal ("Got the wrong value, set 'schemata' failed." )
37- }
38- }
39-
40- func TestIntelRdtSetMemBwSchema (t * testing.T ) {
41- helper := NewIntelRdtTestUtil (t )
42-
43- const (
44- memBwSchemaBefore = "MB:0=20;1=70"
45- memBwSchemeAfter = "MB:0=70;1=20"
46- )
479
48- helper .writeFileContents (map [string ]string {
49- "schemata" : memBwSchemaBefore + "\n " ,
50- })
51-
52- helper .config .IntelRdt .MemBwSchema = memBwSchemeAfter
53- intelrdt := newManager (helper .config , "" , helper .IntelRdtPath )
54- if err := intelrdt .Set (helper .config ); err != nil {
55- t .Fatal (err )
56- }
57-
58- tmpStrings , err := getIntelRdtParamString (helper .IntelRdtPath , "schemata" )
59- if err != nil {
60- t .Fatalf ("Failed to parse file 'schemata' - %s" , err )
61- }
62- values := strings .Split (tmpStrings , "\n " )
63- value := values [0 ]
64-
65- if value != memBwSchemeAfter {
66- t .Fatal ("Got the wrong value, set 'schemata' failed." )
67- }
68- }
69-
70- func TestIntelRdtSetMemBwScSchema (t * testing.T ) {
71- helper := NewIntelRdtTestUtil (t )
72-
73- const (
74- memBwScSchemaBefore = "MB:0=5000;1=7000"
75- memBwScSchemeAfter = "MB:0=9000;1=4000"
76- )
77-
78- helper .writeFileContents (map [string ]string {
79- "schemata" : memBwScSchemaBefore + "\n " ,
80- })
81-
82- helper .config .IntelRdt .MemBwSchema = memBwScSchemeAfter
83- intelrdt := newManager (helper .config , "" , helper .IntelRdtPath )
84- if err := intelrdt .Set (helper .config ); err != nil {
85- t .Fatal (err )
86- }
10+ "github.com/opencontainers/runc/libcontainer/configs"
11+ )
8712
88- tmpStrings , err := getIntelRdtParamString (helper .IntelRdtPath , "schemata" )
89- if err != nil {
90- t .Fatalf ("Failed to parse file 'schemata' - %s" , err )
13+ func TestIntelRdtSet (t * testing.T ) {
14+ tcs := []struct {
15+ name string
16+ config * configs.IntelRdt
17+ schemataAfter []string
18+ }{
19+ {
20+ name : "L3" ,
21+ config : & configs.IntelRdt {
22+ L3CacheSchema : "L3:0=f0;1=f" ,
23+ },
24+ schemataAfter : []string {"L3:0=f0;1=f" },
25+ },
26+ {
27+ name : "MemBw" ,
28+ config : & configs.IntelRdt {
29+ MemBwSchema : "MB:0=70;1=20" ,
30+ },
31+ schemataAfter : []string {"MB:0=70;1=20" },
32+ },
33+ {
34+ name : "MemBwSc" ,
35+ config : & configs.IntelRdt {
36+ MemBwSchema : "MB:0=9000;1=4000" ,
37+ },
38+ schemataAfter : []string {"MB:0=9000;1=4000" },
39+ },
9140 }
92- values := strings .Split (tmpStrings , "\n " )
93- value := values [0 ]
9441
95- if value != memBwScSchemeAfter {
96- t .Fatal ("Got the wrong value, set 'schemata' failed." )
42+ for _ , tc := range tcs {
43+ t .Run (tc .name , func (t * testing.T ) {
44+ helper := NewIntelRdtTestUtil (t )
45+ helper .config .IntelRdt = tc .config
46+
47+ helper .writeFileContents (map [string ]string {
48+ /* Common initial value for all test cases */
49+ "schemata" : "MB:0=100\n L3:0=ffff\n L2:0=ffffffff\n " ,
50+ })
51+
52+ intelrdt := newManager (helper .config , "" , helper .IntelRdtPath )
53+ if err := intelrdt .Set (helper .config ); err != nil {
54+ t .Fatal (err )
55+ }
56+
57+ tmpStrings , err := getIntelRdtParamString (helper .IntelRdtPath , "schemata" )
58+ if err != nil {
59+ t .Fatalf ("Failed to parse file 'schemata' - %s" , err )
60+ }
61+ values := strings .Split (tmpStrings , "\n " )
62+
63+ if slices .Compare (values , tc .schemataAfter ) != 0 {
64+ t .Fatalf ("Got the wrong value, expected %v, got %v" , tc .schemataAfter , values )
65+ }
66+ })
9767 }
9868}
9969
0 commit comments