You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buildx/driver/docker/version_test.go

136 lines
2.4 KiB
Go

package docker
import (
"testing"
"github.com/Masterminds/semver/v3"
"github.com/stretchr/testify/require"
)
func TestConstraint(t *testing.T) {
for _, tt := range mobyBuildkitVersions {
tt := tt
t.Run(tt.MobyVersionConstraint, func(t *testing.T) {
_, err := semver.NewConstraint(tt.MobyVersionConstraint)
require.NoError(t, err)
})
}
}
func TestResolveBuildKitVersion(t *testing.T) {
cases := []struct {
mobyVersion string
expected string
err bool
}{
{
mobyVersion: "18.06.1-ce",
expected: "v0.0.0+98f1604",
},
{
mobyVersion: "18.09.1-beta1",
expected: "v0.3.3",
},
{
mobyVersion: "19.03.0-beta1",
expected: "v0.4.0+b302896",
},
{
mobyVersion: "19.03.5-beta2",
expected: "v0.6.2+ff93519",
},
{
mobyVersion: "19.03.13-beta1",
expected: "v0.6.4+da1f4bf",
},
{
mobyVersion: "19.03.13-beta2",
expected: "v0.6.4+da1f4bf",
},
{
mobyVersion: "19.03.13",
expected: "v0.6.4+df89d4d",
},
{
mobyVersion: "20.10.3-rc.1",
expected: "v0.8.1+68bb095",
},
{
mobyVersion: "20.10.3",
expected: "v0.8.1+68bb095",
},
{
mobyVersion: "20.10.4",
expected: "v0.8.2",
},
{
mobyVersion: "20.10.16",
expected: "v0.8.2+bc07b2b8",
},
{
mobyVersion: "20.10.19",
expected: "v0.8.2+3a1eeca5",
},
{
mobyVersion: "20.10.23",
expected: "v0.8.2+eeb7b65",
},
{
mobyVersion: "20.10.24",
expected: "v0.8+unknown",
},
{
mobyVersion: "20.10.50",
expected: "v0.8+unknown",
},
{
mobyVersion: "22.06.0-beta.0",
expected: "v0.10.3",
},
{
mobyVersion: "22.06.0",
expected: "v0.10.3",
},
{
mobyVersion: "23.0.0-rc.4",
expected: "v0.10.6",
},
{
mobyVersion: "23.0.0",
expected: "v0.10.6",
},
{
mobyVersion: "23.0.1",
expected: "v0.10.6+4f0ee09",
},
{
mobyVersion: "23.0.2-rc.1",
expected: "v0.10.6+70f2ad5",
},
{
mobyVersion: "23.0.3",
expected: "v0.10.6+70f2ad5",
},
{
mobyVersion: "23.0.5",
expected: "v0.10.6+d52b2d5",
},
{
mobyVersion: "23.0.7",
expected: "v0.10+unknown",
},
}
for _, tt := range cases {
tt := tt
t.Run(tt.mobyVersion, func(t *testing.T) {
bkVersion, err := resolveBuildKitVersion(tt.mobyVersion)
if tt.err {
require.Error(t, err)
return
}
require.NoError(t, err)
require.Equal(t, tt.expected, bkVersion)
})
}
}