Skip to content

Commit

Permalink
gopls/internal/regtest/marker: porting remaining suggestedfix tests
Browse files Browse the repository at this point in the history
For golang/go#54845

Change-Id: Ica94e365adc2936016d55bdf11b62391e2b47b92
Reviewed-on: https://go-review.googlesource.com/c/tools/+/540915
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
  • Loading branch information
findleyr committed Nov 9, 2023
1 parent adf124e commit efa2492
Show file tree
Hide file tree
Showing 30 changed files with 199 additions and 402 deletions.
121 changes: 0 additions & 121 deletions gopls/internal/lsp/lsp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -247,104 +247,6 @@ func (r *runner) SemanticTokens(t *testing.T, spn span.Span) {
}
}

func (r *runner) SuggestedFix(t *testing.T, spn span.Span, actionKinds []tests.SuggestedFix, expectedActions int) {
uri := spn.URI()
view, err := r.server.session.ViewOf(uri)
if err != nil {
t.Fatal(err)
}

m, err := r.data.Mapper(uri)
if err != nil {
t.Fatal(err)
}
rng, err := m.SpanRange(spn)
if err != nil {
t.Fatal(err)
}
// Get the diagnostics for this view if we have not done it before.
r.collectDiagnostics(view)
var diagnostics []protocol.Diagnostic
for _, d := range r.diagnostics[uri] {
// Compare the start positions rather than the entire range because
// some diagnostics have a range with the same start and end position (8:1-8:1).
// The current marker functionality prevents us from having a range of 0 length.
if protocol.ComparePosition(d.Range.Start, rng.Start) == 0 {
diagnostics = append(diagnostics, toProtocolDiagnostics([]*source.Diagnostic{d})...)
break
}
}
var codeActionKinds []protocol.CodeActionKind
for _, k := range actionKinds {
codeActionKinds = append(codeActionKinds, protocol.CodeActionKind(k.ActionKind))
}
allActions, err := r.server.CodeAction(r.ctx, &protocol.CodeActionParams{
TextDocument: protocol.TextDocumentIdentifier{
URI: protocol.URIFromSpanURI(uri),
},
Range: rng,
Context: protocol.CodeActionContext{
Only: codeActionKinds,
Diagnostics: diagnostics,
},
})
if err != nil {
t.Fatalf("CodeAction %s failed: %v", spn, err)
}
var actions []protocol.CodeAction
for _, action := range allActions {
for _, fix := range actionKinds {
if strings.Contains(action.Title, fix.Title) {
actions = append(actions, action)
break
}
}

}
if len(actions) != expectedActions {
var summaries []string
for _, a := range actions {
summaries = append(summaries, fmt.Sprintf("%q (%s)", a.Title, a.Kind))
}
t.Fatalf("CodeAction(...): got %d code actions (%v), want %d", len(actions), summaries, expectedActions)
}
action := actions[0]
var match bool
for _, k := range codeActionKinds {
if action.Kind == k {
match = true
break
}
}
if !match {
t.Fatalf("unexpected kind for code action %s, got %v, want one of %v", action.Title, action.Kind, codeActionKinds)
}
var res map[span.URI][]byte
if cmd := action.Command; cmd != nil {
_, err := r.server.ExecuteCommand(r.ctx, &protocol.ExecuteCommandParams{
Command: action.Command.Command,
Arguments: action.Command.Arguments,
})
if err != nil {
t.Fatalf("error converting command %q to edits: %v", action.Command.Command, err)
}
res = <-r.editRecv
} else {
res, err = applyTextDocumentEdits(r, action.Edit.DocumentChanges)
if err != nil {
t.Fatal(err)
}
}
for u, got := range res {
want := r.data.Golden(t, "suggestedfix_"+tests.SpanName(spn), u.Filename(), func() ([]byte, error) {
return got, nil
})
if diff := compare.Bytes(want, got); diff != "" {
t.Errorf("suggested fixes failed for %s:\n%s", u.Filename(), diff)
}
}
}

func (r *runner) InlayHints(t *testing.T, spn span.Span) {
uri := spn.URI()
filename := uri.Filename()
Expand Down Expand Up @@ -591,26 +493,3 @@ func (r *runner) SelectionRanges(t *testing.T, spn span.Span) {
t.Errorf("%s mismatch\n%s", testName, diff)
}
}

func (r *runner) collectDiagnostics(view *cache.View) {
if r.diagnostics != nil {
return
}
r.diagnostics = make(map[span.URI][]*source.Diagnostic)

snapshot, release, err := view.Snapshot()
if err != nil {
panic(err)
}
defer release()

// Always run diagnostics with analysis.
r.server.diagnose(r.ctx, snapshot, analyzeEverything)
for uri, reports := range r.server.diagnostics {
for _, report := range reports.reports {
for _, d := range report.diags {
r.diagnostics[uri] = append(r.diagnostics[uri], d)
}
}
}
}
1 change: 0 additions & 1 deletion gopls/internal/lsp/regtest/marker.go
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,6 @@ var update = flag.Bool("update", false, "if set, update test data during marker
// Existing marker tests (in ../testdata) to port:
// - CallHierarchy
// - SemanticTokens
// - SuggestedFixes
// - InlayHints
// - Renames
// - SelectionRanges
Expand Down
1 change: 0 additions & 1 deletion gopls/internal/lsp/testdata/embeddirective/embed.txt

This file was deleted.

18 changes: 0 additions & 18 deletions gopls/internal/lsp/testdata/embeddirective/fix_import.go

This file was deleted.

21 changes: 0 additions & 21 deletions gopls/internal/lsp/testdata/embeddirective/fix_import.go.golden

This file was deleted.

9 changes: 0 additions & 9 deletions gopls/internal/lsp/testdata/missingfunction/channels.go

This file was deleted.

15 changes: 0 additions & 15 deletions gopls/internal/lsp/testdata/missingfunction/channels.go.golden

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions gopls/internal/lsp/testdata/missingfunction/error_param.go

This file was deleted.

12 changes: 0 additions & 12 deletions gopls/internal/lsp/testdata/missingfunction/error_param.go.golden

This file was deleted.

7 changes: 0 additions & 7 deletions gopls/internal/lsp/testdata/missingfunction/literals.go

This file was deleted.

13 changes: 0 additions & 13 deletions gopls/internal/lsp/testdata/missingfunction/literals.go.golden

This file was deleted.

7 changes: 0 additions & 7 deletions gopls/internal/lsp/testdata/missingfunction/operation.go

This file was deleted.

13 changes: 0 additions & 13 deletions gopls/internal/lsp/testdata/missingfunction/operation.go.golden

This file was deleted.

6 changes: 0 additions & 6 deletions gopls/internal/lsp/testdata/missingfunction/selector.go

This file was deleted.

12 changes: 0 additions & 12 deletions gopls/internal/lsp/testdata/missingfunction/selector.go.golden

This file was deleted.

5 changes: 0 additions & 5 deletions gopls/internal/lsp/testdata/missingfunction/slice.go

This file was deleted.

11 changes: 0 additions & 11 deletions gopls/internal/lsp/testdata/missingfunction/slice.go.golden

This file was deleted.

9 changes: 0 additions & 9 deletions gopls/internal/lsp/testdata/missingfunction/tuple.go

This file was deleted.

15 changes: 0 additions & 15 deletions gopls/internal/lsp/testdata/missingfunction/tuple.go.golden

This file was deleted.

7 changes: 0 additions & 7 deletions gopls/internal/lsp/testdata/missingfunction/unique_params.go

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion gopls/internal/lsp/testdata/summary.txt.golden
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
-- summary --
CallHierarchyCount = 2
SemanticTokenCount = 3
SuggestedFixCount = 12
InlayHintsCount = 5
RenamesCount = 45
SelectionRangesCount = 3
Expand Down
5 changes: 0 additions & 5 deletions gopls/internal/lsp/testdata/typeerrors/noresultvalues.go

This file was deleted.

Loading

0 comments on commit efa2492

Please sign in to comment.