зеркало из https://github.com/golang/dep.git
60 строки
1.4 KiB
Go
60 строки
1.4 KiB
Go
|
// Copyright 2017 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package gps
|
||
|
|
||
|
import (
|
||
|
"path/filepath"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/golang/dep/internal/test"
|
||
|
)
|
||
|
|
||
|
func TestVCSVersion(t *testing.T) {
|
||
|
if testing.Short() {
|
||
|
t.Skip("Skipping slow test in short mode")
|
||
|
}
|
||
|
|
||
|
h := test.NewHelper(t)
|
||
|
defer h.Cleanup()
|
||
|
requiresBins(t, "git")
|
||
|
|
||
|
h.TempDir("src")
|
||
|
gopath := h.Path(".")
|
||
|
h.Setenv("GOPATH", gopath)
|
||
|
|
||
|
importPaths := map[string]struct {
|
||
|
rev Version
|
||
|
checkout bool
|
||
|
}{
|
||
|
"github.com/pkg/errors": {
|
||
|
rev: NewVersion("v0.8.0").Pair("645ef00459ed84a119197bfb8d8205042c6df63d"), // semver
|
||
|
checkout: true,
|
||
|
},
|
||
|
"github.com/sirupsen/logrus": {
|
||
|
rev: Revision("42b84f9ec624953ecbf81a94feccb3f5935c5edf"), // random sha
|
||
|
checkout: true,
|
||
|
},
|
||
|
"github.com/rsc/go-get-default-branch": {
|
||
|
rev: NewBranch("another-branch").Pair("8e6902fdd0361e8fa30226b350e62973e3625ed5"),
|
||
|
},
|
||
|
}
|
||
|
|
||
|
// checkout the specified revisions
|
||
|
for ip, info := range importPaths {
|
||
|
h.RunGo("get", ip)
|
||
|
repoDir := h.Path("src/" + ip)
|
||
|
if info.checkout {
|
||
|
h.RunGit(repoDir, "checkout", info.rev.String())
|
||
|
}
|
||
|
abs := filepath.FromSlash(filepath.Join(gopath, "src", ip))
|
||
|
got, err := VCSVersion(abs)
|
||
|
h.Must(err)
|
||
|
|
||
|
if got != info.rev {
|
||
|
t.Fatalf("expected %q, got %q", got.String(), info.rev.String())
|
||
|
}
|
||
|
}
|
||
|
}
|