From b1247d2d0d51108c910a73891ff3116e5f032ab1 Mon Sep 17 00:00:00 2001 From: "Kali Kaneko (leap communications)" Date: Sat, 12 Jan 2019 18:39:45 +0100 Subject: [pkg] all your deps are vendored to us --- .../x/tools/go/ssa/ssautil/switch_test.go | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 vendor/golang.org/x/tools/go/ssa/ssautil/switch_test.go (limited to 'vendor/golang.org/x/tools/go/ssa/ssautil/switch_test.go') diff --git a/vendor/golang.org/x/tools/go/ssa/ssautil/switch_test.go b/vendor/golang.org/x/tools/go/ssa/ssautil/switch_test.go new file mode 100644 index 0000000..a47dbef --- /dev/null +++ b/vendor/golang.org/x/tools/go/ssa/ssautil/switch_test.go @@ -0,0 +1,74 @@ +// Copyright 2013 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. + +// No testdata on Android. + +// +build !android + +package ssautil_test + +import ( + "go/parser" + "strings" + "testing" + + "golang.org/x/tools/go/loader" + "golang.org/x/tools/go/ssa" + "golang.org/x/tools/go/ssa/ssautil" +) + +func TestSwitches(t *testing.T) { + conf := loader.Config{ParserMode: parser.ParseComments} + f, err := conf.ParseFile("testdata/switches.go", nil) + if err != nil { + t.Error(err) + return + } + + conf.CreateFromFiles("main", f) + iprog, err := conf.Load() + if err != nil { + t.Error(err) + return + } + + prog := ssautil.CreateProgram(iprog, 0) + mainPkg := prog.Package(iprog.Created[0].Pkg) + mainPkg.Build() + + for _, mem := range mainPkg.Members { + if fn, ok := mem.(*ssa.Function); ok { + if fn.Synthetic != "" { + continue // e.g. init() + } + // Each (multi-line) "switch" comment within + // this function must match the printed form + // of a ConstSwitch. + var wantSwitches []string + for _, c := range f.Comments { + if fn.Syntax().Pos() <= c.Pos() && c.Pos() < fn.Syntax().End() { + text := strings.TrimSpace(c.Text()) + if strings.HasPrefix(text, "switch ") { + wantSwitches = append(wantSwitches, text) + } + } + } + + switches := ssautil.Switches(fn) + if len(switches) != len(wantSwitches) { + t.Errorf("in %s, found %d switches, want %d", fn, len(switches), len(wantSwitches)) + } + for i, sw := range switches { + got := sw.String() + if i >= len(wantSwitches) { + continue + } + want := wantSwitches[i] + if got != want { + t.Errorf("in %s, found switch %d: got <<%s>>, want <<%s>>", fn, i, got, want) + } + } + } + } +} -- cgit v1.2.3