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 }