File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -336,26 +336,21 @@ func updateIsEquivalent(a, b configv1.Update) bool {
336336 }
337337}
338338
339+ // sortSemanticVersions sorts the input slice in increasing order.
339340func sortSemanticVersions (versions []configv1.Update ) {
340341 sort .Slice (versions , func (i , j int ) bool {
341342 a , errA := semver .Parse (versions [i ].Version )
342343 b , errB := semver .Parse (versions [j ].Version )
343344 if errA == nil && errB != nil {
344- return true
345- }
346- if errB == nil && errA == nil {
347345 return false
348346 }
349- if errA != nil && errB != nil {
350- if versions [i ].Version < versions [j ].Version {
351- return true
352- }
353- return false
354- }
355- if a .Compare (b ) < 0 {
347+ if errB == nil && errA != nil {
356348 return true
357349 }
358- return false
350+ if errA != nil && errB != nil {
351+ return versions [i ].Version < versions [j ].Version
352+ }
353+ return a .LT (b )
359354 })
360355}
361356
Original file line number Diff line number Diff line change 1+ package upgrade
2+
3+ import (
4+ "math/rand"
5+ "reflect"
6+ "testing"
7+
8+ configv1 "github.com/openshift/api/config/v1"
9+ )
10+
11+ func TestSortSemanticVersions (t * testing.T ) {
12+ expected := []configv1.Update {
13+ {Version : "not-sem-ver-1" },
14+ {Version : "not-sem-ver-2" },
15+ {Version : "2.0.0" },
16+ {Version : "2.0.1" },
17+ {Version : "10.0.0" },
18+ }
19+
20+ actual := make ([]configv1.Update , len (expected ))
21+ for i , j := range rand .Perm (len (expected )) {
22+ actual [i ] = expected [j ]
23+ }
24+
25+ sortSemanticVersions (actual )
26+ if ! reflect .DeepEqual (actual , expected ) {
27+ t .Errorf ("%v != %v" , actual , expected )
28+ }
29+ }
You can’t perform that action at this time.
0 commit comments