mirror of
https://github.com/rancher/plugins.git
synced 2025-07-09 05:04:51 +00:00
64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
package schemaversion
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
"github.com/Microsoft/hcsshim/internal/schema2"
|
|
"github.com/Microsoft/hcsshim/osversion"
|
|
_ "github.com/Microsoft/hcsshim/test/functional/manifest"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func init() {
|
|
logrus.SetOutput(ioutil.Discard)
|
|
}
|
|
|
|
func TestDetermineSchemaVersion(t *testing.T) {
|
|
osv := osversion.Get()
|
|
|
|
if osv.Build >= osversion.RS5 {
|
|
if sv := DetermineSchemaVersion(nil); !IsV21(sv) {
|
|
t.Fatalf("expected v2")
|
|
}
|
|
if sv := DetermineSchemaVersion(SchemaV21()); !IsV21(sv) {
|
|
t.Fatalf("expected requested v2")
|
|
}
|
|
if sv := DetermineSchemaVersion(SchemaV10()); !IsV10(sv) {
|
|
t.Fatalf("expected requested v1")
|
|
}
|
|
if sv := DetermineSchemaVersion(&hcsschema.Version{}); !IsV21(sv) {
|
|
t.Fatalf("expected requested v2")
|
|
}
|
|
|
|
if err := IsSupported(SchemaV21()); err != nil {
|
|
t.Fatalf("v2 expected to be supported")
|
|
}
|
|
if err := IsSupported(SchemaV10()); err != nil {
|
|
t.Fatalf("v1 expected to be supported")
|
|
}
|
|
|
|
} else {
|
|
if sv := DetermineSchemaVersion(nil); !IsV10(sv) {
|
|
t.Fatalf("expected v1")
|
|
}
|
|
// Pre RS5 will downgrade to v1 even if request v2
|
|
if sv := DetermineSchemaVersion(SchemaV21()); !IsV10(sv) {
|
|
t.Fatalf("expected requested v1")
|
|
}
|
|
if sv := DetermineSchemaVersion(SchemaV10()); !IsV10(sv) {
|
|
t.Fatalf("expected requested v1")
|
|
}
|
|
if sv := DetermineSchemaVersion(&hcsschema.Version{}); !IsV10(sv) {
|
|
t.Fatalf("expected requested v1")
|
|
}
|
|
|
|
if err := IsSupported(SchemaV21()); err == nil {
|
|
t.Fatalf("didn't expect v2 to be supported")
|
|
}
|
|
if err := IsSupported(SchemaV10()); err != nil {
|
|
t.Fatalf("v1 expected to be supported")
|
|
}
|
|
}
|
|
}
|