github.com/alecthomas/golangci-lint@v1.4.2-0.20180609094924-581a3564ff68/pkg/lint/load_test.go (about) 1 package lint 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/golangci/golangci-lint/pkg/config" 8 "github.com/golangci/golangci-lint/pkg/fsutils" 9 "github.com/golangci/golangci-lint/pkg/lint/astcache" 10 "github.com/golangci/golangci-lint/pkg/lint/linter" 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestASTCacheLoading(t *testing.T) { 15 ctx := context.Background() 16 linters := []linter.Config{ 17 linter.NewConfig(nil).WithFullImport(), 18 } 19 20 inputPaths := []string{"./...", "./", "./load.go", "load.go"} 21 for _, inputPath := range inputPaths { 22 paths, err := fsutils.GetPathsForAnalysis(ctx, []string{inputPath}, true, nil) 23 assert.NoError(t, err) 24 assert.NotEmpty(t, paths.Files) 25 26 prog, _, err := loadWholeAppIfNeeded(ctx, linters, &config.Run{ 27 AnalyzeTests: true, 28 }, paths) 29 assert.NoError(t, err) 30 31 astCacheFromProg, err := astcache.LoadFromProgram(prog) 32 assert.NoError(t, err) 33 34 astCacheFromFiles := astcache.LoadFromFiles(paths.Files) 35 36 filesFromProg := astCacheFromProg.GetAllValidFiles() 37 filesFromFiles := astCacheFromFiles.GetAllValidFiles() 38 if len(filesFromProg) != len(filesFromFiles) { 39 t.Logf("files: %s", paths.Files) 40 t.Logf("from prog:") 41 for _, f := range filesFromProg { 42 t.Logf("%+v", *f) 43 } 44 t.Logf("from files:") 45 for _, f := range filesFromFiles { 46 t.Logf("%+v", *f) 47 } 48 t.Fatalf("lengths differ") 49 } 50 51 if len(filesFromProg) != len(paths.Files) { 52 t.Fatalf("filesFromProg differ from path.Files") 53 } 54 } 55 }