func TestVendorTest2(t *testing.T) { testenv.MustHaveExternalNetwork(t) tg := testgo(t) defer tg.cleanup() tg.makeTempdir() tg.setenv("GOPATH", tg.path(".")) tg.setenv("GO15VENDOREXPERIMENT", "1") tg.run("get", "github.com/rsc/go-get-issue-11864") // build -i should work tg.run("build", "-i", "github.com/rsc/go-get-issue-11864") tg.run("build", "-i", "github.com/rsc/go-get-issue-11864/t") // test -i should work like build -i (golang.org/issue/11988) tg.run("test", "-i", "github.com/rsc/go-get-issue-11864") tg.run("test", "-i", "github.com/rsc/go-get-issue-11864/t") // test should work too tg.run("test", "github.com/rsc/go-get-issue-11864") tg.run("test", "github.com/rsc/go-get-issue-11864/t") // external tests should observe internal test exports (golang.org/issue/11977) tg.run("test", "github.com/rsc/go-get-issue-11864/vendor/vendor.org/tx2") }
func TestVendorGetUpdate(t *testing.T) { testenv.MustHaveExternalNetwork(t) tg := testgo(t) defer tg.cleanup() tg.makeTempdir() tg.setenv("GOPATH", tg.path(".")) tg.setenv("GO15VENDOREXPERIMENT", "1") tg.run("get", "github.com/rsc/go-get-issue-11864") tg.run("get", "-u", "github.com/rsc/go-get-issue-11864") }
func TestVendorList(t *testing.T) { testenv.MustHaveExternalNetwork(t) tg := testgo(t) defer tg.cleanup() tg.makeTempdir() tg.setenv("GOPATH", tg.path(".")) tg.setenv("GO15VENDOREXPERIMENT", "1") tg.run("get", "github.com/rsc/go-get-issue-11864") tg.run("list", "-f", `{{join .TestImports "\n"}}`, "github.com/rsc/go-get-issue-11864/t") tg.grepStdout("go-get-issue-11864/vendor/vendor.org/p", "did not find vendor-expanded p") tg.run("list", "-f", `{{join .XTestImports "\n"}}`, "github.com/rsc/go-get-issue-11864/tx") tg.grepStdout("go-get-issue-11864/vendor/vendor.org/p", "did not find vendor-expanded p") tg.run("list", "-f", `{{join .XTestImports "\n"}}`, "github.com/rsc/go-get-issue-11864/vendor/vendor.org/tx2") tg.grepStdout("go-get-issue-11864/vendor/vendor.org/tx2", "did not find vendor-expanded tx2") tg.run("list", "-f", `{{join .XTestImports "\n"}}`, "github.com/rsc/go-get-issue-11864/vendor/vendor.org/tx3") tg.grepStdout("go-get-issue-11864/vendor/vendor.org/tx3", "did not find vendor-expanded tx3") }
// Test that RepoRootForImportPath creates the correct RepoRoot for a given importPath. // TODO(cmang): Add tests for SVN and BZR. func TestRepoRootForImportPath(t *testing.T) { testenv.MustHaveExternalNetwork(t) tests := []struct { path string want *repoRoot }{ { "code.google.com/p/go", &repoRoot{ vcs: vcsHg, repo: "https://code.google.com/p/go", }, }, /*{ "code.google.com/r/go", &repoRoot{ vcs: vcsHg, repo: "https://code.google.com/r/go", }, },*/ { "github.com/golang/groupcache", &repoRoot{ vcs: vcsGit, repo: "https://github.com/golang/groupcache", }, }, // IBM DevOps Services tests { "hub.jazz.net/git/user1/pkgname", &repoRoot{ vcs: vcsGit, repo: "https://hub.jazz.net/git/user1/pkgname", }, }, { "hub.jazz.net/git/user1/pkgname/submodule/submodule/submodule", &repoRoot{ vcs: vcsGit, repo: "https://hub.jazz.net/git/user1/pkgname", }, }, { "hub.jazz.net", nil, }, { "hub2.jazz.net", nil, }, { "hub.jazz.net/someotherprefix", nil, }, { "hub.jazz.net/someotherprefix/user1/pkgname", nil, }, // Spaces are not valid in user names or package names { "hub.jazz.net/git/User 1/pkgname", nil, }, { "hub.jazz.net/git/user1/pkg name", nil, }, // Dots are not valid in user names { "hub.jazz.net/git/user.1/pkgname", nil, }, { "hub.jazz.net/git/user/pkg.name", &repoRoot{ vcs: vcsGit, repo: "https://hub.jazz.net/git/user/pkg.name", }, }, // User names cannot have uppercase letters { "hub.jazz.net/git/USER/pkgname", nil, }, // Spaces are not valid in package name { "git.apache.org/package name/path/to/lib", nil, }, // Should have ".git" suffix { "git.apache.org/package-name/path/to/lib", nil, }, { "git.apache.org/package-name.git", &repoRoot{ vcs: vcsGit, repo: "https://git.apache.org/package-name.git", }, }, { "git.apache.org/package-name_2.x.git/path/to/lib", &repoRoot{ vcs: vcsGit, repo: "https://git.apache.org/package-name_2.x.git", }, }, } for _, test := range tests { got, err := repoRootForImportPath(test.path, secure) want := test.want if want == nil { if err == nil { t.Errorf("RepoRootForImport(%q): Error expected but not received", test.path) } continue } if err != nil { t.Errorf("RepoRootForImport(%q): %v", test.path, err) continue } if got.vcs.name != want.vcs.name || got.repo != want.repo { t.Errorf("RepoRootForImport(%q) = VCS(%s) Repo(%s), want VCS(%s) Repo(%s)", test.path, got.vcs, got.repo, want.vcs, want.repo) } } }