// Copyright 2021 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. package misc import ( "net/http" "testing" "golang.org/x/tools/internal/lsp/command" "golang.org/x/tools/internal/lsp/protocol" . "golang.org/x/tools/internal/lsp/regtest" ) func TestStartDebugging(t *testing.T) { WithOptions( Modes(Forwarded), ).Run(t, "", func(t *testing.T, env *Env) { args, err := command.MarshalArgs(command.DebuggingArgs{}) if err != nil { t.Fatal(err) } params := &protocol.ExecuteCommandParams{ Command: command.StartDebugging.ID(), Arguments: args, } var result command.DebuggingResult env.ExecuteCommand(params, &result) if got, want := len(result.URLs), 2; got != want { t.Fatalf("got %d urls, want %d; urls: %#v", got, want, result.URLs) } for i, u := range result.URLs { resp, err := http.Get(u) if err != nil { t.Errorf("getting url #%d (%q): %v", i, u, err) continue } defer resp.Body.Close() if got, want := resp.StatusCode, http.StatusOK; got != want { t.Errorf("debug server #%d returned HTTP %d, want %d", i, got, want) } } }) }