MCPcopy Create free account
hub / github.com/containerd/cgroups / TestKill

Function TestKill

cgroup2/manager_test.go:241–293  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

239}
240
241func TestKill(t *testing.T) {
242 checkCgroupMode(t)
243 manager, err := NewManager(defaultCgroup2Path, "/test1", ToResources(&specs.LinuxResources{}))
244 require.NoError(t, err)
245 t.Cleanup(func() {
246 _ = manager.Delete()
247 })
248
249 var (
250 procs []*exec.Cmd
251 numProcs = 5
252 )
253 for i := 0; i < numProcs; i++ {
254 cmd := exec.Command("sleep", "infinity")
255 // Don't leak the process if we fail to join the cg,
256 // send sigkill after tests over.
257 cmd.SysProcAttr = &syscall.SysProcAttr{
258 Pdeathsig: syscall.SIGKILL,
259 }
260 err = cmd.Start()
261 require.NoError(t, err)
262
263 err = manager.AddProc(uint64(cmd.Process.Pid))
264 require.NoError(t, err)
265
266 procs = append(procs, cmd)
267 }
268 // Verify we have 5 pids before beginning Kill below.
269 pids, err := manager.Procs(true)
270 require.NoError(t, err)
271 require.Len(t, pids, numProcs, "pid count unexpected")
272 threads, err := manager.Threads(true)
273 require.NoError(t, err)
274 require.Len(t, threads, numProcs, "pid count unexpected")
275
276 // Now run kill, and check that nothing is running after.
277 err = manager.Kill()
278 require.NoError(t, err)
279
280 done := make(chan struct{})
281 go func() {
282 for _, proc := range procs {
283 _ = proc.Wait()
284 }
285 done <- struct{}{}
286 }()
287
288 select {
289 case <-time.After(time.Second * 3):
290 t.Fatal("timed out waiting for processes to exit")
291 case <-done:
292 }
293}
294
295func TestMoveTo(t *testing.T) {
296 checkCgroupMode(t)

Callers

nothing calls this directly

Calls 8

DeleteMethod · 0.95
AddProcMethod · 0.95
ProcsMethod · 0.95
ThreadsMethod · 0.95
KillMethod · 0.95
checkCgroupModeFunction · 0.85
NewManagerFunction · 0.85
ToResourcesFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…