env GO111MODULE=on

# 'go list -mod=readonly' should not add requirements even if they can be
# resolved locally.
cp go.mod go.mod.orig
! go list -mod=readonly all
cmp go.mod go.mod.orig

# 'go list' should resolve imports using replacements.
go list all
stdout 'example.com/a/b$'
stdout 'example.com/x/v3$'
stdout 'example.com/y/z/w$'
stdout 'example.com/v'

# The selected modules should prefer longer paths,
# but should try shorter paths if needed.
# Modules with a major-version suffix should have a corresponding pseudo-version.
# Replacements that specify a version should use the latest such version.
go list -m all
stdout 'example.com/a/b v0.0.0-00010101000000-000000000000 => ./b'
stdout 'example.com/y v0.0.0-00010101000000-000000000000 => ./y'
stdout 'example.com/x/v3 v3.0.0-00010101000000-000000000000 => ./v3'
stdout 'example.com/v v1.12.0 => ./v12'

# The go command should print an informative error when the matched
# module does not contain a package.
cd fail
! go list all
stderr '^m.go:4:2: module w@latest found \(v0.0.0-00010101000000-000000000000, replaced by ../w\), but does not contain package w$'
stderr '^m.go:5:2: nonexist@v0.1.0: replacement directory ../nonexist does not exist$'

-- go.mod --
module example.com/m

replace (
	example.com/a => ./a
	example.com/a/b => ./b
)

replace (
	example.com/x => ./x
	example.com/x/v3 => ./v3
)

replace (
	example.com/y/z/w => ./w
	example.com/y => ./y
)

replace (
	example.com/v v1.11.0 => ./v11
	example.com/v v1.12.0 => ./v12
	example.com/v => ./v
)

replace (
	example.com/i v2.0.0+incompatible => ./i2
)

-- m.go --
package main
import (
	_ "example.com/a/b"
	_ "example.com/x/v3"
	_ "example.com/y/z/w"
	_ "example.com/v"
	_ "example.com/i"
)
func main() {}

-- a/go.mod --
module a.localhost
-- a/a.go --
package a
-- a/b/b.go--
package b

-- b/go.mod --
module a.localhost/b
-- b/b.go --
package b

-- x/go.mod --
module x.localhost
-- x/x.go --
package x
-- x/v3.go --
package v3
import _ "x.localhost/v3"

-- v3/go.mod --
module x.localhost/v3
-- v3/x.go --
package x

-- w/go.mod --
module w.localhost
-- w/skip/skip.go --
// Package skip is nested below nonexistent package w.
package skip

-- y/go.mod --
module y.localhost
-- y/z/w/w.go --
package w

-- v12/go.mod --
module v.localhost
-- v12/v.go --
package v

-- v11/go.mod --
module v.localhost
-- v11/v.go --
package v

-- v/go.mod --
module v.localhost
-- v/v.go --
package v

-- i2/go.mod --
module example.com/i
-- i2/i.go --
package i

-- fail/m.go --
package main

import (
	_ "w"
	_ "nonexist"
)

func main() {}

-- fail/go.mod --
module localhost.fail

replace w => ../w

replace nonexist v0.1.0 => ../nonexist
