# This is a test that if one of the main modules replaces the other
# the vendor consistency checks still pass. The replacement is ignored
# because it is of a main module, but it is still recorded in
# vendor/modules.txt.

go work vendor
go list all # make sure the consistency checks pass
! stderr .

# Removing the replace causes consistency checks to fail
cp a_go_mod_no_replace a/go.mod
! go list all # consistency checks fail
stderr 'example.com/b@v0.0.0: is marked as replaced in vendor/modules.txt, but not replaced in the workspace'


-- a_go_mod_no_replace --
module example.com/a

go 1.21

require example.com/b v0.0.0
-- go.work --
go 1.21

use (
    a
    b
)
-- a/go.mod --
module example.com/a

go 1.21

require example.com/b v0.0.0

replace example.com/b => ../b
-- a/a.go --
package a

import _ "example.com/b"
-- b/go.mod --
module example.com/b

go 1.21
-- b/b.go --
package b