Merge pull request #48 from srenatus/sr/auto-detect-more-generated-code
change isGenerated heuristic to match more generated files
This commit is contained in:
commit
9c048da092
@ -47,21 +47,26 @@ func (p *Nolint) Process(issues []result.Issue) ([]result.Issue, error) {
|
||||
}
|
||||
|
||||
var (
|
||||
genHdr = []byte("// Code generated ")
|
||||
genFtr = []byte(" DO NOT EDIT.")
|
||||
genHdr = []byte("// Code generated")
|
||||
genFtr = []byte("DO NOT EDIT")
|
||||
)
|
||||
|
||||
// isGenerated reports whether the source file is generated code
|
||||
// according the rules from https://golang.org/s/generatedcode.
|
||||
// isGenerated reports whether the source file is generated code.
|
||||
// Using a bit laxer rules than https://golang.org/s/generatedcode to
|
||||
// match more generated code.
|
||||
func isGenerated(src []byte) bool {
|
||||
sc := bufio.NewScanner(bytes.NewReader(src))
|
||||
var hdr, ftr bool
|
||||
for sc.Scan() {
|
||||
b := sc.Bytes()
|
||||
if bytes.HasPrefix(b, genHdr) && bytes.HasSuffix(b, genFtr) && len(b) >= len(genHdr)+len(genFtr) {
|
||||
return true
|
||||
if bytes.HasPrefix(b, genHdr) {
|
||||
hdr = true
|
||||
}
|
||||
if bytes.Contains(b, genFtr) {
|
||||
ftr = true
|
||||
}
|
||||
}
|
||||
return false
|
||||
return hdr && ftr
|
||||
}
|
||||
|
||||
func (p *Nolint) getOrCreateFileData(i *result.Issue) (*fileData, error) {
|
||||
|
@ -37,13 +37,22 @@ func TestNolint(t *testing.T) {
|
||||
processAssertSame(t, p, newNolintFileIssue(1, "golint")) // no directive
|
||||
}
|
||||
|
||||
func TestNoIssuesInAutogeneratedFile(t *testing.T) {
|
||||
i := result.Issue{
|
||||
Pos: token.Position{
|
||||
Filename: filepath.Join("testdata", "nolint_autogenerated.go"),
|
||||
Line: 4,
|
||||
},
|
||||
func TestNoIssuesInAutogeneratedFiles(t *testing.T) {
|
||||
files := []string{
|
||||
"nolint_autogenerated.go",
|
||||
"nolint_autogenerated_alt_hdr.go",
|
||||
"nolint_autogenerated_alt_hdr2.go",
|
||||
}
|
||||
for _, file := range files {
|
||||
t.Run(file, func(t *testing.T) {
|
||||
i := result.Issue{
|
||||
Pos: token.Position{
|
||||
Filename: filepath.Join("testdata", file),
|
||||
Line: 4,
|
||||
},
|
||||
}
|
||||
p := NewNolint(token.NewFileSet())
|
||||
processAssertEmpty(t, p, i)
|
||||
})
|
||||
}
|
||||
p := NewNolint(token.NewFileSet())
|
||||
processAssertEmpty(t, p, i)
|
||||
}
|
||||
|
6
pkg/result/processors/testdata/nolint_autogenerated_alt_hdr.go
vendored
Normal file
6
pkg/result/processors/testdata/nolint_autogenerated_alt_hdr.go
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
// Code generated by protoc-gen-foo
|
||||
// source: bar.proto
|
||||
// DO NOT EDIT!!!
|
||||
package testdata
|
||||
|
||||
var v int
|
8
pkg/result/processors/testdata/nolint_autogenerated_alt_hdr2.go
vendored
Normal file
8
pkg/result/processors/testdata/nolint_autogenerated_alt_hdr2.go
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
// Code generated by go-bindata.
|
||||
// sources:
|
||||
// bar.baz
|
||||
// x/y.z
|
||||
// DO NOT EDIT!
|
||||
package testdata
|
||||
|
||||
var v int
|
Loading…
x
Reference in New Issue
Block a user