Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / internal / lsp / cmd / test / semanticdriver.go
1 // Copyright 2020 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 cmdtest
6
7 import (
8         "strings"
9         "testing"
10
11         "golang.org/x/tools/internal/span"
12 )
13
14 func (r *runner) SemanticTokens(t *testing.T, spn span.Span) {
15         uri := spn.URI()
16         filename := uri.Filename()
17         got, stderr := r.NormalizeGoplsCmd(t, "semtok", filename)
18         if stderr != "" {
19                 t.Fatalf("%s: %q", filename, stderr)
20         }
21         want := string(r.data.Golden("semantic", filename, func() ([]byte, error) {
22                 return []byte(got), nil
23         }))
24         if want != got {
25                 lwant := strings.Split(want, "\n")
26                 lgot := strings.Split(got, "\n")
27                 t.Errorf("want(%d-%d) != got(%d-%d) for %s", len(want), len(lwant), len(got), len(lgot), r.Normalize(filename))
28                 for i := 0; i < len(lwant) && i < len(lgot); i++ {
29                         if lwant[i] != lgot[i] {
30                                 t.Errorf("line %d:\nwant%q\ngot %q\n", i, lwant[i], lgot[i])
31                         }
32                 }
33         }
34 }