github.com/cilium/cilium@v1.16.2/pkg/versioncheck/check_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package versioncheck 5 6 import ( 7 "fmt" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestMustCompile(t *testing.T) { 14 tests := []struct { 15 version string 16 constraint string 17 want bool 18 }{ 19 { 20 version: "1.17.0-alpha.2", 21 constraint: ">=1.17.0", 22 want: false, 23 }, 24 { 25 version: "1.14.7-eks-e9b1d0", 26 constraint: ">=1.11.0", 27 want: true, 28 }, 29 { 30 version: "1.17.0-alpha.2", 31 constraint: ">=1.11.0", 32 want: true, 33 }, 34 { 35 version: "1.16.3-beta.0", 36 constraint: ">=1.11.0", 37 want: true, 38 }, 39 { 40 version: "1.17.0-alpha.2", 41 constraint: ">=1.11.0", 42 want: true, 43 }, 44 { 45 version: "1.16.3-beta.0", 46 constraint: ">=1.11.0", 47 want: true, 48 }, 49 { 50 version: "1.17.0", 51 constraint: ">=1.17.0", 52 want: true, 53 }, 54 { 55 version: "1.14.7-eks-e9b1d0", 56 constraint: ">=1.14.7", 57 want: true, 58 }, 59 { 60 version: "1.14.7-eks-e9b1d0", 61 constraint: ">=1.14.6", 62 want: true, 63 }, 64 { 65 version: "1.14.7-eks-e9b1d0", 66 constraint: ">=1.14.8", 67 want: false, 68 }, 69 { 70 version: "1.14.7-eks-e9b1d0", 71 constraint: ">=1.13.0", 72 want: true, 73 }, 74 { 75 version: "1.17.0-alpha.2", 76 constraint: ">=1.13.0", 77 want: true, 78 }, 79 { 80 version: "1.16.3-beta.0", 81 constraint: ">=1.13.0", 82 want: true, 83 }, 84 { 85 version: "1.16.0-rc.2", 86 constraint: ">=1.16.0", 87 want: false, 88 }, 89 { 90 version: "1.17.0-alpha.2", 91 constraint: ">=1.17.0-alpha.1", 92 want: true, 93 }, 94 { 95 version: "1.14.0-snapshot.0", 96 constraint: ">=1.13.0", 97 want: true, 98 }, 99 { 100 version: "1.14.0-snapshot.1", 101 constraint: ">=1.14.0-snapshot.0", 102 want: true, 103 }, 104 { 105 version: "1.14.0-snapshot.0", 106 constraint: ">=1.14.0", 107 want: false, 108 }, 109 } 110 for _, tt := range tests { 111 t.Run(tt.version, func(t *testing.T) { 112 ver, err := Version(tt.version) 113 require.NoError(t, err, fmt.Sprintf("version %s, constraint %s", tt.version, tt.constraint)) 114 115 constraint, err := Compile(tt.constraint) 116 require.NoError(t, err, fmt.Sprintf("version %s, constraint %s", tt.version, tt.constraint)) 117 require.Equal(t, tt.want, constraint(ver), fmt.Sprintf("version %s, constraint %s", tt.version, tt.constraint)) 118 }) 119 } 120 }