Skip to content

Commit 15b69b8

Browse files
authored
Merge pull request #272 from austinvazquez/add-golangci-lint
Add Golangci-lint to CI
2 parents eeed8ff + 7110818 commit 15b69b8

7 files changed

Lines changed: 147 additions & 26 deletions

File tree

.github/workflows/ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,34 @@ jobs:
4747
with:
4848
working-directory: src/github.com/containerd/cgroups
4949

50+
lint:
51+
name: Lint
52+
timeout-minutes: 10
53+
needs: [project]
54+
runs-on: ubuntu-22.04
55+
56+
strategy:
57+
matrix:
58+
go-version: [1.19.x, 1.20.x]
59+
60+
steps:
61+
- name: Install Go
62+
uses: actions/setup-go@v3
63+
with:
64+
go-version: ${{ matrix.go }}
65+
66+
- name: Checkout cgroups
67+
uses: actions/checkout@v3
68+
with:
69+
path: src/github.com/containerd/cgroups
70+
71+
- name: golangci-lint
72+
uses: golangci/golangci-lint-action@v3
73+
with:
74+
version: v1.51.1
75+
args: --verbose
76+
working-directory: src/github.com/containerd/cgroups
77+
5078
test:
5179
name: Test cgroups
5280
timeout-minutes: 15

cgroup1/cgroup_test.go

Lines changed: 85 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ func TestCreate(t *testing.T) {
3333
if err != nil {
3434
t.Fatal(err)
3535
}
36-
defer mock.delete()
36+
defer func() {
37+
if err := mock.delete(); err != nil {
38+
t.Errorf("failed delete: %v", err)
39+
}
40+
}()
3741
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
3842
if err != nil {
3943
t.Error(err)
@@ -60,7 +64,11 @@ func TestStat(t *testing.T) {
6064
if err != nil {
6165
t.Fatal(err)
6266
}
63-
defer mock.delete()
67+
defer func() {
68+
if err := mock.delete(); err != nil {
69+
t.Errorf("failed delete: %v", err)
70+
}
71+
}()
6472
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
6573
if err != nil {
6674
t.Error(err)
@@ -82,7 +90,11 @@ func TestAdd(t *testing.T) {
8290
if err != nil {
8391
t.Fatal(err)
8492
}
85-
defer mock.delete()
93+
defer func() {
94+
if err := mock.delete(); err != nil {
95+
t.Errorf("failed delete: %v", err)
96+
}
97+
}()
8698
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
8799
if err != nil {
88100
t.Error(err)
@@ -105,7 +117,11 @@ func TestAddFilteredSubsystems(t *testing.T) {
105117
if err != nil {
106118
t.Fatal(err)
107119
}
108-
defer mock.delete()
120+
defer func() {
121+
if err := mock.delete(); err != nil {
122+
t.Errorf("failed delete: %v", err)
123+
}
124+
}()
109125
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
110126
if err != nil {
111127
t.Error(err)
@@ -162,7 +178,11 @@ func TestAddTask(t *testing.T) {
162178
if err != nil {
163179
t.Fatal(err)
164180
}
165-
defer mock.delete()
181+
defer func() {
182+
if err := mock.delete(); err != nil {
183+
t.Errorf("failed delete: %v", err)
184+
}
185+
}()
166186
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
167187
if err != nil {
168188
t.Error(err)
@@ -185,7 +205,11 @@ func TestAddTaskFilteredSubsystems(t *testing.T) {
185205
if err != nil {
186206
t.Fatal(err)
187207
}
188-
defer mock.delete()
208+
defer func() {
209+
if err := mock.delete(); err != nil {
210+
t.Errorf("failed delete: %v", err)
211+
}
212+
}()
189213
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
190214
if err != nil {
191215
t.Error(err)
@@ -227,7 +251,11 @@ func TestListPids(t *testing.T) {
227251
if err != nil {
228252
t.Fatal(err)
229253
}
230-
defer mock.delete()
254+
defer func() {
255+
if err := mock.delete(); err != nil {
256+
t.Errorf("failed delete: %v", err)
257+
}
258+
}()
231259
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
232260
if err != nil {
233261
t.Error(err)
@@ -262,7 +290,11 @@ func TestListTasksPids(t *testing.T) {
262290
if err != nil {
263291
t.Fatal(err)
264292
}
265-
defer mock.delete()
293+
defer func() {
294+
if err := mock.delete(); err != nil {
295+
t.Errorf("failed delete: %v", err)
296+
}
297+
}()
266298
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
267299
if err != nil {
268300
t.Error(err)
@@ -349,12 +381,21 @@ func TestLoad(t *testing.T) {
349381
if err != nil {
350382
t.Fatal(err)
351383
}
352-
defer mock.delete()
384+
defer func() {
385+
if err := mock.delete(); err != nil {
386+
t.Errorf("failed delete: %v", err)
387+
}
388+
}()
353389
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
354390
if err != nil {
355391
t.Error(err)
356392
return
357393
}
394+
defer func() {
395+
if err := control.Delete(); err != nil {
396+
t.Errorf("failed to delete cgroup: %v", err)
397+
}
398+
}()
358399
if control, err = Load(StaticPath("test"), WithHiearchy(mock.hierarchy)); err != nil {
359400
t.Error(err)
360401
return
@@ -370,7 +411,11 @@ func TestLoadWithMissingSubsystems(t *testing.T) {
370411
if err != nil {
371412
t.Fatal(err)
372413
}
373-
defer mock.delete()
414+
defer func() {
415+
if err := mock.delete(); err != nil {
416+
t.Errorf("failed delete: %v", err)
417+
}
418+
}()
374419
subsystems, err := mock.hierarchy()
375420
if err != nil {
376421
t.Error(err)
@@ -404,7 +449,11 @@ func TestDelete(t *testing.T) {
404449
if err != nil {
405450
t.Fatal(err)
406451
}
407-
defer mock.delete()
452+
defer func() {
453+
if err := mock.delete(); err != nil {
454+
t.Errorf("failed delete: %v", err)
455+
}
456+
}()
408457
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
409458
if err != nil {
410459
t.Error(err)
@@ -420,7 +469,11 @@ func TestCreateSubCgroup(t *testing.T) {
420469
if err != nil {
421470
t.Fatal(err)
422471
}
423-
defer mock.delete()
472+
defer func() {
473+
if err := mock.delete(); err != nil {
474+
t.Errorf("failed delete: %v", err)
475+
}
476+
}()
424477
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
425478
if err != nil {
426479
t.Error(err)
@@ -458,7 +511,11 @@ func TestFreezeThaw(t *testing.T) {
458511
if err != nil {
459512
t.Fatal(err)
460513
}
461-
defer mock.delete()
514+
defer func() {
515+
if err := mock.delete(); err != nil {
516+
t.Errorf("failed delete: %v", err)
517+
}
518+
}()
462519
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
463520
if err != nil {
464521
t.Error(err)
@@ -487,7 +544,11 @@ func TestSubsystems(t *testing.T) {
487544
if err != nil {
488545
t.Fatal(err)
489546
}
490-
defer mock.delete()
547+
defer func() {
548+
if err := mock.delete(); err != nil {
549+
t.Errorf("failed delete: %v", err)
550+
}
551+
}()
491552
control, err := New(StaticPath("test"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
492553
if err != nil {
493554
t.Error(err)
@@ -510,13 +571,21 @@ func TestCpusetParent(t *testing.T) {
510571
if err != nil {
511572
t.Fatal(err)
512573
}
513-
defer mock.delete()
574+
defer func() {
575+
if err := mock.delete(); err != nil {
576+
t.Errorf("failed delete: %v", err)
577+
}
578+
}()
514579
control, err := New(StaticPath("/parent/child"), &specs.LinuxResources{}, WithHiearchy(mock.hierarchy))
515580
if err != nil {
516581
t.Error(err)
517582
return
518583
}
519-
defer control.Delete()
584+
defer func() {
585+
if err := control.Delete(); err != nil {
586+
t.Errorf("failed to delete cgroup: %v", err)
587+
}
588+
}()
520589
for _, file := range []string{
521590
"parent/cpuset.cpus",
522591
"parent/cpuset.mems",

cgroup1/cpuacct_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ func TestGetUsage(t *testing.T) {
3232
if err != nil {
3333
t.Fatal(err)
3434
}
35-
defer mock.delete()
35+
defer func() {
36+
if err := mock.delete(); err != nil {
37+
t.Errorf("failed delete: %v", err)
38+
}
39+
}()
3640
cpuacct := NewCpuacct(mock.root)
3741
if cpuacct == nil {
3842
t.Fatal("cpuacct is nil")

cgroup1/pids_test.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ func TestPids(t *testing.T) {
3232
if err != nil {
3333
t.Fatal(err)
3434
}
35-
defer mock.delete()
35+
defer func() {
36+
if err := mock.delete(); err != nil {
37+
t.Errorf("failed delete: %v", err)
38+
}
39+
}()
3640
pids := NewPids(mock.root)
3741
if pids == nil {
3842
t.Fatal("pids is nil")
@@ -89,7 +93,11 @@ func TestPidsMissingCurrent(t *testing.T) {
8993
if err != nil {
9094
t.Fatal(err)
9195
}
92-
defer mock.delete()
96+
defer func() {
97+
if err := mock.delete(); err != nil {
98+
t.Errorf("failed delete: %v", err)
99+
}
100+
}()
93101
pids := NewPids(mock.root)
94102
if pids == nil {
95103
t.Fatal("pids is nil")
@@ -106,7 +114,11 @@ func TestPidsMissingMax(t *testing.T) {
106114
if err != nil {
107115
t.Fatal(err)
108116
}
109-
defer mock.delete()
117+
defer func() {
118+
if err := mock.delete(); err != nil {
119+
t.Errorf("failed delete: %v", err)
120+
}
121+
}()
110122
pids := NewPids(mock.root)
111123
if pids == nil {
112124
t.Fatal("pids is nil")
@@ -135,7 +147,11 @@ func TestPidsOverflowMax(t *testing.T) {
135147
if err != nil {
136148
t.Fatal(err)
137149
}
138-
defer mock.delete()
150+
defer func() {
151+
if err := mock.delete(); err != nil {
152+
t.Errorf("failed delete: %v", err)
153+
}
154+
}()
139155
pids := NewPids(mock.root)
140156
if pids == nil {
141157
t.Fatal("pids is nil")

cgroup1/systemd.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929

3030
const (
3131
SystemdDbus Name = "systemd"
32-
defaultSlice = "system.slice"
32+
defaultSlice Name = "system.slice"
3333
)
3434

3535
var (
@@ -56,7 +56,7 @@ func Systemd() ([]Subsystem, error) {
5656

5757
func Slice(slice, name string) Path {
5858
if slice == "" {
59-
slice = defaultSlice
59+
slice = string(defaultSlice)
6060
}
6161
return func(subsystem Name) (string, error) {
6262
return filepath.Join(slice, name), nil
@@ -70,7 +70,6 @@ func NewSystemd(root string) (*SystemdController, error) {
7070
}
7171

7272
type SystemdController struct {
73-
mu sync.Mutex
7473
root string
7574
}
7675

cgroup2/devicefilter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func (p *program) appendDevice(dev specs.LinuxDeviceCgroup) error {
167167
}
168168
p.insts = append(p.insts, acceptBlock(dev.Allow)...)
169169
// set blockSym to the first instruction we added in this iteration
170-
p.insts[prevBlockLastIdx+1] = p.insts[prevBlockLastIdx+1].Sym(blockSym)
170+
p.insts[prevBlockLastIdx+1] = p.insts[prevBlockLastIdx+1].WithSymbol(blockSym)
171171
p.blockID++
172172
return nil
173173
}
@@ -180,7 +180,7 @@ func (p *program) finalize() (asm.Instructions, error) {
180180
blockSym := fmt.Sprintf("block-%d", p.blockID)
181181
p.insts = append(p.insts,
182182
// R0 <- 0
183-
asm.Mov.Imm32(asm.R0, 0).Sym(blockSym),
183+
asm.Mov.Imm32(asm.R0, 0).WithSymbol(blockSym),
184184
asm.Return(),
185185
)
186186
p.blockID = -1

cgroup2/manager_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
"go.uber.org/goleak"
3030
)
3131

32+
//nolint:staticcheck // Staticcheck false positives for nil pointer deference after t.Fatal
3233
func TestEventChanCleanupOnCgroupRemoval(t *testing.T) {
3334
checkCgroupMode(t)
3435

@@ -213,6 +214,10 @@ func TestMoveTo(t *testing.T) {
213214
return
214215
}
215216
desProcs, err := destination.Procs(true)
217+
if err != nil {
218+
t.Error(err)
219+
return
220+
}
216221
desMap := make(map[int]bool)
217222
for _, p := range desProcs {
218223
desMap[int(p)] = true

0 commit comments

Comments
 (0)