golang.org/x/tools@v0.21.0/go/analysis/passes/ctrlflow/ctrlflow_test.go (about) 1 // Copyright 2018 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package ctrlflow_test 6 7 import ( 8 "go/ast" 9 "testing" 10 11 "golang.org/x/tools/go/analysis/analysistest" 12 "golang.org/x/tools/go/analysis/passes/ctrlflow" 13 ) 14 15 func Test(t *testing.T) { 16 testdata := analysistest.TestData() 17 results := analysistest.Run(t, testdata, ctrlflow.Analyzer, "a", "typeparams") 18 19 // Perform a minimal smoke test on 20 // the result (CFG) computed by ctrlflow. 21 for _, result := range results { 22 cfgs := result.Result.(*ctrlflow.CFGs) 23 24 for _, decl := range result.Pass.Files[0].Decls { 25 if decl, ok := decl.(*ast.FuncDecl); ok && decl.Body != nil { 26 if cfgs.FuncDecl(decl) == nil { 27 t.Errorf("%s: no CFG for func %s", 28 result.Pass.Fset.Position(decl.Pos()), decl.Name.Name) 29 } 30 } 31 } 32 } 33 }