[!git] skip
[short] 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 vcs-test.golang.org/git/commit-after-tag.git@v0.0.0-20190715211727-b325d8217783
stdout '"Version": "v0.0.0-20190715211727-b325d8217783",'

# If GOPROXY is 'off', lookups should use whatever pseudo-version is available.
env GOPROXY=off
go mod download -json vcs-test.golang.org/git/commit-after-tag.git@b325d8217783
stdout '"Version": "v0.0.0-20190715211727-b325d8217783",'

# 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 vcs-test.golang.org/git/commit-after-tag.git@b325d8217783
stdout '"Version": "v1.0.1-0.20190715211727-b325d8217783",'

# If GOPROXY is 'off', lookups should use the highest pseudo-version in the cache.
env GOPROXY=off
go mod download -json vcs-test.golang.org/git/commit-after-tag.git@b325d8217783
stdout '"Version": "v1.0.1-0.20190715211727-b325d8217783",'
