// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package ctrlflow_test import ( "go/ast" "testing" "golang.org/x/tools/go/analysis/analysistest" "golang.org/x/tools/go/analysis/passes/ctrlflow" ) func Test(t *testing.T) { testdata := analysistest.TestData() // load testdata/src/a/a.go results := analysistest.Run(t, testdata, ctrlflow.Analyzer, "a") // Perform a minimal smoke test on // the result (CFG) computed by ctrlflow. for _, result := range results { cfgs := result.Result.(*ctrlflow.CFGs) for _, decl := range result.Pass.Files[0].Decls { if decl, ok := decl.(*ast.FuncDecl); ok && decl.Body != nil { if cfgs.FuncDecl(decl) == nil { t.Errorf("%s: no CFG for func %s", result.Pass.Fset.Position(decl.Pos()), decl.Name.Name) } } } } }