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

Commit 17156e8

Browse files
committed
status: add projectConstraints sorting by Project
Sorting of projectConstraints is required to have a consistent returned value from collectConstraints().
1 parent f8511f3 commit 17156e8

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

cmd/dep/status.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -734,10 +734,15 @@ func collectConstraints(ctx *dep.Ctx, p *dep.Project, sm gps.SourceManager) cons
734734
// Iterate through the project constraints to get individual dependency
735735
// project and constraint values.
736736
for pr, pp := range pc {
737-
constraintCollection[string(pr)] = append(
737+
tempCC := append(
738738
constraintCollection[string(pr)],
739739
projectConstraint{proj.Ident().ProjectRoot, pp.Constraint},
740740
)
741+
742+
// Sort the inner projectConstraint slice by Project string.
743+
// Required for consistent returned value.
744+
sort.Sort(byProject(tempCC))
745+
constraintCollection[string(pr)] = tempCC
741746
}
742747
}(proj)
743748
}
@@ -753,3 +758,9 @@ func collectConstraints(ctx *dep.Ctx, p *dep.Project, sm gps.SourceManager) cons
753758

754759
return constraintCollection
755760
}
761+
762+
type byProject []projectConstraint
763+
764+
func (p byProject) Len() int { return len(p) }
765+
func (p byProject) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
766+
func (p byProject) Less(i, j int) bool { return p[i].Project > p[j].Project }

cmd/dep/status_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,16 +341,16 @@ func TestCollectConstraints(t *testing.T) {
341341
},
342342
},
343343
wantConstraints: constraintsCollection{
344-
"github.com/sdboyer/deptest": []projectConstraint{
345-
{"github.com/darkowlzz/deptest-project-1", ver1},
346-
{"github.com/darkowlzz/deptest-project-2", ver08},
347-
},
348344
"github.com/sdboyer/deptestdos": []projectConstraint{
349345
{"github.com/darkowlzz/deptest-project-2", ver2},
350346
},
351347
"github.com/sdboyer/dep-test": []projectConstraint{
352348
{"github.com/darkowlzz/deptest-project-2", ver1},
353349
},
350+
"github.com/sdboyer/deptest": []projectConstraint{
351+
{"github.com/darkowlzz/deptest-project-2", ver08},
352+
{"github.com/darkowlzz/deptest-project-1", ver1},
353+
},
354354
},
355355
},
356356
{

0 commit comments

Comments
 (0)