1 Star 0 Fork 0

liboxwz / dep

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
lock_test.go 4.47 KB
一键复制 编辑 原始数据 按行查看 历史
// Copyright 2016 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 dep
import (
"reflect"
"strings"
"testing"
"github.com/golang/dep/gps"
"github.com/golang/dep/gps/verify"
"github.com/golang/dep/internal/test"
)
func TestReadLock(t *testing.T) {
h := test.NewHelper(t)
defer h.Cleanup()
golden := "lock/golden0.toml"
g0f := h.GetTestFile(golden)
defer g0f.Close()
got, err := readLock(g0f)
if err != nil {
t.Fatalf("Should have read Lock correctly, but got err %q", err)
}
want := &Lock{
SolveMeta: SolveMeta{InputImports: []string{}},
P: []gps.LockedProject{
verify.VerifiableProject{
LockedProject: gps.NewLockedProject(
gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep")},
gps.NewBranch("master").Pair(gps.Revision("d05d5aca9f895d19e9265839bffeadd74a2d2ecb")),
[]string{"."},
),
PruneOpts: gps.PruneOptions(1),
Digest: verify.VersionedDigest{
HashVersion: verify.HashVersion,
Digest: []byte("foo"),
},
},
},
}
if !reflect.DeepEqual(got, want) {
t.Error("Valid lock did not parse as expected")
}
golden = "lock/golden1.toml"
g1f := h.GetTestFile(golden)
defer g1f.Close()
got, err = readLock(g1f)
if err != nil {
t.Fatalf("Should have read Lock correctly, but got err %q", err)
}
want = &Lock{
SolveMeta: SolveMeta{InputImports: []string{}},
P: []gps.LockedProject{
verify.VerifiableProject{
LockedProject: gps.NewLockedProject(
gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep")},
gps.NewVersion("0.12.2").Pair(gps.Revision("d05d5aca9f895d19e9265839bffeadd74a2d2ecb")),
[]string{"."},
),
PruneOpts: gps.PruneOptions(15),
Digest: verify.VersionedDigest{
HashVersion: verify.HashVersion,
Digest: []byte("foo"),
},
},
},
}
if !reflect.DeepEqual(got, want) {
t.Error("Valid lock did not parse as expected")
}
}
func TestWriteLock(t *testing.T) {
h := test.NewHelper(t)
defer h.Cleanup()
golden := "lock/golden0.toml"
want := h.GetTestFileString(golden)
l := &Lock{
P: []gps.LockedProject{
verify.VerifiableProject{
LockedProject: gps.NewLockedProject(
gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep")},
gps.NewBranch("master").Pair(gps.Revision("d05d5aca9f895d19e9265839bffeadd74a2d2ecb")),
[]string{"."},
),
PruneOpts: gps.PruneOptions(1),
Digest: verify.VersionedDigest{
HashVersion: verify.HashVersion,
Digest: []byte("foo"),
},
},
},
}
got, err := l.MarshalTOML()
if err != nil {
t.Fatalf("Error while marshaling valid lock to TOML: %q", err)
}
if string(got) != want {
if *test.UpdateGolden {
if err = h.WriteTestFile(golden, string(got)); err != nil {
t.Fatal(err)
}
} else {
t.Errorf("Valid lock did not marshal to TOML as expected:\n\t(GOT): %s\n\t(WNT): %s", string(got), want)
}
}
golden = "lock/golden1.toml"
want = h.GetTestFileString(golden)
l = &Lock{
P: []gps.LockedProject{
verify.VerifiableProject{
LockedProject: gps.NewLockedProject(
gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep")},
gps.NewVersion("0.12.2").Pair(gps.Revision("d05d5aca9f895d19e9265839bffeadd74a2d2ecb")),
[]string{"."},
),
PruneOpts: gps.PruneOptions(15),
Digest: verify.VersionedDigest{
HashVersion: verify.HashVersion,
Digest: []byte("foo"),
},
},
},
}
got, err = l.MarshalTOML()
if err != nil {
t.Fatalf("Error while marshaling valid lock to TOML: %q", err)
}
if string(got) != want {
if *test.UpdateGolden {
if err = h.WriteTestFile(golden, string(got)); err != nil {
t.Fatal(err)
}
} else {
t.Errorf("Valid lock did not marshal to TOML as expected:\n\t(GOT): %s\n\t(WNT): %s", string(got), want)
}
}
}
func TestReadLockErrors(t *testing.T) {
h := test.NewHelper(t)
defer h.Cleanup()
var err error
tests := []struct {
name string
file string
}{
{"specified both", "lock/error0.toml"},
{"odd length", "lock/error1.toml"},
{"no branch or version", "lock/error2.toml"},
}
for _, tst := range tests {
lf := h.GetTestFile(tst.file)
defer lf.Close()
_, err = readLock(lf)
if err == nil {
t.Errorf("Reading lock with %s should have caused error, but did not", tst.name)
} else if !strings.Contains(err.Error(), tst.name) {
t.Errorf("Unexpected error %q; expected %s error", err, tst.name)
}
}
}
1
https://gitee.com/liboxwz/dep.git
git@gitee.com:liboxwz/dep.git
liboxwz
dep
dep
master

搜索帮助