@@ -32,18 +32,20 @@ func TestLSP(t *testing.T) {
3232type runner struct {
3333 server * Server
3434 data * tests.Data
35+ ctx context.Context
3536}
3637
3738const viewName = "lsp_test"
3839
3940func testLSP (t * testing.T , exporter packagestest.Exporter ) {
41+ ctx := tests .Context (t )
4042 data := tests .Load (t , exporter , "testdata" )
4143 defer data .Exported .Cleanup ()
4244
4345 log := xlog .New (xlog.StdSink {})
4446 cache := cache .New ()
4547 session := cache .NewSession (log )
46- view := session .NewView (viewName , span .FileURI (data .Config .Dir ))
48+ view := session .NewView (ctx , viewName , span .FileURI (data .Config .Dir ))
4749 view .SetEnv (data .Config .Env )
4850 for filename , content := range data .Config .Overlay {
4951 session .SetOverlay (span .FileURI (filename ), content )
@@ -59,6 +61,7 @@ func testLSP(t *testing.T, exporter packagestest.Exporter) {
5961 hoverKind : source .SynopsisDocumentation ,
6062 },
6163 data : data ,
64+ ctx : ctx ,
6265 }
6366 tests .Run (t , r , data )
6467}
@@ -67,15 +70,15 @@ func testLSP(t *testing.T, exporter packagestest.Exporter) {
6770func (r * runner ) Diagnostics (t * testing.T , data tests.Diagnostics ) {
6871 v := r .server .session .View (viewName )
6972 for uri , want := range data {
70- f , err := v .GetFile (context . Background () , uri )
73+ f , err := v .GetFile (r . ctx , uri )
7174 if err != nil {
7275 t .Fatalf ("no file for %s: %v" , f , err )
7376 }
7477 gof , ok := f .(source.GoFile )
7578 if ! ok {
7679 t .Fatalf ("%s is not a Go file: %v" , uri , err )
7780 }
78- results , err := source .Diagnostics (context . Background () , v , gof , nil )
81+ results , err := source .Diagnostics (r . ctx , v , gof , nil )
7982 if err != nil {
8083 t .Fatal (err )
8184 }
@@ -218,7 +221,7 @@ func (r *runner) Completion(t *testing.T, data tests.Completions, snippets tests
218221
219222func (r * runner ) runCompletion (t * testing.T , src span.Span ) * protocol.CompletionList {
220223 t .Helper ()
221- list , err := r .server .Completion (context . Background () , & protocol.CompletionParams {
224+ list , err := r .server .Completion (r . ctx , & protocol.CompletionParams {
222225 TextDocumentPositionParams : protocol.TextDocumentPositionParams {
223226 TextDocument : protocol.TextDocumentIdentifier {
224227 URI : protocol .NewURI (src .URI ()),
@@ -295,7 +298,6 @@ func summarizeCompletionItems(i int, want []source.CompletionItem, got []protoco
295298}
296299
297300func (r * runner ) Format (t * testing.T , data tests.Formats ) {
298- ctx := context .Background ()
299301 for _ , spn := range data {
300302 uri := spn .URI ()
301303 filename := uri .Filename ()
@@ -305,7 +307,7 @@ func (r *runner) Format(t *testing.T, data tests.Formats) {
305307 return out , nil
306308 }))
307309
308- edits , err := r .server .Formatting (context . Background () , & protocol.DocumentFormattingParams {
310+ edits , err := r .server .Formatting (r . ctx , & protocol.DocumentFormattingParams {
309311 TextDocument : protocol.TextDocumentIdentifier {
310312 URI : protocol .NewURI (uri ),
311313 },
@@ -316,7 +318,7 @@ func (r *runner) Format(t *testing.T, data tests.Formats) {
316318 }
317319 continue
318320 }
319- _ , m , err := getSourceFile (ctx , r .server .session .ViewOf (uri ), uri )
321+ _ , m , err := getSourceFile (r . ctx , r .server .session .ViewOf (uri ), uri )
320322 if err != nil {
321323 t .Error (err )
322324 }
@@ -333,7 +335,6 @@ func (r *runner) Format(t *testing.T, data tests.Formats) {
333335}
334336
335337func (r * runner ) Import (t * testing.T , data tests.Imports ) {
336- ctx := context .Background ()
337338 for _ , spn := range data {
338339 uri := spn .URI ()
339340 filename := uri .Filename ()
@@ -343,7 +344,7 @@ func (r *runner) Import(t *testing.T, data tests.Imports) {
343344 return out , nil
344345 }))
345346
346- actions , err := r .server .CodeAction (context . Background () , & protocol.CodeActionParams {
347+ actions , err := r .server .CodeAction (r . ctx , & protocol.CodeActionParams {
347348 TextDocument : protocol.TextDocumentIdentifier {
348349 URI : protocol .NewURI (uri ),
349350 },
@@ -354,7 +355,7 @@ func (r *runner) Import(t *testing.T, data tests.Imports) {
354355 }
355356 continue
356357 }
357- _ , m , err := getSourceFile (ctx , r .server .session .ViewOf (uri ), uri )
358+ _ , m , err := getSourceFile (r . ctx , r .server .session .ViewOf (uri ), uri )
358359 if err != nil {
359360 t .Error (err )
360361 }
@@ -393,13 +394,13 @@ func (r *runner) Definition(t *testing.T, data tests.Definitions) {
393394 var locs []protocol.Location
394395 var hover * protocol.Hover
395396 if d .IsType {
396- locs , err = r .server .TypeDefinition (context . Background () , params )
397+ locs , err = r .server .TypeDefinition (r . ctx , params )
397398 } else {
398- locs , err = r .server .Definition (context . Background () , params )
399+ locs , err = r .server .Definition (r . ctx , params )
399400 if err != nil {
400401 t .Fatalf ("failed for %v: %v" , d .Src , err )
401402 }
402- hover , err = r .server .Hover (context . Background () , params )
403+ hover , err = r .server .Hover (r . ctx , params )
403404 }
404405 if err != nil {
405406 t .Fatalf ("failed for %v: %v" , d .Src , err )
@@ -446,7 +447,7 @@ func (r *runner) Highlight(t *testing.T, data tests.Highlights) {
446447 TextDocument : protocol.TextDocumentIdentifier {URI : loc .URI },
447448 Position : loc .Range .Start ,
448449 }
449- highlights , err := r .server .DocumentHighlight (context . Background () , params )
450+ highlights , err := r .server .DocumentHighlight (r . ctx , params )
450451 if err != nil {
451452 t .Fatal (err )
452453 }
@@ -492,7 +493,7 @@ func (r *runner) Reference(t *testing.T, data tests.References) {
492493 Position : loc .Range .Start ,
493494 },
494495 }
495- got , err := r .server .References (context . Background () , params )
496+ got , err := r .server .References (r . ctx , params )
496497 if err != nil {
497498 t .Fatalf ("failed for %v: %v" , src , err )
498499 }
@@ -509,7 +510,6 @@ func (r *runner) Reference(t *testing.T, data tests.References) {
509510}
510511
511512func (r * runner ) Rename (t * testing.T , data tests.Renames ) {
512- ctx := context .Background ()
513513 for spn , newText := range data {
514514 tag := fmt .Sprintf ("%s-rename" , newText )
515515
@@ -524,7 +524,7 @@ func (r *runner) Rename(t *testing.T, data tests.Renames) {
524524 t .Fatalf ("failed for %v: %v" , spn , err )
525525 }
526526
527- workspaceEdits , err := r .server .Rename (ctx , & protocol.RenameParams {
527+ workspaceEdits , err := r .server .Rename (r . ctx , & protocol.RenameParams {
528528 TextDocument : protocol.TextDocumentIdentifier {
529529 URI : protocol .NewURI (uri ),
530530 },
@@ -544,7 +544,7 @@ func (r *runner) Rename(t *testing.T, data tests.Renames) {
544544 var res []string
545545 for uri , edits := range * workspaceEdits .Changes {
546546 spnURI := span .URI (uri )
547- _ , m , err := getSourceFile (ctx , r .server .session .ViewOf (span .URI (spnURI )), spnURI )
547+ _ , m , err := getSourceFile (r . ctx , r .server .session .ViewOf (span .URI (spnURI )), spnURI )
548548 if err != nil {
549549 t .Error (err )
550550 }
@@ -612,7 +612,7 @@ func (r *runner) Symbol(t *testing.T, data tests.Symbols) {
612612 URI : string (uri ),
613613 },
614614 }
615- symbols , err := r .server .DocumentSymbol (context . Background () , params )
615+ symbols , err := r .server .DocumentSymbol (r . ctx , params )
616616 if err != nil {
617617 t .Fatal (err )
618618 }
@@ -688,7 +688,7 @@ func (r *runner) SignatureHelp(t *testing.T, data tests.Signatures) {
688688 if err != nil {
689689 t .Fatalf ("failed for %v: %v" , loc , err )
690690 }
691- gotSignatures , err := r .server .SignatureHelp (context . Background () , & protocol.TextDocumentPositionParams {
691+ gotSignatures , err := r .server .SignatureHelp (r . ctx , & protocol.TextDocumentPositionParams {
692692 TextDocument : protocol.TextDocumentIdentifier {
693693 URI : protocol .NewURI (spn .URI ()),
694694 },
@@ -754,7 +754,7 @@ func (r *runner) Link(t *testing.T, data tests.Links) {
754754 if err != nil {
755755 t .Fatal (err )
756756 }
757- gotLinks , err := r .server .DocumentLink (context . Background () , & protocol.DocumentLinkParams {
757+ gotLinks , err := r .server .DocumentLink (r . ctx , & protocol.DocumentLinkParams {
758758 TextDocument : protocol.TextDocumentIdentifier {
759759 URI : protocol .NewURI (uri ),
760760 },
0 commit comments