go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/core/resources/versions/apk/version_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package apk_test 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "go.mondoo.com/cnquery/providers/core/resources/versions/apk" 11 "go.mondoo.com/cnquery/providers/core/resources/versions/generic" 12 ) 13 14 const ( 15 LESS = -1 16 EQUAL = 0 17 GREATER = 1 18 ) 19 20 func TestParseAndCompare(t *testing.T) { 21 cases := []struct { 22 v1 string 23 expected int 24 v2 string 25 }{ 26 // Alpine Linux corner cases. 27 {"1.2.2-r7", GREATER, "1.2.2_pre2-r0"}, 28 // Test version with epoch 29 {generic.VersionWithoutEpoch("1632431095:1.2.2-r7"), GREATER, "1.2.2_pre2-r0"}, 30 } 31 32 var ( 33 p apk.Parser 34 cmp int 35 err error 36 ) 37 for _, c := range cases { 38 cmp, err = p.Compare(c.v1, c.v2) 39 assert.Nil(t, err) 40 assert.Equal(t, c.expected, cmp, "%s vs. %s, = %d, expected %d", c.v1, c.v2, cmp, c.expected) 41 42 cmp, err = p.Compare(c.v2, c.v1) 43 assert.Nil(t, err) 44 assert.Equal(t, -c.expected, cmp, "%s vs. %s, = %d, expected %d", c.v2, c.v1, cmp, -c.expected) 45 } 46 }