Skip to content
This repository was archived by the owner on Sep 9, 2020. It is now read-only.

Commit b17ee5f

Browse files
committed
dep: Update scads of tests
Tests are now almost completely working, after updating all the outputs to the new lock format. There is also an assortment of other fixes in here, mostly related to fixing nil pointer panics, that were uncovered by fixing up these tests.
1 parent 6b47f58 commit b17ee5f

File tree

79 files changed

+698
-521
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+698
-521
lines changed

Gopkg.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/ensure.go

+34-32
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ func (cmd *ensureCommand) runDefault(ctx *dep.Ctx, args []string, p *dep.Project
278278
return err
279279
}
280280

281+
var solve bool
281282
lock := p.ChangedLock
282283
if lock != nil {
283284
lsat := verify.LockSatisfiesInputs(p.Lock, p.Manifest, params.RootPackageTree)
@@ -298,21 +299,26 @@ func (cmd *ensureCommand) runDefault(ctx *dep.Ctx, args []string, p *dep.Project
298299
}
299300
ctx.Out.Println()
300301
}
301-
302-
solver, err := gps.Prepare(params, sm)
303-
if err != nil {
304-
return errors.Wrap(err, "prepare solver")
305-
}
306-
307-
solution, err := solver.Solve(context.TODO())
308-
if err != nil {
309-
return handleAllTheFailuresOfTheWorld(err)
310-
}
311-
lock = dep.LockFromSolution(solution, p.Manifest.PruneOptions)
302+
solve = true
312303
} else if cmd.noVendor {
313304
// The user said not to touch vendor/, so definitely nothing to do.
314305
return nil
315306
}
307+
} else {
308+
solve = true
309+
}
310+
311+
if solve {
312+
solver, err := gps.Prepare(params, sm)
313+
if err != nil {
314+
return errors.Wrap(err, "prepare solver")
315+
}
316+
317+
solution, err := solver.Solve(context.TODO())
318+
if err != nil {
319+
return handleAllTheFailuresOfTheWorld(err)
320+
}
321+
lock = dep.LockFromSolution(solution, p.Manifest.PruneOptions)
316322
}
317323

318324
dw, err := dep.NewDeltaWriter(p.Lock, lock, <-statchan, p.Manifest.PruneOptions, filepath.Join(p.AbsRoot, "vendor"))
@@ -414,33 +420,29 @@ func (cmd *ensureCommand) runAdd(ctx *dep.Ctx, args []string, p *dep.Project, sm
414420
return err
415421
}
416422

417-
// We'll need to discard this prepared solver as later work changes params,
418-
// but solver preparation is cheap and worth doing up front in order to
419-
// perform the fastpath check of hash comparison.
420-
solver, err := gps.Prepare(params, sm)
421-
if err != nil {
422-
return errors.Wrap(err, "fastpath solver prepare")
423-
}
424-
425423
rm, _ := params.RootPackageTree.ToReachMap(true, true, false, p.Manifest.IgnoredPackages())
426424

427425
// Compile unique sets of 1) all external packages imported or required, and
428426
// 2) the project roots under which they fall.
429427
exmap := make(map[string]bool)
430-
exrmap := make(map[gps.ProjectRoot]bool)
431-
432-
for _, ex := range append(rm.FlattenFn(paths.IsStandardImportPath), p.Manifest.Required...) {
433-
exmap[ex] = true
434-
root, err := sm.DeduceProjectRoot(ex)
435-
if err != nil {
436-
// This should be very uncommon to hit, as it entails that we
437-
// couldn't deduce the root for an import, but that some previous
438-
// solve run WAS able to deduce the root. It's most likely to occur
439-
// if the user has e.g. not connected to their organization's VPN,
440-
// and thus cannot access an internal go-get metadata service.
441-
return errors.Wrapf(err, "could not deduce project root for %s", ex)
428+
var exlist []string
429+
if p.ChangedLock != nil {
430+
for _, imp := range p.ChangedLock.InputImports() {
431+
exmap[imp] = true
442432
}
443-
exrmap[root] = true
433+
} else {
434+
rm, _ := p.RoockPackageTree.ToReachMap(true, true, false, p.Manifest.IgnoredPackages())
435+
for _, imp := range rm.FlattenFn(paths.IsStandardImportPath) {
436+
exmap[imp] = true
437+
}
438+
for imp := range p.Manifest.RequiredPackages() {
439+
exmap[imp] = true
440+
}
441+
}
442+
443+
exrmap, err := p.GetDirectDependencyNames()
444+
if err != nil {
445+
return err
444446
}
445447

446448
// Note: these flags are only partially used by the latter parts of the

cmd/dep/init.go

-2
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,6 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
168168
return errors.Wrap(err, "init failed: unable to recalculate the lock digest")
169169
}
170170

171-
//p.Lock.SolveMeta.InputsDigest = s.HashInputs()
172-
173171
// Pass timestamp (yyyyMMddHHmmss format) as suffix to backup name.
174172
vendorbak, err := dep.BackupVendor(filepath.Join(root, "vendor"), time.Now().Format("20060102150405"))
175173
if err != nil {

cmd/dep/root_analyzer.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111

1212
"github.com/golang/dep"
1313
"github.com/golang/dep/gps"
14-
"github.com/golang/dep/gps/verify"
1514
fb "github.com/golang/dep/internal/feedback"
1615
"github.com/golang/dep/internal/importers"
1716
"golang.org/x/sync/errgroup"
@@ -168,7 +167,7 @@ func (a *rootAnalyzer) DeriveManifestAndLock(dir string, pr gps.ProjectRoot) (gp
168167
func (a *rootAnalyzer) FinalizeRootManifestAndLock(m *dep.Manifest, l *dep.Lock, ol dep.Lock) {
169168
// Iterate through the new projects in solved lock and add them to manifest
170169
// if they are direct deps and log feedback for all the new projects.
171-
diff := verify.DiffLocks(&ol, l)
170+
diff := fb.DiffLocks(&ol, l)
172171
bi := fb.NewBrokenImportFeedback(diff)
173172
bi.LogFeedback(a.ctx.Err)
174173
for _, y := range l.Projects() {

cmd/dep/status.go

+4
Original file line numberDiff line numberDiff line change
@@ -921,6 +921,10 @@ func (cmd *statusCommand) runStatusAll(ctx *dep.Ctx, out outputter, p *dep.Proje
921921
sort.Slice(slp, func(i, j int) bool {
922922
return slp[i].Ident().Less(slp[j].Ident())
923923
})
924+
slcp := p.ChangedLock.Projects()
925+
sort.Slice(slcp, func(i, j int) bool {
926+
return slcp[i].Ident().Less(slcp[j].Ident())
927+
})
924928

925929
lsat := verify.LockSatisfiesInputs(p.Lock, p.Manifest, params.RootPackageTree)
926930
if lsat.Passed() {

cmd/dep/testdata/harness_tests/ensure/add/all-new-double-spec/final/Gopkg.lock

+8-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/all-new-double/final/Gopkg.lock

+9-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/all-new-spec/final/Gopkg.lock

+8-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/all-new/final/Gopkg.lock

+8-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/desync/final/Gopkg.lock

+13-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
Warning: Gopkg.lock is out of sync with Gopkg.toml or the project's imports.
21
Fetching sources...

cmd/dep/testdata/harness_tests/ensure/add/errs/double-diff-spec/final/Gopkg.lock

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/errs/self-add/case2/final/Gopkg.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/exists-imports/final/Gopkg.lock

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/add/exists-manifest-constraint/final/Gopkg.lock

+8-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/dep/testdata/harness_tests/ensure/default/hasheq-novendor/final/Gopkg.lock

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)