github.com/pdmccormick/importable-docker-buildx@v0.0.0-20240426161518-e47091289030/driver/docker/version_test.go (about)

     1  package docker
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Masterminds/semver/v3"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestConstraint(t *testing.T) {
    11  	for _, tt := range mobyBuildkitVersions {
    12  		tt := tt
    13  		t.Run(tt.MobyVersionConstraint, func(t *testing.T) {
    14  			_, err := semver.NewConstraint(tt.MobyVersionConstraint)
    15  			require.NoError(t, err)
    16  		})
    17  	}
    18  }
    19  
    20  func TestResolveBuildKitVersion(t *testing.T) {
    21  	cases := []struct {
    22  		mobyVersion string
    23  		expected    string
    24  		err         bool
    25  	}{
    26  		{
    27  			mobyVersion: "18.06.1-ce",
    28  			expected:    "v0.0.0+98f1604",
    29  		},
    30  		{
    31  			mobyVersion: "18.09.1-beta1",
    32  			expected:    "v0.3.3",
    33  		},
    34  		{
    35  			mobyVersion: "19.03.0-beta1",
    36  			expected:    "v0.4.0+b302896",
    37  		},
    38  		{
    39  			mobyVersion: "19.03.5-beta2",
    40  			expected:    "v0.6.2+ff93519",
    41  		},
    42  		{
    43  			mobyVersion: "19.03.13-beta1",
    44  			expected:    "v0.6.4+da1f4bf",
    45  		},
    46  		{
    47  			mobyVersion: "19.03.13-beta2",
    48  			expected:    "v0.6.4+da1f4bf",
    49  		},
    50  		{
    51  			mobyVersion: "19.03.13",
    52  			expected:    "v0.6.4+df89d4d",
    53  		},
    54  		{
    55  			mobyVersion: "20.10.3-rc.1",
    56  			expected:    "v0.8.1+68bb095",
    57  		},
    58  		{
    59  			mobyVersion: "20.10.3",
    60  			expected:    "v0.8.1+68bb095",
    61  		},
    62  		{
    63  			mobyVersion: "20.10.4",
    64  			expected:    "v0.8.2",
    65  		},
    66  		{
    67  			mobyVersion: "20.10.16",
    68  			expected:    "v0.8.2+bc07b2b8",
    69  		},
    70  		{
    71  			mobyVersion: "20.10.19",
    72  			expected:    "v0.8.2+3a1eeca5",
    73  		},
    74  		{
    75  			mobyVersion: "20.10.23",
    76  			expected:    "v0.8.2+eeb7b65",
    77  		},
    78  		{
    79  			mobyVersion: "20.10.24",
    80  			expected:    "v0.8+unknown",
    81  		},
    82  		{
    83  			mobyVersion: "20.10.50",
    84  			expected:    "v0.8+unknown",
    85  		},
    86  		{
    87  			mobyVersion: "22.06.0-beta.0",
    88  			expected:    "v0.10.3",
    89  		},
    90  		{
    91  			mobyVersion: "22.06.0",
    92  			expected:    "v0.10.3",
    93  		},
    94  		{
    95  			mobyVersion: "23.0.0-rc.4",
    96  			expected:    "v0.10.6",
    97  		},
    98  		{
    99  			mobyVersion: "23.0.0",
   100  			expected:    "v0.10.6",
   101  		},
   102  		{
   103  			mobyVersion: "23.0.1",
   104  			expected:    "v0.10.6+4f0ee09",
   105  		},
   106  		{
   107  			mobyVersion: "23.0.2-rc.1",
   108  			expected:    "v0.10.6+70f2ad5",
   109  		},
   110  		{
   111  			mobyVersion: "23.0.3",
   112  			expected:    "v0.10.6+70f2ad5",
   113  		},
   114  		{
   115  			mobyVersion: "23.0.5",
   116  			expected:    "v0.10.6+d52b2d5",
   117  		},
   118  		{
   119  			mobyVersion: "23.0.7",
   120  			expected:    "v0.10+unknown",
   121  		},
   122  	}
   123  	for _, tt := range cases {
   124  		tt := tt
   125  		t.Run(tt.mobyVersion, func(t *testing.T) {
   126  			bkVersion, err := resolveBuildKitVersion(tt.mobyVersion)
   127  			if tt.err {
   128  				require.Error(t, err)
   129  				return
   130  			}
   131  			require.NoError(t, err)
   132  			require.Equal(t, tt.expected, bkVersion)
   133  		})
   134  	}
   135  }