# Auxiliary test for inclusion of otherwise-unused replacements in
# vendor/modules.txt for golang.org/issue/33848.
# We need metadata about replacements in order to verify that modules.txt
# remains in sync with the main module's go.mod file.

env GO111MODULE=on

go mod vendor
cmp go1.14-modules.txt vendor/modules.txt

-- go.mod --
module example.com/foo
go 1.14

require (
	example.com/a v0.1.0
)

replace (
	example.com/a v0.1.0 => ./a
	example.com/b v0.1.0 => ./b1
	example.com/b v0.2.0-unused => ./b2
	example.com/c => ./c
	example.com/d v0.1.0 => ./d1
	example.com/d v0.2.0 => ./d2
	example.com/e => example.com/e v0.1.0-unused
)
-- foo.go --
package foo
import _ "example.com/a"
-- a/go.mod --
module example.com/a
require (
	example.com/b v0.1.0 // indirect
	example.com/c v0.1.0 // indirect
)
-- a/a.go --
package a
import _ "example.com/d"
-- b1/go.mod --
module example.com/b
require example.com/d v0.1.0
-- b2/go.mod --
module example.com/b
require example.com/c v0.2.0
-- c/go.mod --
module example.com/c
require example.com/d v0.2.0
-- d1/go.mod --
module example.com/d
-- d1/d1.go --
package d
-- d2/go.mod --
module example.com/d
-- d2/d2.go --
package d
-- go1.14-modules.txt --
# example.com/a v0.1.0 => ./a
## explicit
example.com/a
# example.com/d v0.2.0 => ./d2
example.com/d
# example.com/b v0.1.0 => ./b1
# example.com/b v0.2.0-unused => ./b2
# example.com/c => ./c
# example.com/d v0.1.0 => ./d1
# example.com/e => example.com/e v0.1.0-unused
