smaller coverage improvement about ValidateVersion function

This commit is contained in:
stewart-yu 2018-08-15 08:39:59 +08:00
parent fbb2dfcc6a
commit 55fa6d5fdd
2 changed files with 17 additions and 8 deletions

View File

@ -170,14 +170,14 @@ func NewFeatureGate(f *FeatureList, value string) (map[string]bool, error) {
// ResolveFeatureGateDependencies resolve dependencies between feature gates
func ResolveFeatureGateDependencies(featureGate map[string]bool) {
// if HighAvailability enabled and StoreCertsInSecrets disabled, both StoreCertsInSecrets
// and SelfHosting should enabled
if Enabled(featureGate, HighAvailability) && !Enabled(featureGate, StoreCertsInSecrets) {
featureGate[StoreCertsInSecrets] = true
}
// if StoreCertsInSecrets enabled, SelfHosting should enabled
if Enabled(featureGate, StoreCertsInSecrets) {
featureGate[SelfHosting] = true
}
// if HighAvailability enabled, both StoreCertsInSecrets and SelfHosting should enabled
if Enabled(featureGate, HighAvailability) && !Enabled(featureGate, StoreCertsInSecrets) {
featureGate[SelfHosting] = true
featureGate[StoreCertsInSecrets] = true
}
}

View File

@ -21,8 +21,11 @@ import (
"testing"
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/kubernetes/pkg/util/version"
)
var TestMinVersion = version.MustParseSemantic("v1.10.0-alpha.1")
func TestKnownFeatures(t *testing.T) {
var someFeatures = FeatureList{
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
@ -121,7 +124,7 @@ func TestNewFeatureGate(t *testing.T) {
func TestValidateVersion(t *testing.T) {
var someFeatures = FeatureList{
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}, MinimumVersion: TestMinVersion},
}
var tests = []struct {
@ -133,10 +136,16 @@ func TestValidateVersion(t *testing.T) {
requestedFeatures: map[string]bool{"feature1": true},
expectedError: false,
},
{ //no min version
{ //min version but correct value given
requestedFeatures: map[string]bool{"feature2": true},
requestedVersion: "v1.10.0",
expectedError: false,
},
{ //min version and incorrect value given
requestedFeatures: map[string]bool{"feature2": true},
requestedVersion: "v1.9.2",
expectedError: true,
},
}
for _, test := range tests {