mirror of
https://github.com/golang/go
synced 2024-11-18 18:24:48 -07:00
internal/lsp: make all the tests work on 1.10
Also improve the error messages from a failing diagnostic tests so you can read them. Change-Id: I3554ce5a029de22a55a9636ed26ba02d95fc3246 Reviewed-on: https://go-review.googlesource.com/c/150042 Run-TryBot: Ian Cottrell <iancottrell@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rebecca Stambler <rstambler@golang.org>
This commit is contained in:
parent
31e4346e36
commit
68f7e630ce
@ -7,6 +7,7 @@ package lsp
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"go/token"
|
"go/token"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -184,7 +185,16 @@ func testDiagnostics(t *testing.T, v *source.View, pkgs []*packages.Package, wan
|
|||||||
})
|
})
|
||||||
want := wants[filename]
|
want := wants[filename]
|
||||||
if equal := reflect.DeepEqual(want, got); !equal {
|
if equal := reflect.DeepEqual(want, got); !equal {
|
||||||
t.Errorf("diagnostics failed for %s: (expected: %v), (got: %v)", filepath.Base(filename), want, got)
|
msg := &bytes.Buffer{}
|
||||||
|
fmt.Fprintf(msg, "diagnostics failed for %s: expected:\n", filepath.Base(filename))
|
||||||
|
for _, d := range want {
|
||||||
|
fmt.Fprintf(msg, " %v\n", d)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(msg, "got:\n")
|
||||||
|
for _, d := range got {
|
||||||
|
fmt.Fprintf(msg, " %v\n", d)
|
||||||
|
}
|
||||||
|
t.Error(msg.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,3 +37,20 @@ func (r Range) Format(f fmt.State, c rune) {
|
|||||||
func (l Location) Format(f fmt.State, c rune) {
|
func (l Location) Format(f fmt.State, c rune) {
|
||||||
fmt.Fprintf(f, "%s:%v", l.URI, l.Range)
|
fmt.Fprintf(f, "%s:%v", l.URI, l.Range)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s DiagnosticSeverity) Format(f fmt.State, c rune) {
|
||||||
|
switch s {
|
||||||
|
case SeverityError:
|
||||||
|
fmt.Fprint(f, "Error")
|
||||||
|
case SeverityWarning:
|
||||||
|
fmt.Fprint(f, "Warning")
|
||||||
|
case SeverityInformation:
|
||||||
|
fmt.Fprint(f, "Information")
|
||||||
|
case SeverityHint:
|
||||||
|
fmt.Fprint(f, "Hint")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d Diagnostic) Format(f fmt.State, c rune) {
|
||||||
|
fmt.Fprintf(f, "%v:%v from %v at %v: %v", d.Severity, d.Code, d.Source, d.Range, d.Message)
|
||||||
|
}
|
||||||
|
5
internal/lsp/testdata/bad/bad.go
vendored
5
internal/lsp/testdata/bad/bad.go
vendored
@ -1,5 +1,3 @@
|
|||||||
// +build go1.11
|
|
||||||
|
|
||||||
package bad
|
package bad
|
||||||
|
|
||||||
func stuff() {
|
func stuff() {
|
||||||
@ -14,8 +12,7 @@ type bob struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func _() {
|
func _() {
|
||||||
var q int
|
|
||||||
_ = &bob{
|
_ = &bob{
|
||||||
f: q, //@diag("f", "unknown field f in struct literal")
|
f: 0, //@diag("f", "unknown field f in struct literal")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
internal/lsp/testdata/bad/bad_util.go
vendored
2
internal/lsp/testdata/bad/bad_util.go
vendored
@ -1,5 +1,3 @@
|
|||||||
// +build go1.11
|
|
||||||
|
|
||||||
package bad
|
package bad
|
||||||
|
|
||||||
func random2(y int) int {
|
func random2(y int) int {
|
||||||
|
11
internal/lsp/testdata/noparse_format/noparse_format.1_10.go.in
vendored
Normal file
11
internal/lsp/testdata/noparse_format/noparse_format.1_10.go.in
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// +build !go1.11
|
||||||
|
|
||||||
|
// This file does not actually test anything
|
||||||
|
// on 1.10 the errors are different
|
||||||
|
package noparse_format
|
||||||
|
|
||||||
|
func what() {
|
||||||
|
// we need a diagnostic below so we have the same count as the main file
|
||||||
|
var b int //@diag("b", "b declared but not used")
|
||||||
|
if true {}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user