...
1
2
3
4
5 package buildssa_test
6
7 import (
8 "fmt"
9 "os"
10 "testing"
11
12 "golang.org/x/tools/go/analysis/analysistest"
13 "golang.org/x/tools/go/analysis/passes/buildssa"
14 )
15
16 func Test(t *testing.T) {
17 testdata := analysistest.TestData()
18 result := analysistest.Run(t, testdata, buildssa.Analyzer, "a")[0].Result
19
20 ssainfo := result.(*buildssa.SSA)
21 got := fmt.Sprint(ssainfo.SrcFuncs)
22 want := `[a.Fib (a.T).fib a._ a._]`
23 if got != want {
24 t.Errorf("SSA.SrcFuncs = %s, want %s", got, want)
25 for _, f := range ssainfo.SrcFuncs {
26 f.WriteTo(os.Stderr)
27 }
28 }
29 }
30
31 func TestGenericDecls(t *testing.T) {
32 testdata := analysistest.TestData()
33 result := analysistest.Run(t, testdata, buildssa.Analyzer, "b")[0].Result
34
35 ssainfo := result.(*buildssa.SSA)
36 got := fmt.Sprint(ssainfo.SrcFuncs)
37 want := `[(*b.Pointer[T]).Load b.Load b.LoadPointer]`
38 if got != want {
39 t.Errorf("SSA.SrcFuncs = %s, want %s", got, want)
40 for _, f := range ssainfo.SrcFuncs {
41 f.WriteTo(os.Stderr)
42 }
43 }
44 }
45
46 func TestImporting(t *testing.T) {
47 testdata := analysistest.TestData()
48 result := analysistest.Run(t, testdata, buildssa.Analyzer, "c")[0].Result
49
50 ssainfo := result.(*buildssa.SSA)
51 got := fmt.Sprint(ssainfo.SrcFuncs)
52 want := `[c.A c.B]`
53 if got != want {
54 t.Errorf("SSA.SrcFuncs = %s, want %s", got, want)
55 for _, f := range ssainfo.SrcFuncs {
56 f.WriteTo(os.Stderr)
57 }
58 }
59 }
60
View as plain text