1
0
mirror of https://github.com/golang/go synced 2024-11-18 15:34:53 -07:00
go/internal/lsp/cmd/serve_test.go
Rob Findley a208025ccb internal/lsp/lsprpc: automatically resolve and start the remote gopls
Most users will not want to manage their own gopls instance, but may
still want to benefit from using a shared instance.

This CL adds support for an 'auto' network type that can be encoded in
the -remote flag similarly to UDS (i.e. -remote="auto;uniqueid"). In
this mode, the actual remote address will be resolved automatically
based on the executing environment and unique identifier, and the remote
server will be started if it isn't already running.

Updates golang/go#34111

Change-Id: Ib62159765a108f3645f57709b8ff079b39dd6727
Reviewed-on: https://go-review.googlesource.com/c/tools/+/220137
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-02-24 22:51:55 +00:00

29 lines
721 B
Go

// Copyright 2020 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 cmd
import "testing"
func TestListenParsing(t *testing.T) {
tests := []struct {
input, wantNetwork, wantAddr string
}{
{"127.0.0.1:0", "tcp", "127.0.0.1:0"},
{"unix;/tmp/sock", "unix", "/tmp/sock"},
{"auto", "auto", ""},
{"auto;foo", "auto", "foo"},
}
for _, test := range tests {
gotNetwork, gotAddr := parseAddr(test.input)
if gotNetwork != test.wantNetwork {
t.Errorf("network = %q, want %q", gotNetwork, test.wantNetwork)
}
if gotAddr != test.wantAddr {
t.Errorf("addr = %q, want %q", gotAddr, test.wantAddr)
}
}
}