Imported Upstream version 1.7.0
[platform/upstream/augeas.git] / lenses / tests / test_cgconfig.aug
1 module Test_cgconfig =
2
3 let conf="#cgconfig test cofiguration file
4 mount { 123 = 456; 456 = 789;}
5 "
6
7 test Cgconfig.lns get conf =
8   { "#comment" = "cgconfig test cofiguration file" }
9   { "mount"
10       { "123" = "456" }
11       { "456" = "789" } }
12   {}
13
14 (* white spaces before mount sign *)
15 let conf2="
16  mount { 123 = 456;}
17     mount { 123 = 456;}
18
19 mount { 123 = 456;}mount { 123 = 456;}
20 "
21
22 test Cgconfig.lns get conf2 =
23   { }
24   { "mount" { "123" = "456"} }
25   { }
26   { "mount" { "123" = "456"} }
27   { }
28   { }
29   { "mount" { "123" = "456"} }
30   { "mount" { "123"  = "456" } }
31   { }
32
33 let conf3="#cgconfig test cofiguration file
34 mount { 123 = 456;
35 #eswkh
36  456 = 789;}
37 "
38 test Cgconfig.lns get conf3 =
39   { "#comment" = "cgconfig test cofiguration file" }
40   { "mount"
41     { "123" = "456" }
42     {}
43     { "#comment" = "eswkh" }
44     { "456" = "789" } }
45   {}
46
47 let conf4="#cgconfig test cofiguration file
48 mount {
49 123 = 456;1245=456;
50 }
51 mount { 323=324;}mount{324=5343;  }# this is a comment
52 "
53
54 test Cgconfig.lns get conf4 =
55   {"#comment" = "cgconfig test cofiguration file" }
56   {"mount"
57      {  }
58      { "123" = "456"}
59      { "1245" = "456" }
60      {  }}
61   { }
62   { "mount" { "323" = "324" } }
63   { "mount" { "324" = "5343" } }
64   { "#comment" = "this is a comment" }
65
66 let group1="
67 group user {
68         cpuacct {
69       lll = jjj;
70         }
71         cpu {
72         }
73 }"
74
75 test Cgconfig.lns get group1 =
76   {  }
77   { "group" = "user"
78     {  }
79     { "controller" = "cpuacct"
80       {  }
81       { "lll" = "jjj" }
82       {  } }
83     {  }
84     { "controller" = "cpu" {  } }
85     {  } }
86
87 let group2="
88 group aa-1{
89      perm {
90                  task { }
91                  admin { }
92       }
93 }"
94
95 test Cgconfig.lns get group2 =
96   {  }
97   { "group" = "aa-1"
98     {  }
99     { "perm"
100       {  }
101       { "task" }
102       {  }
103       { "admin" }
104       {  } }
105     {  } }
106
107
108 let group3 ="
109 group xx/www {
110  perm {
111         task {
112                 gid = root;
113                 uid = root;
114         }
115         admin {
116                 gid = aaa;
117 # no aaa
118                 uid = aaa;
119         }
120 }
121 }
122 "
123
124 test Cgconfig.lns get group3 =
125   {  }
126   { "group" = "xx/www"
127     {  }
128     { "perm"
129       {  }
130       { "task"
131         {  }
132         { "gid" = "root" }
133         {  }
134         { "uid" = "root" }
135         {  } }
136       {  }
137       { "admin"
138         {  }
139         { "gid" = "aaa" }
140         {  }
141         { "#comment" = "no aaa" }
142         { "uid" = "aaa" }
143         {  } }
144       {  } }
145     {  } }
146   {  }
147
148 let group4 ="
149 #group daemons {
150 #           cpuacct{
151 #           }
152 #}
153
154 group daemons/ftp {
155                      cpuacct{
156                                           }
157 }
158
159    group daemons/www {
160         perm {
161                 task {
162                         uid = root;
163                         gid = root;
164                 }
165                 admin {
166                         uid = root;
167                         gid = root;
168                 }
169         }
170 #       cpu {
171 #               cpu.shares = 1000;
172 #       }
173 }
174 #
175 #
176
177   mount {
178        devices = /mnt/cgroups/devices;cpuacct = /mnt/cgroups/cpuset;
179         cpuset = /mnt/cgroups/cpuset;
180
181
182         cpu = /mnt/cpu;
183 #        cpuset = /mnt/cgroups/cpuset2;
184 }
185 mount   {
186 devices = /mnt/cgroups/devices;
187 #       cpuacct = /mnt/cgroups/cpuacct;
188         ns = /mnt/cgroups/ns;
189 #
190 }
191
192 "
193
194 test Cgconfig.lns get group4 =
195   {  }
196   { "#comment" = "group daemons {" }
197   { "#comment" = "cpuacct{" }
198   { "#comment" = "}" }
199   { "#comment" = "}" }
200   {  }
201   { "group" = "daemons/ftp"
202     {  }
203     { "controller" = "cpuacct" {  } }
204     {  } }
205   {  }
206   {  }
207   { "group" = "daemons/www"
208     {  }
209     { "perm"
210       {  }
211       { "task"
212         {  }
213         { "uid" = "root" }
214         {  }
215         { "gid" = "root" }
216         {  } }
217       {  }
218       { "admin"
219         {  }
220         { "uid" = "root" }
221         {  }
222         { "gid" = "root" }
223         {  } }
224       {  } }
225     {  }
226     { "#comment" = "cpu {" }
227     { "#comment" = "cpu.shares = 1000;" }
228     { "#comment" = "}" } }
229   {  }
230   {  }
231   {  }
232   {  }
233   { "mount"
234     {  }
235     { "devices" = "/mnt/cgroups/devices" }
236     { "cpuacct" = "/mnt/cgroups/cpuset" }
237     {  }
238     { "cpuset" = "/mnt/cgroups/cpuset" }
239     {  }
240     {  }
241     {  }
242     { "cpu" = "/mnt/cpu" }
243     {  }
244     { "#comment" = "cpuset = /mnt/cgroups/cpuset2;" } }
245   {  }
246   { "mount"
247     {  }
248     { "devices" = "/mnt/cgroups/devices" }
249     {  }
250     { "#comment" = "cpuacct = /mnt/cgroups/cpuacct;" }
251     { "ns" = "/mnt/cgroups/ns" }
252     {  }
253     {  } }
254   {  }
255   {  }
256
257 test Cgconfig.lns put "group tst {memory {}}" after
258   set "/group" "tst2"
259 = "group tst2 {memory {}}"
260
261 let group5="
262 group user {
263         cpuacct {}
264         cpu {}
265         cpuset {}
266         devices {}
267         freezer {}
268         memory {}
269         net_cls {}
270         blkio {}
271         hugetlb {}
272         perf_event {}
273 }"
274
275 test Cgconfig.lns get group5 =
276   {  }
277   { "group" = "user"
278     {  }
279     { "controller" = "cpuacct" }
280     {  }
281     { "controller" = "cpu" }
282     {  }
283     { "controller" = "cpuset" }
284     {  }
285     { "controller" = "devices" }
286     {  }
287     { "controller" = "freezer" }
288     {  }
289     { "controller" = "memory" }
290     {  }
291     { "controller" = "net_cls" }
292     {  }
293     { "controller" = "blkio" }
294     {  }
295     { "controller" = "hugetlb" }
296     {  }
297     { "controller" = "perf_event" }
298     {  }
299   }
300
301 (* quoted controller parameter whitespace *)
302 let group6="
303 group blklimit {
304      blkio {
305                blkio.throttle.read_iops_device=\"8:0 50\";
306      }
307 }"
308
309 test Cgconfig.lns get group6 =
310   {  }
311   { "group" = "blklimit"
312     {  }
313     { "controller" = "blkio"
314       {  }
315       { "blkio.throttle.read_iops_device" = "\"8:0 50\"" }
316       {  }
317     }
318     {  }
319   }
320