windows: The DefaultSpec platform should match the Default matcher
The Windows Default matcher also checks the the OS Version prefix, however, the platforms.DefaultSpec does not include it, which means that it won't match the matcher. This solves the issue by adding the OS Version to the DefaultSpec. Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
This commit is contained in:
@@ -17,13 +17,36 @@
|
||||
package platforms
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"sort"
|
||||
"testing"
|
||||
|
||||
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
func TestDefault(t *testing.T) {
|
||||
major, minor, build := windows.RtlGetNtVersionNumbers()
|
||||
expected := imagespec.Platform{
|
||||
OS: runtime.GOOS,
|
||||
Architecture: runtime.GOARCH,
|
||||
OSVersion: fmt.Sprintf("%d.%d.%d", major, minor, build),
|
||||
Variant: cpuVariant(),
|
||||
}
|
||||
p := DefaultSpec()
|
||||
if !reflect.DeepEqual(p, expected) {
|
||||
t.Fatalf("default platform not as expected: %#v != %#v", p, expected)
|
||||
}
|
||||
|
||||
s := DefaultString()
|
||||
if s != Format(p) {
|
||||
t.Fatalf("default specifier should match formatted default spec: %v != %v", s, p)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchComparerMatch(t *testing.T) {
|
||||
m := matchComparer{
|
||||
defaults: Only(imagespec.Platform{
|
||||
@@ -36,6 +59,10 @@ func TestMatchComparerMatch(t *testing.T) {
|
||||
platform imagespec.Platform
|
||||
match bool
|
||||
}{
|
||||
{
|
||||
platform: DefaultSpec(),
|
||||
match: true,
|
||||
},
|
||||
{
|
||||
platform: imagespec.Platform{
|
||||
Architecture: "amd64",
|
||||
|
||||
Reference in New Issue
Block a user