blob: 92835ec6e36bd8a77b9bd3cd71dc72475aab1c1f [file] [log] [blame]
# Copyright 2019 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
run:
deadline: 8m
skip-dirs:
- pkg/kd
- tools/syz-trace2syz
# Autogenerated files take too much time and memory to load,
# even if we skip them with skip-dirs.
# So we define this tag and use it in the autogenerated files.
build-tags:
- codeanalysis
output:
print-linter-name: false
linters:
enable:
- lll
- vet
- gofmt
- revive
- unconvert
- goconst
- unused
- gosimple
- misspell
- gocyclo
- vetshadow
- megacheck
- stylecheck
- govet
- whitespace
- nestif
- goprintffuncname
- godot
- gocognit
- funlen
- dupl
- staticcheck
- syz-linter
- errorlint
disable:
- bodyclose
- depguard
- dogsled
- gochecknoglobals
- gochecknoinits
- godox
- goimports
- gomnd
- gomodguard
- gosec
- maligned
- rowserrcheck
- testpackage
- typecheck
- ineffassign
# errcheck would be good to enable, but we need to fix existing warnings first.
- errcheck
- interfacer
- unparam
- nakedret
- prealloc
- scopelint
- gocritic
- wsl
linters-settings:
revive:
rules:
- name: package-comments
disabled: true
lll:
line-length: 120
gocyclo:
# TODO: consider reducing this value.
min-complexity: 24
dupl:
threshold: 60
goconst:
min-len: 3
min-occurrences: 3
ignore-tests: true # re-enable once goconst 1.7.0+ merged into golangci-lint
ignore-strings: '.html'
nestif:
# TODO: consider reducing this value.
min-complexity: 12
godot:
scope: toplevel
gocognit:
# TODO: consider reducing this value.
min-complexity: 70
funlen:
# TODO: consider reducing these value.
lines: 140
statements: 80
custom:
syz-linter:
path: bin/syz-linter.so
errorlint:
comparison: false # we want to use "err == iterator.Done"
issues:
exclude-use-default: false
max-same-issues: 0
exclude:
- "exported .* should have comment"
- "comment on .* should be of the form"
- "at least one file in a package should have a package comment"
# This check gives false positives related to the standard log.Fatalf
# (which is strange, standard log package should be supported).#
- "SA5011: possible nil pointer dereference"
exclude-rules:
- path: (pkg/csource/generated.go|pkg/build/linux_generated.go)
linters:
- lll
- path: (sys/.*/init.*|sys/targets/common.go)
text: "don't use ALL_CAPS in Go names|should not use ALL_CAPS in Go names"
- path: (prog/.*)
text: "methods on the same type should have the same receiver name"
- path: (dashboard/app/.*_test\.go)
linters:
- dupl
- path: (prog/.*_test\.go)
linters:
- goconst
- path: (.*_test\.go)
text: "Function '.*' is too long"