1
0
mirror of https://github.com/golang/go synced 2024-11-19 01:14:39 -07:00
go/internal/lsp/regtest
Rob Findley 2b5917cebf internal/lsp/lsprpc: forward the go environment in initialize requests
The gopls workspace environment defaults to the process environment in
which gopls was started. This means that when switching environments,
gopls can potentially get a different environment when connecting as an
editor sidecar from when forwarding requests to the daemon.

To (hopefully mostly) mitigate this pain point, inject the Go
environment when forwarding the 'initialize' request, which contains
InitializationOptions containing the 'env' configuration. We could go
further and send the entire os.Environ(), but that seems problematic
both in its unbounded nature, and because in many cases the user may not
actually want to send their process env over the wire. Gopls behavior
should *mostly* be parameterized by gopls binary and Go env, and after
this change these should match for forwarder and daemon.

For go1.15, Explicitly set the GOMODCACHE environment variable in the
regtest sandbox. Without this, regtests were failing in the forwarded
environment because they implicitly shared a module cache.

Fixes golang/go#37830

Change-Id: Ic1b335506f8b481505eac9f74c0df6293dc07158
Reviewed-on: https://go-review.googlesource.com/c/tools/+/234109
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2020-06-16 15:43:56 +00:00
..
cgo_test.go internal/lsp/regtest: Skip failing/flaky TestRegenerateCgo 2020-05-18 19:26:01 +00:00
codelens_test.go internal/lsp: fix update code lens and add a regression test 2020-06-08 16:37:37 +00:00
definition_test.go internal/lsp/regtest: put testing.T back in the test func signature 2020-04-14 18:42:46 +00:00
diagnostics_test.go internal/lsp/cache: hide diagnostics for ignored dirs 2020-06-15 17:27:23 +00:00
doc.go internal/lsp/regtest: add expository package documentation 2020-04-28 21:10:48 +00:00
env_test.go internal/lsp: instrument work done reporting to use in regtests 2020-04-28 20:46:32 +00:00
env.go internal/lsp/lsprpc: forward the go environment in initialize requests 2020-06-16 15:43:56 +00:00
formatting_test.go internal/lsp: fix formatting edge cases (36824) 2020-05-26 20:56:00 +00:00
generate_test.go internal/lsp/regtest: add support for testing generate commands 2020-05-04 19:25:30 +00:00
imports_test.go internal/lsp: simplify and correct fixing imports for CodeAction 2020-05-18 22:54:12 +00:00
reg_test.go internal/lsp/regtest: print RPC logs when verbose output is enabled 2020-06-11 19:16:16 +00:00
runner.go internal/lsp/lsprpc: forward the go environment in initialize requests 2020-06-16 15:43:56 +00:00
serialization_test.go internal/lsp: change the hover test to use normal editor methods 2020-06-03 17:07:13 +00:00
shared_test.go internal/lsp: support configurable codeLens 2020-05-08 18:47:35 +00:00
symbol_helper_test.go internal/lsp/fake: define Symbol method on Editor 2020-05-11 20:27:07 +00:00
symbol_test.go internal/lsp/fake: define Symbol method on Editor 2020-05-11 20:27:07 +00:00
unix_test.go internal/lsp/regtest: add a t.Skip for golang/go#36824 regtest 2020-05-21 15:57:04 +00:00
vendor_test.go internal/lsp: support go mod vendor as a command 2020-06-04 18:33:45 +00:00
wrappers.go internal/lsp: now connection shutdown works, use it 2020-06-06 01:49:04 +00:00