Skip to content

Commit 0218f40

Browse files
authored
Merge pull request #285 from dcantah/testify-tests
Cgroup2: Testify all tests
2 parents fb1932a + 55c197e commit 0218f40

10 files changed

Lines changed: 100 additions & 131 deletions

cgroup2/cpuv2_test.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"testing"
2525

2626
"github.com/stretchr/testify/assert"
27+
"github.com/stretchr/testify/require"
2728
)
2829

2930
func TestCgroupv2CpuStats(t *testing.T) {
@@ -45,10 +46,10 @@ func TestCgroupv2CpuStats(t *testing.T) {
4546
},
4647
}
4748
c, err := NewManager(defaultCgroup2Path, groupPath, &res)
48-
if err != nil {
49-
t.Fatal("failed to init new cgroup manager: ", err)
50-
}
51-
defer os.Remove(c.path)
49+
require.NoError(t, err, "failed to init new cgroup manager")
50+
t.Cleanup(func() {
51+
os.Remove(c.path)
52+
})
5253

5354
checkFileContent(t, c.path, "cpu.weight", strconv.FormatUint(weight, 10))
5455
checkFileContent(t, c.path, "cpu.max", max)
@@ -62,9 +63,8 @@ func TestSystemdCgroupCpuController(t *testing.T) {
6263
var weight uint64 = 100
6364
res := Resources{CPU: &CPU{Weight: &weight}}
6465
c, err := NewSystemd("", group, os.Getpid(), &res)
65-
if err != nil {
66-
t.Fatal("failed to init new cgroup systemd manager: ", err)
67-
}
66+
require.NoError(t, err, "failed to init new cgroup systemd manager")
67+
6868
checkFileContent(t, c.path, "cpu.weight", strconv.FormatUint(weight, 10))
6969
}
7070

@@ -82,9 +82,7 @@ func TestSystemdCgroupCpuController_NilWeight(t *testing.T) {
8282
},
8383
}
8484
_, err := NewSystemd("/", group, -1, &res)
85-
if err != nil {
86-
t.Fatal("failed to init new cgroup systemd manager: ", err)
87-
}
85+
require.NoError(t, err, "failed to init new cgroup systemd manager")
8886
}
8987

9088
func TestExtractQuotaAndPeriod(t *testing.T) {

cgroup2/devicefilter_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"testing"
2222

2323
"github.com/opencontainers/runtime-spec/specs-go"
24+
"github.com/stretchr/testify/require"
2425
)
2526

2627
func hash(s, comm string) string {
@@ -37,17 +38,14 @@ func hash(s, comm string) string {
3738

3839
func testDeviceFilter(t testing.TB, devices []specs.LinuxDeviceCgroup, expectedStr string) {
3940
insts, _, err := DeviceFilter(devices)
40-
if err != nil {
41-
t.Fatalf("%s: %v (devices: %+v)", t.Name(), err, devices)
42-
}
41+
require.NoErrorf(t, err, "%s: (devices: %+v)", t.Name(), devices)
42+
4343
s := insts.String()
4444
t.Logf("%s: devices: %+v\n%s", t.Name(), devices, s)
4545
if expectedStr != "" {
4646
hashed := hash(s, "//")
4747
expectedHashed := hash(expectedStr, "//")
48-
if expectedHashed != hashed {
49-
t.Fatalf("expected:\n%q\ngot\n%q", expectedHashed, hashed)
50-
}
48+
require.Equal(t, expectedHashed, hashed)
5149
}
5250
}
5351

cgroup2/hugetlbv2_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"testing"
2323

2424
"github.com/stretchr/testify/assert"
25+
"github.com/stretchr/testify/require"
2526
)
2627

2728
func TestCgroupv2HugetlbStats(t *testing.T) {
@@ -34,14 +35,14 @@ func TestCgroupv2HugetlbStats(t *testing.T) {
3435
HugeTlb: &hugeTlb,
3536
}
3637
c, err := NewManager(defaultCgroup2Path, groupPath, &res)
37-
if err != nil {
38-
t.Fatal("failed to init new cgroup manager: ", err)
39-
}
40-
defer os.Remove(c.path)
38+
require.NoError(t, err, "failed to init new cgroup manager")
39+
t.Cleanup(func() {
40+
os.Remove(c.path)
41+
})
42+
4143
stats, err := c.Stat()
42-
if err != nil {
43-
t.Fatal("failed to get cgroups stats: ", err)
44-
}
44+
require.NoError(t, err, "failed to get cgroup stats")
45+
4546
for _, entry := range stats.Hugetlb {
4647
if entry.Pagesize == "2MB" {
4748
assert.Equal(t, uint64(1073741824), entry.Max)

cgroup2/iov2_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"fmt"
2121
"os"
2222
"testing"
23+
24+
"github.com/stretchr/testify/require"
2325
)
2426

2527
func TestCgroupv2IOController(t *testing.T) {
@@ -39,10 +41,10 @@ func TestCgroupv2IOController(t *testing.T) {
3941
},
4042
}
4143
c, err := NewManager(defaultCgroup2Path, groupPath, &res)
42-
if err != nil {
43-
t.Fatal("failed to init new cgroup manager: ", err)
44-
}
45-
defer os.Remove(c.path)
44+
require.NoError(t, err, "failed to init new cgroup manager")
45+
t.Cleanup(func() {
46+
os.Remove(c.path)
47+
})
4648

4749
checkFileContent(t, c.path, "io.max", "8:0 rbps=max wbps=max riops=120 wiops=max")
4850
}

cgroup2/manager_test.go

Lines changed: 45 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -35,43 +35,35 @@ func TestEventChanCleanupOnCgroupRemoval(t *testing.T) {
3535

3636
cmd := exec.Command("cat")
3737
stdin, err := cmd.StdinPipe()
38-
if err != nil {
39-
t.Fatalf("Failed to create cat process: %v", err)
40-
}
41-
if err := cmd.Start(); err != nil {
42-
t.Fatalf("Failed to start cat process: %v", err)
43-
}
38+
require.NoError(t, err, "failed to create cat process")
39+
40+
err = cmd.Start()
41+
require.NoError(t, err, "failed to start cat process")
42+
4443
proc := cmd.Process
45-
if proc == nil {
46-
t.Fatal("Process is nil")
47-
}
44+
require.NotNil(t, proc, "process was nil")
4845

4946
group := fmt.Sprintf("testing-watcher-%d.scope", proc.Pid)
5047
c, err := NewSystemd("", group, proc.Pid, &Resources{})
51-
if err != nil {
52-
t.Fatalf("Failed to init new cgroup manager: %v", err)
53-
}
48+
require.NoError(t, err, "failed to init new cgroup manager")
5449

5550
evCh, errCh := c.EventChan()
5651

5752
// give event goroutine a chance to start
5853
time.Sleep(500 * time.Millisecond)
5954

60-
if err := stdin.Close(); err != nil {
61-
t.Fatalf("Failed closing stdin: %v", err)
62-
}
63-
if err := cmd.Wait(); err != nil {
64-
t.Fatalf("Failed waiting for cmd: %v", err)
65-
}
55+
err = stdin.Close()
56+
require.NoError(t, err, "failed closing stdin")
57+
58+
err = cmd.Wait()
59+
require.NoError(t, err, "failed waiting for cmd")
6660

6761
done := false
6862
for !done {
6963
select {
7064
case <-evCh:
7165
case err := <-errCh:
72-
if err != nil {
73-
t.Fatalf("Unexpected error on error channel: %v", err)
74-
}
66+
require.NoError(t, err, "unexpected error on error channel")
7567
done = true
7668
case <-time.After(5 * time.Second):
7769
t.Fatal("Timed out")
@@ -147,35 +139,31 @@ func TestSystemdFullPath(t *testing.T) {
147139
func TestKill(t *testing.T) {
148140
checkCgroupMode(t)
149141
manager, err := NewManager(defaultCgroup2Path, "/test1", ToResources(&specs.LinuxResources{}))
150-
if err != nil {
151-
t.Fatal(err)
152-
}
153-
var procs []*exec.Cmd
154-
for i := 0; i < 5; i++ {
142+
require.NoError(t, err)
143+
144+
var (
145+
procs []*exec.Cmd
146+
numProcs = 5
147+
)
148+
for i := 0; i < numProcs; i++ {
155149
cmd := exec.Command("sleep", "infinity")
156-
if err := cmd.Start(); err != nil {
157-
t.Fatal(err)
158-
}
159-
if cmd.Process == nil {
160-
t.Fatal("Process is nil")
161-
}
162-
if err := manager.AddProc(uint64(cmd.Process.Pid)); err != nil {
163-
t.Fatal(err)
164-
}
150+
err = cmd.Start()
151+
require.NoError(t, err)
152+
require.NotNil(t, cmd.Process, "process is nil")
153+
154+
err = manager.AddProc(uint64(cmd.Process.Pid))
155+
require.NoError(t, err)
156+
165157
procs = append(procs, cmd)
166158
}
167159
// Verify we have 5 pids before beginning Kill below.
168160
pids, err := manager.Procs(true)
169-
if err != nil {
170-
t.Fatal(err)
171-
}
172-
if len(pids) != 5 {
173-
t.Fatalf("expected 5 pids, got %d", len(pids))
174-
}
161+
require.NoError(t, err)
162+
require.Len(t, pids, numProcs, "pid count unexpected")
163+
175164
// Now run kill, and check that nothing is running after.
176-
if err := manager.Kill(); err != nil {
177-
t.Fatal(err)
178-
}
165+
err = manager.Kill()
166+
require.NoError(t, err)
179167

180168
done := make(chan struct{})
181169
go func() {
@@ -195,36 +183,27 @@ func TestKill(t *testing.T) {
195183
func TestMoveTo(t *testing.T) {
196184
checkCgroupMode(t)
197185
manager, err := NewManager(defaultCgroup2Path, "/test1", ToResources(&specs.LinuxResources{}))
198-
if err != nil {
199-
t.Error(err)
200-
return
201-
}
186+
require.NoError(t, err)
187+
202188
proc := os.Getpid()
203-
if err := manager.AddProc(uint64(proc)); err != nil {
204-
t.Error(err)
205-
return
206-
}
189+
err = manager.AddProc(uint64(proc))
190+
require.NoError(t, err)
191+
207192
destination, err := NewManager(defaultCgroup2Path, "/test2", ToResources(&specs.LinuxResources{}))
208-
if err != nil {
209-
t.Error(err)
210-
return
211-
}
212-
if err := manager.MoveTo(destination); err != nil {
213-
t.Error(err)
214-
return
215-
}
193+
require.NoError(t, err)
194+
195+
err = manager.MoveTo(destination)
196+
require.NoError(t, err)
197+
216198
desProcs, err := destination.Procs(true)
217-
if err != nil {
218-
t.Error(err)
219-
return
220-
}
199+
require.NoError(t, err)
200+
221201
desMap := make(map[int]bool)
222202
for _, p := range desProcs {
223203
desMap[int(p)] = true
224204
}
225205
if !desMap[proc] {
226-
t.Errorf("process %v not in destination cgroup", proc)
227-
return
206+
t.Fatalf("process %v not in destination cgroup", proc)
228207
}
229208
}
230209

cgroup2/memoryv2_test.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"testing"
2323

2424
"github.com/stretchr/testify/assert"
25+
"github.com/stretchr/testify/require"
2526
)
2627

2728
func TestCgroupv2MemoryStats(t *testing.T) {
@@ -36,14 +37,13 @@ func TestCgroupv2MemoryStats(t *testing.T) {
3637
},
3738
}
3839
c, err := NewManager(defaultCgroup2Path, groupPath, &res)
39-
if err != nil {
40-
t.Fatal("failed to init new cgroup manager: ", err)
41-
}
42-
defer os.Remove(c.path)
40+
require.NoError(t, err, "failed to init new cgroup manager")
41+
t.Cleanup(func() {
42+
os.Remove(c.path)
43+
})
44+
4345
stats, err := c.Stat()
44-
if err != nil {
45-
t.Fatal("failed to get cgroups stats: ", err)
46-
}
46+
require.NoError(t, err, "failed to get cgroup stats")
4747

4848
assert.Equal(t, uint64(314572800), stats.Memory.SwapLimit)
4949
assert.Equal(t, uint64(629145600), stats.Memory.UsageLimit)
@@ -61,9 +61,8 @@ func TestSystemdCgroupMemoryController(t *testing.T) {
6161
},
6262
}
6363
c, err := NewSystemd("", group, os.Getpid(), &res)
64-
if err != nil {
65-
t.Fatal("failed to init new cgroup systemd manager: ", err)
66-
}
64+
require.NoError(t, err, "failed to init new cgroup systemd manager")
65+
6766
checkFileContent(t, c.path, "memory.min", "16384")
6867
checkFileContent(t, c.path, "memory.max", "629145600")
6968
}

cgroup2/paths_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package cgroup2
1818

1919
import (
2020
"testing"
21+
22+
"github.com/stretchr/testify/assert"
2123
)
2224

2325
func TestVerifyGroupPath(t *testing.T) {
@@ -34,13 +36,9 @@ func TestVerifyGroupPath(t *testing.T) {
3436
for s, valid := range valids {
3537
err := VerifyGroupPath(s)
3638
if valid {
37-
if err != nil {
38-
t.Error(err)
39-
}
39+
assert.NoError(t, err)
4040
} else {
41-
if err == nil {
42-
t.Error("error is expected")
43-
}
41+
assert.Error(t, err)
4442
}
4543
}
4644
}

cgroup2/pidsv2_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"os"
2222
"strconv"
2323
"testing"
24+
25+
"github.com/stretchr/testify/require"
2426
)
2527

2628
func TestCgroupv2PidsStats(t *testing.T) {
@@ -34,10 +36,10 @@ func TestCgroupv2PidsStats(t *testing.T) {
3436
},
3537
}
3638
c, err := NewManager(defaultCgroup2Path, groupPath, &res)
37-
if err != nil {
38-
t.Fatal("failed to init new cgroup manager: ", err)
39-
}
40-
defer os.Remove(c.path)
39+
require.NoError(t, err, "failed to init new cgroup manager")
40+
t.Cleanup(func() {
41+
os.Remove(c.path)
42+
})
4143

4244
checkFileContent(t, c.path, "pids.max", strconv.Itoa(int(max)))
4345
}
@@ -48,8 +50,7 @@ func TestSystemdCgroupPidsController(t *testing.T) {
4850
pid := os.Getpid()
4951
res := Resources{}
5052
c, err := NewSystemd("", group, pid, &res)
51-
if err != nil {
52-
t.Fatal("failed to init new cgroup systemd manager: ", err)
53-
}
53+
require.NoError(t, err, "failed to init new cgroup systemd manager")
54+
5455
checkFileContent(t, c.path, "cgroup.procs", strconv.Itoa(pid))
5556
}

0 commit comments

Comments
 (0)