mirror of https://github.com/golang/go.git
cmd/go/internal/modfetch: add zip sums and hashes to TestCodeRepo
Updates #35290 Change-Id: I09cad17f09e78c2bf6a9de98b01f13ed383ca006 Reviewed-on: https://go-review.googlesource.com/c/go/+/204643 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
5b31021525
commit
24e9c53396
|
|
@ -6,7 +6,11 @@ package modfetch
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"archive/zip"
|
"archive/zip"
|
||||||
|
"crypto/sha256"
|
||||||
|
"encoding/hex"
|
||||||
|
"hash"
|
||||||
"internal/testenv"
|
"internal/testenv"
|
||||||
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
@ -17,6 +21,8 @@ import (
|
||||||
|
|
||||||
"cmd/go/internal/cfg"
|
"cmd/go/internal/cfg"
|
||||||
"cmd/go/internal/modfetch/codehost"
|
"cmd/go/internal/modfetch/codehost"
|
||||||
|
|
||||||
|
"golang.org/x/mod/sumdb/dirhash"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
|
@ -54,7 +60,7 @@ var altVgotests = map[string]string{
|
||||||
type codeRepoTest struct {
|
type codeRepoTest struct {
|
||||||
vcs string
|
vcs string
|
||||||
path string
|
path string
|
||||||
lookerr string
|
lookErr string
|
||||||
mpath string
|
mpath string
|
||||||
rev string
|
rev string
|
||||||
err string
|
err string
|
||||||
|
|
@ -63,9 +69,11 @@ type codeRepoTest struct {
|
||||||
short string
|
short string
|
||||||
time time.Time
|
time time.Time
|
||||||
gomod string
|
gomod string
|
||||||
gomoderr string
|
gomodErr string
|
||||||
zip []string
|
zip []string
|
||||||
ziperr string
|
zipErr string
|
||||||
|
zipSum string
|
||||||
|
zipFileHash string
|
||||||
}
|
}
|
||||||
|
|
||||||
var codeRepoTests = []codeRepoTest{
|
var codeRepoTests = []codeRepoTest{
|
||||||
|
|
@ -82,6 +90,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
"README.md",
|
"README.md",
|
||||||
"pkg/p.go",
|
"pkg/p.go",
|
||||||
},
|
},
|
||||||
|
zipSum: "h1:zVEjciLdlk/TPWCOyZo7k24T+tOKRQC+u8MKq/xS80I=",
|
||||||
|
zipFileHash: "738a00ddbfe8c329dce6b48e1f23c8e22a92db50f3cfb2653caa0d62676bc09c",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -96,6 +106,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
"README.md",
|
"README.md",
|
||||||
"pkg/p.go",
|
"pkg/p.go",
|
||||||
},
|
},
|
||||||
|
zipSum: "h1:nOznk2xKsLGkTnXe0q9t1Ewt9jxK+oadtafSUqHM3Ec=",
|
||||||
|
zipFileHash: "bacb08f391e29d2eaaef8281b5c129ee6d890e608ee65877e0003c0181a766c8",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -116,6 +128,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
"README.md",
|
"README.md",
|
||||||
"pkg/p.go",
|
"pkg/p.go",
|
||||||
},
|
},
|
||||||
|
zipSum: "h1:e040hOoWGeuJLawDjK9DW6med+cz9FxMFYDMOVG8ctQ=",
|
||||||
|
zipFileHash: "74caab65cfbea427c341fa815f3bb0378681d8f0e3cf62a7f207014263ec7be3",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -140,6 +154,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
"README.md",
|
"README.md",
|
||||||
"pkg/p.go",
|
"pkg/p.go",
|
||||||
},
|
},
|
||||||
|
zipSum: "h1:e040hOoWGeuJLawDjK9DW6med+cz9FxMFYDMOVG8ctQ=",
|
||||||
|
zipFileHash: "74caab65cfbea427c341fa815f3bb0378681d8f0e3cf62a7f207014263ec7be3",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -201,6 +217,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
"pkg/p.go",
|
"pkg/p.go",
|
||||||
"LICENSE",
|
"LICENSE",
|
||||||
},
|
},
|
||||||
|
zipSum: "h1:iMsJ/9uQsk6MnZNnJK311f11QiSlmN92Q2aSjCywuJY=",
|
||||||
|
zipFileHash: "95801bfa69c5197ae809af512946d22f22850068527cd78100ae3f176bc8043b",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -217,6 +235,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
"go.mod",
|
"go.mod",
|
||||||
"pkg/p.go",
|
"pkg/p.go",
|
||||||
},
|
},
|
||||||
|
zipSum: "h1:M69k7q+8bQ+QUpHov45Z/NoR8rj3DsQJUnXLWvf01+Q=",
|
||||||
|
zipFileHash: "58af45fb248d320ea471f568e006379e2b8d71d6d1663f9b19b2e00fd9ac9265",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -227,6 +247,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "ea65f87c8f52",
|
short: "ea65f87c8f52",
|
||||||
time: time.Date(2018, 2, 19, 23, 14, 23, 0, time.UTC),
|
time: time.Date(2018, 2, 19, 23, 14, 23, 0, time.UTC),
|
||||||
gomod: "module \"github.com/rsc/vgotest1/v2\" // root go.mod\n",
|
gomod: "module \"github.com/rsc/vgotest1/v2\" // root go.mod\n",
|
||||||
|
zipSum: "h1:QmgYy/zt+uoWhDpcsgrSVzYFvKtBEjl5zT/FRz9GTzA=",
|
||||||
|
zipFileHash: "1aedf1546d322a0121879ddfd6d0e8bfbd916d2cafbeb538ddb440e04b04b9ef",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -257,6 +279,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "2f615117ce48",
|
short: "2f615117ce48",
|
||||||
time: time.Date(2018, 2, 20, 0, 3, 59, 0, time.UTC),
|
time: time.Date(2018, 2, 20, 0, 3, 59, 0, time.UTC),
|
||||||
gomod: "module \"github.com/rsc/vgotest1/v2\" // v2/go.mod\n",
|
gomod: "module \"github.com/rsc/vgotest1/v2\" // v2/go.mod\n",
|
||||||
|
zipSum: "h1:RIEb9q1SUSEQOzMn0zfl/LQxGFWlhWEAdeEguf1MLGU=",
|
||||||
|
zipFileHash: "7d92c2c328c5e9b0694101353705d5843746ec1d93a1e986d0da54c8a14dfe6d",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// redirect to github
|
// redirect to github
|
||||||
|
|
@ -268,6 +292,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "f488df80bcdb",
|
short: "f488df80bcdb",
|
||||||
time: time.Date(2018, 2, 14, 0, 45, 20, 0, time.UTC),
|
time: time.Date(2018, 2, 14, 0, 45, 20, 0, time.UTC),
|
||||||
gomod: "module \"rsc.io/quote\"\n",
|
gomod: "module \"rsc.io/quote\"\n",
|
||||||
|
zipSum: "h1:haUSojyo3j2M9g7CEUFG8Na09dtn7QKxvPGaPVQdGwM=",
|
||||||
|
zipFileHash: "5c08ba2c09a364f93704aaa780e7504346102c6ef4fe1333a11f09904a732078",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// redirect to static hosting proxy
|
// redirect to static hosting proxy
|
||||||
|
|
@ -288,6 +314,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
name: "4e4a3210bb54bb31f6ab2cdca2edcc0b50c420c1",
|
name: "4e4a3210bb54bb31f6ab2cdca2edcc0b50c420c1",
|
||||||
short: "4e4a3210bb54",
|
short: "4e4a3210bb54",
|
||||||
time: time.Date(2018, 2, 8, 4, 12, 48, 0, time.UTC),
|
time: time.Date(2018, 2, 8, 4, 12, 48, 0, time.UTC),
|
||||||
|
zipSum: "h1:Yxu6pHX9X2RECiuw/Q5/4uvajuaowck8zOFKXgbfNBk=",
|
||||||
|
zipFileHash: "ac2c165a5c10aa5a7545dea60a08e019270b982fa6c8bdcb5943931de64922fe",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -297,6 +325,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
name: "645ef00459ed84a119197bfb8d8205042c6df63d",
|
name: "645ef00459ed84a119197bfb8d8205042c6df63d",
|
||||||
short: "645ef00459ed",
|
short: "645ef00459ed",
|
||||||
time: time.Date(2016, 9, 29, 1, 48, 1, 0, time.UTC),
|
time: time.Date(2016, 9, 29, 1, 48, 1, 0, time.UTC),
|
||||||
|
zipSum: "h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=",
|
||||||
|
zipFileHash: "e4fa69ba057356614edbc1da881a7d3ebb688505be49f65965686bcb859e2fae",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// package in subdirectory - custom domain
|
// package in subdirectory - custom domain
|
||||||
|
|
@ -304,7 +334,7 @@ var codeRepoTests = []codeRepoTest{
|
||||||
// but gopkg.in is special.
|
// but gopkg.in is special.
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
path: "gopkg.in/yaml.v2/abc",
|
path: "gopkg.in/yaml.v2/abc",
|
||||||
lookerr: "invalid module path \"gopkg.in/yaml.v2/abc\"",
|
lookErr: "invalid module path \"gopkg.in/yaml.v2/abc\"",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// package in subdirectory - github
|
// package in subdirectory - github
|
||||||
|
|
@ -323,6 +353,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "d670f9405373",
|
short: "d670f9405373",
|
||||||
time: time.Date(2018, 1, 9, 11, 43, 31, 0, time.UTC),
|
time: time.Date(2018, 1, 9, 11, 43, 31, 0, time.UTC),
|
||||||
gomod: "module gopkg.in/yaml.v2\n",
|
gomod: "module gopkg.in/yaml.v2\n",
|
||||||
|
zipSum: "h1:uUkhRGrsEyx/laRdeS6YIQKIys8pg+lRSRdVMTYjivs=",
|
||||||
|
zipFileHash: "7b0a141b1b0b49772ab4eecfd11dfd6609a94a5e868cab04a3abb1861ffaa877",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -333,6 +365,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "20d25e280405",
|
short: "20d25e280405",
|
||||||
time: time.Date(2016, 12, 8, 18, 13, 25, 0, time.UTC),
|
time: time.Date(2016, 12, 8, 18, 13, 25, 0, time.UTC),
|
||||||
gomod: "module gopkg.in/check.v1\n",
|
gomod: "module gopkg.in/check.v1\n",
|
||||||
|
zipSum: "h1:829vOVxxusYHC+IqBtkX5mbKtsY9fheQiQn0MZRVLfQ=",
|
||||||
|
zipFileHash: "9e7cb3f4f1e66d722306442b0dbe1f6f43d74d1736d54c510537bdfb1d6f432f",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -343,6 +377,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "970885f01c8b",
|
short: "970885f01c8b",
|
||||||
time: time.Date(2019, 10, 2, 20, 28, 10, 0, time.UTC),
|
time: time.Date(2019, 10, 2, 20, 28, 10, 0, time.UTC),
|
||||||
gomod: "module \"gopkg.in/yaml.v2\"\n\nrequire (\n\t\"gopkg.in/check.v1\" v0.0.0-20161208181325-20d25e280405\n)\n",
|
gomod: "module \"gopkg.in/yaml.v2\"\n\nrequire (\n\t\"gopkg.in/check.v1\" v0.0.0-20161208181325-20d25e280405\n)\n",
|
||||||
|
zipSum: "h1:c7zdkYUaqShimBvZzvhOA+Absl0aDaGKX267vSm0Z7E=",
|
||||||
|
zipFileHash: "5856a108e1aa8ec9c35f4479f8e806652b326b648c80abd08fc403707f4eb5f1",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -353,6 +389,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "ede458df7cd0",
|
short: "ede458df7cd0",
|
||||||
time: time.Date(2018, 4, 17, 19, 43, 22, 0, time.UTC),
|
time: time.Date(2018, 4, 17, 19, 43, 22, 0, time.UTC),
|
||||||
gomod: "module vcs-test.golang.org/go/mod/gitrepo1\n",
|
gomod: "module vcs-test.golang.org/go/mod/gitrepo1\n",
|
||||||
|
zipSum: "h1:YJYZRsM9BHFTlVr8YADjT0cJH8uFIDtoc5NLiVqZEx8=",
|
||||||
|
zipFileHash: "c15e49d58b7a4c37966cbe5bc01a0330cd5f2927e990e1839bda1d407766d9c5",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -363,6 +401,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "a96e63847dc3",
|
short: "a96e63847dc3",
|
||||||
time: time.Date(2017, 5, 31, 16, 3, 50, 0, time.UTC),
|
time: time.Date(2017, 5, 31, 16, 3, 50, 0, time.UTC),
|
||||||
gomod: "module gopkg.in/natefinch/lumberjack.v2\n",
|
gomod: "module gopkg.in/natefinch/lumberjack.v2\n",
|
||||||
|
zipSum: "h1:AFxeG48hTWHhDTQDk/m2gorfVHUEa9vo3tp3D7TzwjI=",
|
||||||
|
zipFileHash: "b5de0da7bbbec76709eef1ac71b6c9ff423b9fbf3bb97b56743450d4937b06d5",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
vcs: "git",
|
vcs: "git",
|
||||||
|
|
@ -389,6 +429,8 @@ var codeRepoTests = []codeRepoTest{
|
||||||
short: "203b91c896ac",
|
short: "203b91c896ac",
|
||||||
time: time.Date(2019, 4, 3, 15, 52, 15, 0, time.UTC),
|
time: time.Date(2019, 4, 3, 15, 52, 15, 0, time.UTC),
|
||||||
gomod: "module vcs-test.golang.org/go/v2module/v2\n\ngo 1.12\n",
|
gomod: "module vcs-test.golang.org/go/v2module/v2\n\ngo 1.12\n",
|
||||||
|
zipSum: "h1:JItBZ+gwA5WvtZEGEbuDL4lUttGtLrs53lmdurq3bOg=",
|
||||||
|
zipFileHash: "9ea9ae1673cffcc44b7fdd3cc89953d68c102449b46c982dbf085e4f2e394da5",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -411,21 +453,23 @@ func TestCodeRepo(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
repo, err := Lookup("direct", tt.path)
|
repo, err := Lookup("direct", tt.path)
|
||||||
if tt.lookerr != "" {
|
if tt.lookErr != "" {
|
||||||
if err != nil && err.Error() == tt.lookerr {
|
if err != nil && err.Error() == tt.lookErr {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
t.Errorf("Lookup(%q): %v, want error %q", tt.path, err, tt.lookerr)
|
t.Errorf("Lookup(%q): %v, want error %q", tt.path, err, tt.lookErr)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Lookup(%q): %v", tt.path, err)
|
t.Fatalf("Lookup(%q): %v", tt.path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if tt.mpath == "" {
|
if tt.mpath == "" {
|
||||||
tt.mpath = tt.path
|
tt.mpath = tt.path
|
||||||
}
|
}
|
||||||
if mpath := repo.ModulePath(); mpath != tt.mpath {
|
if mpath := repo.ModulePath(); mpath != tt.mpath {
|
||||||
t.Errorf("repo.ModulePath() = %q, want %q", mpath, tt.mpath)
|
t.Errorf("repo.ModulePath() = %q, want %q", mpath, tt.mpath)
|
||||||
}
|
}
|
||||||
|
|
||||||
info, err := repo.Stat(tt.rev)
|
info, err := repo.Stat(tt.rev)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if tt.err != "" {
|
if tt.err != "" {
|
||||||
|
|
@ -451,40 +495,58 @@ func TestCodeRepo(t *testing.T) {
|
||||||
if !info.Time.Equal(tt.time) {
|
if !info.Time.Equal(tt.time) {
|
||||||
t.Errorf("info.Time = %v, want %v", info.Time, tt.time)
|
t.Errorf("info.Time = %v, want %v", info.Time, tt.time)
|
||||||
}
|
}
|
||||||
if tt.gomod != "" || tt.gomoderr != "" {
|
|
||||||
|
if tt.gomod != "" || tt.gomodErr != "" {
|
||||||
data, err := repo.GoMod(tt.version)
|
data, err := repo.GoMod(tt.version)
|
||||||
if err != nil && tt.gomoderr == "" {
|
if err != nil && tt.gomodErr == "" {
|
||||||
t.Errorf("repo.GoMod(%q): %v", tt.version, err)
|
t.Errorf("repo.GoMod(%q): %v", tt.version, err)
|
||||||
} else if err != nil && tt.gomoderr != "" {
|
} else if err != nil && tt.gomodErr != "" {
|
||||||
if err.Error() != tt.gomoderr {
|
if err.Error() != tt.gomodErr {
|
||||||
t.Errorf("repo.GoMod(%q): %v, want %q", tt.version, err, tt.gomoderr)
|
t.Errorf("repo.GoMod(%q): %v, want %q", tt.version, err, tt.gomodErr)
|
||||||
}
|
}
|
||||||
} else if tt.gomoderr != "" {
|
} else if tt.gomodErr != "" {
|
||||||
t.Errorf("repo.GoMod(%q) = %q, want error %q", tt.version, data, tt.gomoderr)
|
t.Errorf("repo.GoMod(%q) = %q, want error %q", tt.version, data, tt.gomodErr)
|
||||||
} else if string(data) != tt.gomod {
|
} else if string(data) != tt.gomod {
|
||||||
t.Errorf("repo.GoMod(%q) = %q, want %q", tt.version, data, tt.gomod)
|
t.Errorf("repo.GoMod(%q) = %q, want %q", tt.version, data, tt.gomod)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if tt.zip != nil || tt.ziperr != "" {
|
|
||||||
|
needHash := !testing.Short() && (tt.zipFileHash != "" || tt.zipSum != "")
|
||||||
|
if tt.zip != nil || tt.zipErr != "" || needHash {
|
||||||
f, err := ioutil.TempFile(tmpdir, tt.version+".zip.")
|
f, err := ioutil.TempFile(tmpdir, tt.version+".zip.")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("ioutil.TempFile: %v", err)
|
t.Fatalf("ioutil.TempFile: %v", err)
|
||||||
}
|
}
|
||||||
zipfile := f.Name()
|
zipfile := f.Name()
|
||||||
err = repo.Zip(f, tt.version)
|
defer func() {
|
||||||
|
f.Close()
|
||||||
|
os.Remove(zipfile)
|
||||||
|
}()
|
||||||
|
|
||||||
|
var w io.Writer
|
||||||
|
var h hash.Hash
|
||||||
|
if needHash {
|
||||||
|
h = sha256.New()
|
||||||
|
w = io.MultiWriter(f, h)
|
||||||
|
} else {
|
||||||
|
w = f
|
||||||
|
}
|
||||||
|
err = repo.Zip(w, tt.version)
|
||||||
f.Close()
|
f.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if tt.ziperr != "" {
|
if tt.zipErr != "" {
|
||||||
if err.Error() == tt.ziperr {
|
if err.Error() == tt.zipErr {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
t.Fatalf("repo.Zip(%q): %v, want error %q", tt.version, err, tt.ziperr)
|
t.Fatalf("repo.Zip(%q): %v, want error %q", tt.version, err, tt.zipErr)
|
||||||
}
|
}
|
||||||
t.Fatalf("repo.Zip(%q): %v", tt.version, err)
|
t.Fatalf("repo.Zip(%q): %v", tt.version, err)
|
||||||
}
|
}
|
||||||
if tt.ziperr != "" {
|
if tt.zipErr != "" {
|
||||||
t.Errorf("repo.Zip(%q): success, want error %q", tt.version, tt.ziperr)
|
t.Errorf("repo.Zip(%q): success, want error %q", tt.version, tt.zipErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if tt.zip != nil {
|
||||||
prefix := tt.path + "@" + tt.version + "/"
|
prefix := tt.path + "@" + tt.version + "/"
|
||||||
z, err := zip.OpenReader(zipfile)
|
z, err := zip.OpenReader(zipfile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -503,31 +565,43 @@ func TestCodeRepo(t *testing.T) {
|
||||||
t.Fatalf("zip = %v\nwant %v\n", names, tt.zip)
|
t.Fatalf("zip = %v\nwant %v\n", names, tt.zip)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if needHash {
|
||||||
|
sum, err := dirhash.HashZip(zipfile, dirhash.Hash1)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("repo.Zip(%q): %v", tt.version, err)
|
||||||
|
} else if sum != tt.zipSum {
|
||||||
|
t.Errorf("repo.Zip(%q): got file with sum %q, want %q", tt.version, sum, tt.zipSum)
|
||||||
|
} else if zipFileHash := hex.EncodeToString(h.Sum(nil)); zipFileHash != tt.zipFileHash {
|
||||||
|
t.Errorf("repo.Zip(%q): got file with hash %q, want %q (but content has correct sum)", tt.version, zipFileHash, tt.zipFileHash)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t.Run(strings.ReplaceAll(tt.path, "/", "_")+"/"+tt.rev, f(tt))
|
t.Run(strings.ReplaceAll(tt.path, "/", "_")+"/"+tt.rev, f(tt))
|
||||||
if strings.HasPrefix(tt.path, vgotest1git) {
|
if strings.HasPrefix(tt.path, vgotest1git) {
|
||||||
for vcs, alt := range altVgotests {
|
for vcs, alt := range altVgotests {
|
||||||
// Note: Communicating with f through tt; should be cleaned up.
|
altTest := tt
|
||||||
old := tt
|
altTest.vcs = vcs
|
||||||
tt.vcs = vcs
|
altTest.path = alt + strings.TrimPrefix(altTest.path, vgotest1git)
|
||||||
tt.path = alt + strings.TrimPrefix(tt.path, vgotest1git)
|
if strings.HasPrefix(altTest.mpath, vgotest1git) {
|
||||||
if strings.HasPrefix(tt.mpath, vgotest1git) {
|
altTest.mpath = alt + strings.TrimPrefix(altTest.mpath, vgotest1git)
|
||||||
tt.mpath = alt + strings.TrimPrefix(tt.mpath, vgotest1git)
|
|
||||||
}
|
}
|
||||||
var m map[string]string
|
var m map[string]string
|
||||||
if alt == vgotest1hg {
|
if alt == vgotest1hg {
|
||||||
m = hgmap
|
m = hgmap
|
||||||
}
|
}
|
||||||
tt.version = remap(tt.version, m)
|
altTest.version = remap(altTest.version, m)
|
||||||
tt.name = remap(tt.name, m)
|
altTest.name = remap(altTest.name, m)
|
||||||
tt.short = remap(tt.short, m)
|
altTest.short = remap(altTest.short, m)
|
||||||
tt.rev = remap(tt.rev, m)
|
altTest.rev = remap(altTest.rev, m)
|
||||||
tt.err = remap(tt.err, m)
|
altTest.err = remap(altTest.err, m)
|
||||||
tt.gomoderr = remap(tt.gomoderr, m)
|
altTest.gomodErr = remap(altTest.gomodErr, m)
|
||||||
tt.ziperr = remap(tt.ziperr, m)
|
altTest.zipErr = remap(altTest.zipErr, m)
|
||||||
t.Run(strings.ReplaceAll(tt.path, "/", "_")+"/"+tt.rev, f(tt))
|
altTest.zipSum = ""
|
||||||
tt = old
|
altTest.zipFileHash = ""
|
||||||
|
t.Run(strings.ReplaceAll(altTest.path, "/", "_")+"/"+altTest.rev, f(altTest))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue