Skip to content

Commit 0f00bce

Browse files
author
Kazuyoshi Kato
authored
Merge pull request #282 from dcantah/rm-after-tests
Cgroup2: Remove lingering cgroups after tests
2 parents a6075af + 1232b35 commit 0f00bce

1 file changed

Lines changed: 30 additions & 6 deletions

File tree

cgroup2/manager_test.go

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ func TestKill(t *testing.T) {
141141
checkCgroupMode(t)
142142
manager, err := NewManager(defaultCgroup2Path, "/test1", ToResources(&specs.LinuxResources{}))
143143
require.NoError(t, err)
144+
t.Cleanup(func() {
145+
_ = manager.Delete()
146+
})
144147

145148
var (
146149
procs []*exec.Cmd
@@ -187,17 +190,35 @@ func TestKill(t *testing.T) {
187190

188191
func TestMoveTo(t *testing.T) {
189192
checkCgroupMode(t)
190-
manager, err := NewManager(defaultCgroup2Path, "/test1", ToResources(&specs.LinuxResources{}))
193+
194+
src, err := NewManager(defaultCgroup2Path, "/test-moveto-src", ToResources(&specs.LinuxResources{}))
191195
require.NoError(t, err)
196+
t.Cleanup(func() {
197+
_ = src.Kill()
198+
_ = src.Delete()
199+
})
192200

193-
proc := os.Getpid()
194-
err = manager.AddProc(uint64(proc))
201+
cmd := exec.Command("sleep", "infinity")
202+
// Don't leak the process if we fail to join the cg,
203+
// send sigkill after tests over.
204+
cmd.SysProcAttr = &syscall.SysProcAttr{
205+
Pdeathsig: syscall.SIGKILL,
206+
}
207+
err = cmd.Start()
195208
require.NoError(t, err)
196209

197-
destination, err := NewManager(defaultCgroup2Path, "/test2", ToResources(&specs.LinuxResources{}))
210+
proc := cmd.Process.Pid
211+
err = src.AddProc(uint64(proc))
198212
require.NoError(t, err)
199213

200-
err = manager.MoveTo(destination)
214+
destination, err := NewManager(defaultCgroup2Path, "/test-moveto-dest", ToResources(&specs.LinuxResources{}))
215+
require.NoError(t, err)
216+
t.Cleanup(func() {
217+
_ = destination.Kill()
218+
_ = destination.Delete()
219+
})
220+
221+
err = src.MoveTo(destination)
201222
require.NoError(t, err)
202223

203224
desProcs, err := destination.Procs(true)
@@ -214,8 +235,11 @@ func TestMoveTo(t *testing.T) {
214235

215236
func TestCgroupType(t *testing.T) {
216237
checkCgroupMode(t)
217-
manager, err := NewManager(defaultCgroup2Path, "/test1", ToResources(&specs.LinuxResources{}))
238+
manager, err := NewManager(defaultCgroup2Path, "/test-type", ToResources(&specs.LinuxResources{}))
218239
require.NoError(t, err)
240+
t.Cleanup(func() {
241+
os.RemoveAll(manager.path)
242+
})
219243

220244
cgType, err := manager.GetType()
221245
require.NoError(t, err)

0 commit comments

Comments
 (0)