@@ -3,97 +3,67 @@ package intelrdt
3
3
import (
4
4
"os"
5
5
"path/filepath"
6
+ "reflect"
6
7
"strings"
7
8
"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
- )
47
-
48
- helper .writeFileContents (map [string ]string {
49
- "schemata" : memBwSchemaBefore + "\n " ,
50
- })
51
9
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
+ )
87
12
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
+ },
91
40
}
92
- values := strings .Split (tmpStrings , "\n " )
93
- value := values [0 ]
94
41
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 ! reflect .DeepEqual (values , tc .schemataAfter ) {
64
+ t .Fatalf ("Got the wrong value, expected %v, got %v" , tc .schemataAfter , values )
65
+ }
66
+ })
97
67
}
98
68
}
99
69
0 commit comments