[!net] skip
[!exec:git] skip

env GO111MODULE=on
env GOPROXY=direct
env GOSUMDB=off

# Regression test for golang.org/issue/27171: after resolving an older
# pseudo-version of a commit, future resolution of that commit by hash should
# choose the highest appropriate pseudo-version instead of the cached one.

go mod download -json golang.org/x/text@v0.0.0-20171215141712-a1b916ed6726
stdout '"Version": "v0.0.0-20171215141712-a1b916ed6726",'

# If GOPROXY is 'off', lookups should use whatever pseudo-version is available.
env GOPROXY=off
go mod download -json golang.org/x/text@a1b916ed6726
stdout '"Version": "v0.0.0-20171215141712-a1b916ed6726",'

# If we can re-resolve the commit to a pseudo-version, fetching the commit by
# hash should use the highest such pseudo-version appropriate to the commit.
env GOPROXY=direct
go mod download -json golang.org/x/text@a1b916ed6726
stdout '"Version": "v0.3.1-0.20171215141712-a1b916ed6726",'

# If GOPROXY is 'off', lookups should use the highest pseudo-version in the cache.
env GOPROXY=off
go mod download -json golang.org/x/text@a1b916ed6726
stdout '"Version": "v0.3.1-0.20171215141712-a1b916ed6726",'
