.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.1.1-0.20210319172145-bda8f5cee399 / go / analysis / passes / ctrlflow / ctrlflow_test.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.1.1-0.20210319172145-bda8f5cee399/go/analysis/passes/ctrlflow/ctrlflow_test.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.1.1-0.20210319172145-bda8f5cee399/go/analysis/passes/ctrlflow/ctrlflow_test.go
new file mode 100644 (file)
index 0000000..0aae7cb
--- /dev/null
@@ -0,0 +1,35 @@
+// 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)
+                               }
+                       }
+               }
+       }
+}