[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"'