# Test 'go get' with a local module with a name that is not valid for network lookup.
[short] skip

env GO111MODULE=on
go mod edit -fmt
cp go.mod go.mod.orig

# 'go get -u' within the main module should work, even if it has a local-only name.
cp go.mod.orig go.mod
go get -u ./...
grep 'rsc.io/quote.*v1.5.2' go.mod
grep 'golang.org/x/text.*v0.3.0' go.mod
cp go.mod go.mod.implicitmod

# 'go get -u local/...' should be equivalent to 'go get -u ./...'
# (assuming no nested modules)
cp go.mod.orig go.mod
go get -u local/...
cmp go.mod go.mod.implicitmod

# For the main module, @patch should be a no-op.
cp go.mod.orig go.mod
go get -u local/...@patch
cmp go.mod go.mod.implicitmod

# 'go get -u' in the empty root of the main module should fail.
# 'go get -u .' should also fail.
cp go.mod.orig go.mod
! go get -u
! go get -u .

# 'go get -u .' within a package in the main module updates the dependencies
# of that package.
cp go.mod.orig go.mod
cd uselang
go get -u .
cd ..
grep 'rsc.io/quote.*v1.3.0' go.mod
grep 'golang.org/x/text.*v0.3.0' go.mod
cp go.mod go.mod.dotpkg

# 'go get -u' with an explicit package in the main module updates the
# dependencies of that package.
cp go.mod.orig go.mod
go get -u local/uselang
cmp go.mod go.mod.dotpkg

-- go.mod --
module local

require (
	golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c
	rsc.io/quote v1.3.0
)

-- uselang/uselang.go --
package uselang
import _ "golang.org/x/text/language"

-- usequote/usequote.go --
package usequote
import _ "rsc.io/quote"
