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  }