| [short] skip |
| [!git] skip |
| |
| env GO111MODULE=on |
| env GOPROXY=direct |
| env GOSUMDB=off |
| |
| # go mod download with the pseudo-version should invoke git but not have a TagSum or Ref. |
| go mod download -x -json vcs-test.golang.org/git/hello.git@v0.0.0-20170922010558-fc3a09f3dc5c |
| stderr 'git fetch' |
| cp stdout hellopseudo.json |
| ! stdout '"(Query|TagPrefix|TagSum|Ref)"' |
| stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/hello"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| go clean -modcache |
| |
| # go mod download vcstest/hello should invoke git, print origin info |
| go mod download -x -json vcs-test.golang.org/git/hello.git@latest |
| stderr 'git fetch' |
| cp stdout hello.json |
| stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/hello"' |
| stdout '"Query": "latest"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Ref": "HEAD"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| |
| # pseudo-version again should not invoke git fetch (it has the version from the @latest query) |
| # but still be careful not to include a TagSum or a Ref, especially not Ref set to HEAD, |
| # which is easy to do when reusing the cached version from the @latest query. |
| go mod download -x -json vcs-test.golang.org/git/hello.git@v0.0.0-20170922010558-fc3a09f3dc5c |
| ! stderr 'git fetch' |
| cp stdout hellopseudo2.json |
| cmpenv hellopseudo.json hellopseudo2.json |
| |
| # go mod download vcstest/hello@hash needs to check TagSum to find pseudoversion base. |
| go mod download -x -json vcs-test.golang.org/git/hello.git@fc3a09f3dc5c |
| ! stderr 'git fetch' |
| cp stdout hellohash.json |
| stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' |
| stdout '"Query": "fc3a09f3dc5c"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/hello"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| |
| # go mod download vcstest/hello/v9 should fail, still print origin info |
| ! go mod download -x -json vcs-test.golang.org/git/hello.git/v9@latest |
| cp stdout hellov9.json |
| stdout '"Version": "latest"' |
| stdout '"Error":.*no matching versions' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Ref": "HEAD"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout 'RepoSum' |
| |
| # go mod download vcstest/hello/sub/v9 should also fail, print origin info with TagPrefix |
| ! go mod download -x -json vcs-test.golang.org/git/hello.git/sub/v9@latest |
| cp stdout hellosubv9.json |
| stdout '"Version": "latest"' |
| stdout '"Error":.*no matching versions' |
| stdout '"TagPrefix": "sub/"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Ref": "HEAD"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout 'RepoSum' |
| |
| # go mod download vcstest/hello@nonexist should fail, still print origin info |
| ! go mod download -x -json vcs-test.golang.org/git/hello.git@nonexist |
| cp stdout hellononexist.json |
| stdout '"Version": "nonexist"' |
| stdout '"Error":.*unknown revision nonexist' |
| stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' |
| ! stdout '"(TagPrefix|TagSum|Ref|Hash)"' |
| |
| # go mod download vcstest/hello@1234567890123456789012345678901234567890 should fail, still print origin info |
| # (40 hex digits is assumed to be a full hash and is a slightly different code path from @nonexist) |
| ! go mod download -x -json vcs-test.golang.org/git/hello.git@1234567890123456789012345678901234567890 |
| cp stdout hellononhash.json |
| stdout '"Version": "1234567890123456789012345678901234567890"' |
| stdout '"Error":.*unknown revision 1234567890123456789012345678901234567890' |
| stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' |
| ! stdout '"(TagPrefix|TagSum|Ref|Hash)"' |
| |
| # go mod download vcstest/hello@v0.0.0-20220101120101-123456789abc should fail, still print origin info |
| # (non-existent pseudoversion) |
| ! go mod download -x -json vcs-test.golang.org/git/hello.git@v0.0.0-20220101120101-123456789abc |
| cp stdout hellononpseudo.json |
| stdout '"Version": "v0.0.0-20220101120101-123456789abc"' |
| stdout '"Error":.*unknown revision 123456789abc' |
| stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' |
| ! stdout '"(TagPrefix|TagSum|Ref|Hash)"' |
| |
| # go mod download vcstest/tagtests should invoke git, print origin info |
| go mod download -x -json vcs-test.golang.org/git/tagtests.git@latest |
| stderr 'git fetch' |
| cp stdout tagtests.json |
| stdout '"Version": "v0.2.2"' |
| stdout '"Query": "latest"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' |
| stdout '"Ref": "refs/tags/v0.2.2"' |
| stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' |
| |
| # go mod download vcstest/tagtests@v0.2.2 should print origin info, no TagSum needed |
| go mod download -x -json vcs-test.golang.org/git/tagtests.git@v0.2.2 |
| cp stdout tagtestsv022.json |
| stdout '"Version": "v0.2.2"' |
| ! stdout '"Query":' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| ! stdout '"TagSum"' |
| stdout '"Ref": "refs/tags/v0.2.2"' |
| stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' |
| |
| # go mod download vcstest/tagtests@master needs a TagSum again |
| go mod download -x -json vcs-test.golang.org/git/tagtests.git@master |
| cp stdout tagtestsmaster.json |
| stdout '"Version": "v0.2.3-0.20190509225625-c7818c24fa2f"' |
| stdout '"Query": "master"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' |
| stdout '"Ref": "refs/heads/master"' |
| stdout '"Hash": "c7818c24fa2f3f714c67d0a6d3e411c85a518d1f"' |
| |
| # go mod download vcstest/prefixtagtests should invoke git, print origin info |
| go mod download -x -json vcs-test.golang.org/git/prefixtagtests.git/sub@latest |
| stderr 'git fetch' |
| cp stdout prefixtagtests.json |
| stdout '"Version": "v0.0.10"' |
| stdout '"Query": "latest"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/prefixtagtests"' |
| stdout '"Subdir": "sub"' |
| stdout '"TagPrefix": "sub/"' |
| stdout '"TagSum": "t1:YGSbWkJ8dn9ORAr[+]BlKHFK/2ZhXLb9hVuYfTZ9D8C7g="' |
| stdout '"Ref": "refs/tags/sub/v0.0.10"' |
| stdout '"Hash": "2b7c4692e12c109263cab51b416fcc835ddd7eae"' |
| |
| # go mod download of a bunch of these should fail (some are invalid) but write good JSON for later |
| ! go mod download -json vcs-test.golang.org/git/hello.git@latest vcs-test.golang.org/git/hello.git/v9@latest vcs-test.golang.org/git/hello.git/sub/v9@latest vcs-test.golang.org/git/tagtests.git@latest vcs-test.golang.org/git/tagtests.git@v0.2.2 vcs-test.golang.org/git/tagtests.git@master |
| cp stdout all.json |
| |
| # clean the module cache, make sure that makes go mod download re-run git fetch, clean again |
| go clean -modcache |
| go mod download -x -json vcs-test.golang.org/git/hello.git@latest |
| stderr 'git fetch' |
| go clean -modcache |
| |
| # reuse go mod download vcstest/hello result |
| go mod download -reuse=hello.json -x -json vcs-test.golang.org/git/hello.git@latest |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/hello"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Ref": "HEAD"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout '"Dir"' |
| ! stdout '"Info"' |
| ! stdout '"GoMod"' |
| ! stdout '"Zip"' |
| |
| # reuse go mod download vcstest/hello pseudoversion result |
| go mod download -reuse=hellopseudo.json -x -json vcs-test.golang.org/git/hello.git@v0.0.0-20170922010558-fc3a09f3dc5c |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/hello"' |
| ! stdout '"(Query|TagPrefix|TagSum|Ref)"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/hello@hash |
| go mod download -reuse=hellohash.json -x -json vcs-test.golang.org/git/hello.git@fc3a09f3dc5c |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Query": "fc3a09f3dc5c"' |
| stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/hello"' |
| ! stdout '"(TagPrefix|Ref)"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/hello/v9 error result |
| ! go mod download -reuse=hellov9.json -x -json vcs-test.golang.org/git/hello.git/v9@latest |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Error":.*no matching versions' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Ref": "HEAD"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/hello/sub/v9 error result |
| ! go mod download -reuse=hellosubv9.json -x -json vcs-test.golang.org/git/hello.git/sub/v9@latest |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Error":.*no matching versions' |
| stdout '"TagPrefix": "sub/"' |
| stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' |
| stdout '"Ref": "HEAD"' |
| stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/hello@nonexist |
| ! go mod download -reuse=hellononexist.json -x -json vcs-test.golang.org/git/hello.git@nonexist |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "nonexist"' |
| stdout '"Error":.*unknown revision nonexist' |
| stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' |
| ! stdout '"(TagPrefix|TagSum|Ref|Hash)"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/hello@1234567890123456789012345678901234567890 |
| ! go mod download -reuse=hellononhash.json -x -json vcs-test.golang.org/git/hello.git@1234567890123456789012345678901234567890 |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "1234567890123456789012345678901234567890"' |
| stdout '"Error":.*unknown revision 1234567890123456789012345678901234567890' |
| stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' |
| ! stdout '"(TagPrefix|TagSum|Ref|Hash)"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/hello@v0.0.0-20220101120101-123456789abc |
| ! go mod download -reuse=hellononpseudo.json -x -json vcs-test.golang.org/git/hello.git@v0.0.0-20220101120101-123456789abc |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.0.0-20220101120101-123456789abc"' |
| stdout '"Error":.*unknown revision 123456789abc' |
| stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' |
| ! stdout '"(TagPrefix|TagSum|Ref|Hash)"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/tagtests result |
| go mod download -reuse=tagtests.json -x -json vcs-test.golang.org/git/tagtests.git@latest |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.2.2"' |
| stdout '"Query": "latest"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' |
| stdout '"Ref": "refs/tags/v0.2.2"' |
| stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/tagtests@v0.2.2 result |
| go mod download -reuse=tagtestsv022.json -x -json vcs-test.golang.org/git/tagtests.git@v0.2.2 |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.2.2"' |
| ! stdout '"Query":' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| ! stdout '"TagSum"' |
| stdout '"Ref": "refs/tags/v0.2.2"' |
| stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/tagtests@master result |
| go mod download -reuse=tagtestsmaster.json -x -json vcs-test.golang.org/git/tagtests.git@master |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.2.3-0.20190509225625-c7818c24fa2f"' |
| stdout '"Query": "master"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' |
| stdout '"Ref": "refs/heads/master"' |
| stdout '"Hash": "c7818c24fa2f3f714c67d0a6d3e411c85a518d1f"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse go mod download vcstest/tagtests@master result again with all.json |
| go mod download -reuse=all.json -x -json vcs-test.golang.org/git/tagtests.git@master |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| stdout '"Version": "v0.2.3-0.20190509225625-c7818c24fa2f"' |
| stdout '"Query": "master"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"TagPrefix"' |
| stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' |
| stdout '"Ref": "refs/heads/master"' |
| stdout '"Hash": "c7818c24fa2f3f714c67d0a6d3e411c85a518d1f"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # go mod download vcstest/prefixtagtests result with json |
| go mod download -reuse=prefixtagtests.json -x -json vcs-test.golang.org/git/prefixtagtests.git/sub@latest |
| ! stderr 'git fetch' |
| stdout '"Version": "v0.0.10"' |
| stdout '"Query": "latest"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/prefixtagtests"' |
| stdout '"Subdir": "sub"' |
| stdout '"TagPrefix": "sub/"' |
| stdout '"TagSum": "t1:YGSbWkJ8dn9ORAr[+]BlKHFK/2ZhXLb9hVuYfTZ9D8C7g="' |
| stdout '"Ref": "refs/tags/sub/v0.0.10"' |
| stdout '"Hash": "2b7c4692e12c109263cab51b416fcc835ddd7eae"' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse the bulk results with all.json |
| ! go mod download -reuse=all.json -json vcs-test.golang.org/git/hello.git@latest vcs-test.golang.org/git/hello.git/v9@latest vcs-test.golang.org/git/hello.git/sub/v9@latest vcs-test.golang.org/git/tagtests.git@latest vcs-test.golang.org/git/tagtests.git@v0.2.2 vcs-test.golang.org/git/tagtests.git@master |
| ! stderr 'git fetch' |
| stdout '"Reuse": true' |
| ! stdout '"(Dir|Info|GoMod|Zip)"' |
| |
| # reuse attempt with stale hash should reinvoke git, not report reuse |
| cp tagtestsv022.json tagtestsv022badhash.json |
| replace '57952' '56952XXX' tagtestsv022badhash.json |
| go mod download -reuse=tagtestsv022badhash.json -x -json vcs-test.golang.org/git/tagtests.git@v0.2.2 |
| stderr 'git fetch' |
| ! stdout '"Reuse": true' |
| stdout '"Version": "v0.2.2"' |
| ! stdout '"Query"' |
| stdout '"VCS": "git"' |
| stdout '"URL": ".*/git/tagtests"' |
| ! stdout '"(TagPrefix|TagSum)"' |
| stdout '"Ref": "refs/tags/v0.2.2"' |
| stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' |
| stdout '"Dir"' |
| stdout '"Info"' |
| stdout '"GoMod"' |
| stdout '"Zip"' |
| |
| # reuse with stale repo URL |
| cp tagtestsv022.json tagtestsv022badurl.json |
| replace 'git/tagtests\"' 'git/tagtestsXXX\"' tagtestsv022badurl.json |
| go mod download -reuse=tagtestsv022badurl.json -x -json vcs-test.golang.org/git/tagtests.git@v0.2.2 |
| ! stdout '"Reuse": true' |
| stdout '"URL": ".*/git/tagtests"' |
| stdout '"Dir"' |
| stdout '"Info"' |
| stdout '"GoMod"' |
| stdout '"Zip"' |
| |
| # reuse with stale VCS |
| cp tagtestsv022.json tagtestsv022badvcs.json |
| replace '\"git\"' '\"gitXXX\"' tagtestsv022badvcs.json |
| go mod download -reuse=tagtestsv022badvcs.json -x -json vcs-test.golang.org/git/tagtests.git@v0.2.2 |
| ! stdout '"Reuse": true' |
| stdout '"URL": ".*/git/tagtests"' |
| |
| # reuse with stale Dir |
| cp tagtestsv022.json tagtestsv022baddir.json |
| replace '\t\t\"Ref\":' '\t\t\"Subdir\": \"subdir\",\n\t\t\"Ref\":' tagtestsv022baddir.json |
| go mod download -reuse=tagtestsv022baddir.json -x -json vcs-test.golang.org/git/tagtests.git@v0.2.2 |
| ! stdout '"Reuse": true' |
| stdout '"URL": ".*/git/tagtests"' |
| |
| # reuse with stale TagSum |
| cp tagtests.json tagtestsbadtagsum.json |
| replace 'sMEOGo=' 'sMEoGo=XXX' tagtestsbadtagsum.json |
| go mod download -reuse=tagtestsbadtagsum.json -x -json vcs-test.golang.org/git/tagtests.git@latest |
| ! stdout '"Reuse": true' |
| stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' |