github.com/azazeal/revive@v1.0.9/test/golint_test.go (about) 1 package test 2 3 import ( 4 "flag" 5 "io/ioutil" 6 "path" 7 "regexp" 8 "testing" 9 10 "github.com/azazeal/revive/lint" 11 "github.com/azazeal/revive/rule" 12 ) 13 14 var lintMatch = flag.String("lint.match", "", "restrict fixtures matches to this pattern") 15 16 var rules = []lint.Rule{ 17 &rule.VarDeclarationsRule{}, 18 &rule.PackageCommentsRule{}, 19 &rule.DotImportsRule{}, 20 &rule.BlankImportsRule{}, 21 &rule.ExportedRule{}, 22 &rule.VarNamingRule{}, 23 &rule.IndentErrorFlowRule{}, 24 &rule.IfReturnRule{}, 25 &rule.RangeRule{}, 26 &rule.ErrorfRule{}, 27 &rule.ErrorNamingRule{}, 28 &rule.ErrorStringsRule{}, 29 &rule.ReceiverNamingRule{}, 30 &rule.IncrementDecrementRule{}, 31 &rule.ErrorReturnRule{}, 32 &rule.UnexportedReturnRule{}, 33 &rule.TimeNamingRule{}, 34 &rule.ContextKeysType{}, 35 &rule.ContextAsArgumentRule{}, 36 } 37 38 func TestAll(t *testing.T) { 39 baseDir := "../testdata/golint/" 40 41 rx, err := regexp.Compile(*lintMatch) 42 if err != nil { 43 t.Fatalf("Bad -lint.match value %q: %v", *lintMatch, err) 44 } 45 46 fis, err := ioutil.ReadDir(baseDir) 47 if err != nil { 48 t.Fatalf("ioutil.ReadDir: %v", err) 49 } 50 if len(fis) == 0 { 51 t.Fatalf("no files in %v", baseDir) 52 } 53 for _, fi := range fis { 54 if !rx.MatchString(fi.Name()) { 55 continue 56 } 57 t.Run(fi.Name(), func(t *testing.T) { 58 src, err := ioutil.ReadFile(path.Join(baseDir, fi.Name())) 59 if err != nil { 60 t.Fatalf("Failed reading %s: %v", fi.Name(), err) 61 } 62 63 if err := assertFailures(t, baseDir, fi, src, rules, map[string]lint.RuleConfig{}); err != nil { 64 t.Errorf("Linting %s: %v", fi.Name(), err) 65 } 66 }) 67 } 68 }