blob: cfd3792600cd01e2cb8a537617c2860891c52dc8 [file] [log] [blame]
# Regression test for https://golang.org/issue/46659.
#
# If a 'replace' directive specifies an older-than-selected version of a module,
# 'go mod tidy' shouldn't try to add that version to the build list to resolve a
# missing package: it won't be selected, and would cause the module loader to
# loop indefinitely trying to resolve the package.
cp go.mod go.mod.orig
! go mod tidy
! stderr panic
stderr '^golang\.org/issue46659 imports\n\texample\.com/missingpkg/deprecated: package example\.com/missingpkg/deprecated provided by example\.com/missingpkg at latest version v1\.0\.0 but not at required version v1\.0\.1-beta$'
go mod tidy -e
cmp go.mod go.mod.orig
-- go.mod --
module golang.org/issue46659
go 1.17
replace example.com/missingpkg v1.0.1-alpha => example.com/missingpkg v1.0.0
require example.com/usemissingpre v1.0.0
require example.com/missingpkg v1.0.1-beta // indirect
-- m.go --
package m
import (
_ "example.com/missingpkg/deprecated"
_ "example.com/usemissingpre"
)