blob: e763fae8953f110425190375ed64c0d8756781ca [file] [log] [blame]
[short] skip 'generates a vcstest git repo'
[!git] skip
env GOPROXY=direct
# Control case: fetching a nested module at a tag that exists should
# emit Origin metadata for that tag and commit, and the origin should
# be reusable for that tag.
go list -json -m --versions -e vcs-test.golang.org/git/issue61415.git/nested@has-nested
cp stdout has-nested.json
stdout '"Origin":'
stdout '"VCS": "git"'
stdout '"URL":' # randomly-chosen vcweb localhost URL
stdout '"Subdir": "nested"'
stdout '"TagPrefix": "nested/"'
stdout '"TagSum": "t1:47DEQpj8HBSa\+/TImW\+5JCeuQeRkm5NMpJWZG3hSuFU="'
stdout '"Ref": "refs/tags/has-nested"'
stdout '"Hash": "08a4fa6bb9c04ffba03b26ae427b0d6335d90a2a"'
go list -reuse=has-nested.json -json -m --versions -e vcs-test.golang.org/git/issue61415.git/nested@has-nested
stdout '"Origin":'
stdout '"VCS": "git"'
stdout '"URL":' # randomly-chosen vcweb localhost URL
stdout '"Subdir": "nested"'
stdout '"TagPrefix": "nested/"'
stdout '"TagSum": "t1:47DEQpj8HBSa\+/TImW\+5JCeuQeRkm5NMpJWZG3hSuFU="'
stdout '"Ref": "refs/tags/has-nested"'
stdout '"Hash": "08a4fa6bb9c04ffba03b26ae427b0d6335d90a2a"'
stdout '"Reuse": true'
# Experiment case: if the nested module doesn't exist at "latest",
# the Origin metadata should include the ref that we tried to resolve
# (HEAD for a repo without version tags) and the hash to which it refers,
# so that changing the HEAD ref will invalidate the result.
go list -json -m --versions -e vcs-test.golang.org/git/issue61415.git/nested@latest
cp stdout no-nested.json
stdout '"Err": "module vcs-test.golang.org/git/issue61415.git/nested: no matching versions for query \\"latest\\""'
stdout '"URL":' # randomly-chosen vcweb localhost URL
stdout '"Subdir": "nested"'
stdout '"TagPrefix": "nested/"'
stdout '"TagSum": "t1:47DEQpj8HBSa\+/TImW\+5JCeuQeRkm5NMpJWZG3hSuFU="'
stdout '"Ref": "HEAD"'
stdout '"Hash": "f213069baa68ec26412fb373c7cf6669db1f8e69"'
# The error result should be reusable.
go list -reuse=no-nested.json -json -m --versions -e vcs-test.golang.org/git/issue61415.git/nested@latest
stdout '"Err": "module vcs-test.golang.org/git/issue61415.git/nested: no matching versions for query \\"latest\\""'
stdout '"URL":' # randomly-chosen vcweb localhost URL
stdout '"Subdir": "nested"'
stdout '"TagPrefix": "nested/"'
stdout '"TagSum": "t1:47DEQpj8HBSa\+/TImW\+5JCeuQeRkm5NMpJWZG3hSuFU="'
stdout '"Ref": "HEAD"'
stdout '"Hash": "f213069baa68ec26412fb373c7cf6669db1f8e69"'
stdout '"Reuse": true'
# If the hash refers to some other commit instead, the
# result should not be reused.
replace f213069baa68ec26412fb373c7cf6669db1f8e69 08a4fa6bb9c04ffba03b26ae427b0d6335d90a2a no-nested.json
go list -reuse=no-nested.json -json -m --versions -e vcs-test.golang.org/git/issue61415.git/nested@latest
stdout '"Err": "module vcs-test.golang.org/git/issue61415.git/nested: no matching versions for query \\"latest\\""'
stdout '"URL":' # randomly-chosen vcweb localhost URL
stdout '"Subdir": "nested"'
stdout '"TagPrefix": "nested/"'
stdout '"TagSum": "t1:47DEQpj8HBSa\+/TImW\+5JCeuQeRkm5NMpJWZG3hSuFU="'
stdout '"Ref": "HEAD"'
stdout '"Hash": "f213069baa68ec26412fb373c7cf6669db1f8e69"'
! stdout '"Reuse"'