# Test go mod download, why, and graph work in workspace mode. # TODO(bcmills): clarify the interaction with #44435 go mod download rsc.io/quote exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.info exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.mod exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.zip ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod grep '^rsc\.io/quote v1\.5\.2/go\.mod h1:' go.work.sum grep '^rsc\.io/quote v1\.5\.2 h1:' go.work.sum go clean -modcache rm go.work.sum go mod download exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.info exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.mod exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.zip ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod grep '^rsc\.io/quote v1\.5\.2/go\.mod h1:' go.work.sum grep '^rsc\.io/quote v1\.5\.2 h1:' go.work.sum go mod why rsc.io/quote stdout '# rsc.io/quote\nexample.com/a\nrsc.io/quote' go mod graph stdout 'example.com/a rsc.io/quote@v1.5.2\nexample.com/b example.com/c@v1.0.0\nrsc.io/quote@v1.5.2 rsc.io/sampler@v1.3.0\nrsc.io/sampler@v1.3.0 golang.org/x/text@v0.0.0-20170915032832-14c0d48ead0c' -- go.work -- go 1.18 use ( ./a ./b ) -- a/go.mod -- go 1.18 module example.com/a require "rsc.io/quote" v1.5.2 -- a/main.go -- package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) } -- b/go.mod -- go 1.18 module example.com/b require example.com/c v1.0.0 replace example.com/c => ../c -- c/go.mod -- go 1.18 module example.com/c