Skip to content

Commit 7c34f09

Browse files
committed
systemd: add TasksMax test
Co-developed-by: Kir Kolyshkin <[email protected]> Signed-off-by: Kir Kolyshkin <[email protected]> Signed-off-by: Aleksa Sarai <[email protected]>
1 parent ae52e0c commit 7c34f09

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

systemd/systemd_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,40 @@ func TestAddCPUQuota(t *testing.T) {
236236
})
237237
}
238238
}
239+
240+
func TestTasksMax(t *testing.T) {
241+
if !IsRunningSystemd() {
242+
t.Skip("Test requires systemd.")
243+
}
244+
if os.Geteuid() != 0 {
245+
t.Skip("Test requires root.")
246+
}
247+
248+
podConfig := &cgroups.Cgroup{
249+
Parent: "system.slice",
250+
Name: "system-runc_test_tasksmax.slice",
251+
Resources: &cgroups.Resources{},
252+
}
253+
// Create "pods" cgroup (a systemd slice to hold containers).
254+
pm := newManager(t, podConfig)
255+
if err := pm.Apply(-1); err != nil {
256+
t.Fatal(err)
257+
}
258+
259+
res := &cgroups.Resources{PidsLimit: nil}
260+
if err := pm.Set(res); err != nil {
261+
t.Fatalf("failed to set PidsLimit=nil: %v", err)
262+
}
263+
264+
for _, limit := range []int64{100, 0, 42, -1, 100, -99} {
265+
res.PidsLimit = &limit
266+
if err := pm.Set(res); err != nil {
267+
t.Fatalf("failed to set PidsLimit=%d: %v", limit, err)
268+
}
269+
}
270+
271+
res.PidsLimit = nil
272+
if err := pm.Set(res); err != nil {
273+
t.Fatalf("failed to set PidsLimit=nil: %v", err)
274+
}
275+
}

0 commit comments

Comments
 (0)