| # Test that mod=vendor is disabled in workspace mode, even |
| # with a single workspace module. |
| |
| cd workspace |
| |
| # Base case: ensure the module would default to mod=vendor |
| # outside of workspace mode. |
| env GOWORK=off |
| go list -f '{{.Dir}}' example.com/dep |
| stdout $GOPATH[\\/]src[\\/]workspace[\\/]vendor[\\/]example.com[\\/]dep |
| |
| # Test case: endure the module does not enter mod=vendor outside |
| # worspace mode. |
| env GOWORK='' |
| go list -f '{{.Dir}}' example.com/dep |
| stdout $GOPATH[\\/]src[\\/]dep |
| |
| -- workspace/go.work -- |
| use . |
| replace example.com/dep => ../dep |
| -- workspace/main.go -- |
| package main |
| |
| import "example.com/dep" |
| |
| func main() { |
| dep.Dep() |
| } |
| -- workspace/go.mod -- |
| module example.com/mod |
| |
| go 1.20 |
| |
| require example.com/dep v1.0.0 |
| -- workspace/vendor/example.com/dep/dep.go -- |
| package dep |
| |
| import "fmt" |
| |
| func Dep() { |
| fmt.Println("the vendored dep") |
| } |
| -- workspace/vendor/modules.txt -- |
| # example.com/dep v1.0.0 |
| ## explicit |
| example.com/dep |
| -- dep/go.mod -- |
| module example.com/dep |
| -- dep/dep.go -- |
| package dep |
| |
| import "fmt" |
| |
| func Dep () { |
| fmt.Println("the real dep") |
| } |