Merge pull request #72483 from bart0sh/PR0055-kubeadm-rest-app-use-T.Run

kubeadm: use T.Run API in app/
This commit is contained in:
Kubernetes Prow Robot 2019-01-02 21:10:57 -08:00 committed by GitHub
commit 98b3e42127
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 205 additions and 155 deletions

View File

@ -31,11 +31,13 @@ import (
func TestValidateKubeProxyConfiguration(t *testing.T) { func TestValidateKubeProxyConfiguration(t *testing.T) {
var tests = []struct { var tests = []struct {
name string
clusterConfig *kubeadm.ClusterConfiguration clusterConfig *kubeadm.ClusterConfiguration
msg string msg string
expectErr bool expectErr bool
}{ }{
{ {
name: "valid config",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -67,6 +69,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
expectErr: false, expectErr: false,
}, },
{ {
name: "invalid BindAddress",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -100,6 +103,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
expectErr: true, expectErr: true,
}, },
{ {
name: "invalid HealthzBindAddress",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -133,6 +137,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
expectErr: true, expectErr: true,
}, },
{ {
name: "invalid MetricsBindAddress",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -166,6 +171,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
expectErr: true, expectErr: true,
}, },
{ {
name: "invalid ClusterCIDR",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -199,6 +205,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
expectErr: true, expectErr: true,
}, },
{ {
name: "invalid UDPIdleTimeout",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -232,6 +239,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
expectErr: true, expectErr: true,
}, },
{ {
name: "invalid ConfigSyncPeriod",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{ KubeProxy: &kubeproxyconfig.KubeProxyConfiguration{
@ -266,6 +274,7 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
}, },
} }
for i, rt := range tests { for i, rt := range tests {
t.Run(rt.name, func(t *testing.T) {
err := ValidateKubeProxyConfiguration(rt.clusterConfig, nil).ToAggregate() err := ValidateKubeProxyConfiguration(rt.clusterConfig, nil).ToAggregate()
if (err != nil) != rt.expectErr { if (err != nil) != rt.expectErr {
t.Errorf("%d failed ValidateKubeProxyConfiguration: expected error %t, got error %t", i, rt.expectErr, err != nil) t.Errorf("%d failed ValidateKubeProxyConfiguration: expected error %t, got error %t", i, rt.expectErr, err != nil)
@ -273,15 +282,18 @@ func TestValidateKubeProxyConfiguration(t *testing.T) {
if err != nil && !strings.Contains(err.Error(), rt.msg) { if err != nil && !strings.Contains(err.Error(), rt.msg) {
t.Errorf("%d failed ValidateKubeProxyConfiguration: unexpected error: %v, expected: %s", i, err, rt.msg) t.Errorf("%d failed ValidateKubeProxyConfiguration: unexpected error: %v, expected: %s", i, err, rt.msg)
} }
})
} }
} }
func TestValidateKubeletConfiguration(t *testing.T) { func TestValidateKubeletConfiguration(t *testing.T) {
var tests = []struct { var tests = []struct {
name string
clusterConfig *kubeadm.ClusterConfiguration clusterConfig *kubeadm.ClusterConfiguration
expectErr bool expectErr bool
}{ }{
{ {
name: "valid configuration",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
Kubelet: &kubeletconfig.KubeletConfiguration{ Kubelet: &kubeletconfig.KubeletConfiguration{
@ -314,6 +326,7 @@ func TestValidateKubeletConfiguration(t *testing.T) {
expectErr: false, expectErr: false,
}, },
{ {
name: "invalid configuration",
clusterConfig: &kubeadm.ClusterConfiguration{ clusterConfig: &kubeadm.ClusterConfiguration{
ComponentConfigs: kubeadm.ComponentConfigs{ ComponentConfigs: kubeadm.ComponentConfigs{
Kubelet: &kubeletconfig.KubeletConfiguration{ Kubelet: &kubeletconfig.KubeletConfiguration{
@ -345,9 +358,11 @@ func TestValidateKubeletConfiguration(t *testing.T) {
}, },
} }
for i, rt := range tests { for i, rt := range tests {
t.Run(rt.name, func(t *testing.T) {
err := ValidateKubeletConfiguration(rt.clusterConfig, nil).ToAggregate() err := ValidateKubeletConfiguration(rt.clusterConfig, nil).ToAggregate()
if (err != nil) != rt.expectErr { if (err != nil) != rt.expectErr {
t.Errorf("%d failed ValidateKubeletConfiguration: expected error %t, got error %t", i, rt.expectErr, err != nil) t.Errorf("%d failed ValidateKubeletConfiguration: expected error %t, got error %t", i, rt.expectErr, err != nil)
} }
})
} }
} }

View File

@ -100,6 +100,7 @@ func TestGetStaticPodFilepath(t *testing.T) {
}, },
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(rt.componentName, func(t *testing.T) {
actual := GetStaticPodFilepath(rt.componentName, rt.manifestsDir) actual := GetStaticPodFilepath(rt.componentName, rt.manifestsDir)
if actual != rt.expected { if actual != rt.expected {
t.Errorf( t.Errorf(
@ -108,6 +109,7 @@ func TestGetStaticPodFilepath(t *testing.T) {
actual, actual,
) )
} }
})
} }
} }
@ -133,6 +135,7 @@ func TestAddSelfHostedPrefix(t *testing.T) {
}, },
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(rt.componentName, func(t *testing.T) {
actual := AddSelfHostedPrefix(rt.componentName) actual := AddSelfHostedPrefix(rt.componentName)
if actual != rt.expected { if actual != rt.expected {
t.Errorf( t.Errorf(
@ -141,6 +144,7 @@ func TestAddSelfHostedPrefix(t *testing.T) {
actual, actual,
) )
} }
})
} }
} }
@ -182,6 +186,7 @@ func TestEtcdSupportedVersion(t *testing.T) {
}, },
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(rt.kubernetesVersion, func(t *testing.T) {
actualVersion, actualError := EtcdSupportedVersion(rt.kubernetesVersion) actualVersion, actualError := EtcdSupportedVersion(rt.kubernetesVersion)
if actualError != nil { if actualError != nil {
if rt.expectedError == nil { if rt.expectedError == nil {
@ -204,6 +209,7 @@ func TestEtcdSupportedVersion(t *testing.T) {
) )
} }
} }
})
} }
} }
@ -222,6 +228,7 @@ func TestGetKubeDNSVersion(t *testing.T) {
}, },
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(string(rt.dns), func(t *testing.T) {
actualDNSVersion := GetDNSVersion(rt.dns) actualDNSVersion := GetDNSVersion(rt.dns)
if actualDNSVersion != rt.expected { if actualDNSVersion != rt.expected {
t.Errorf( t.Errorf(
@ -230,5 +237,6 @@ func TestGetKubeDNSVersion(t *testing.T) {
actualDNSVersion, actualDNSVersion,
) )
} }
})
} }
} }

View File

@ -24,11 +24,17 @@ import (
func TestFor(t *testing.T) { func TestFor(t *testing.T) {
tests := []struct { tests := []struct {
name string
d kubeadm.JoinConfiguration d kubeadm.JoinConfiguration
expect bool expect bool
}{ }{
{d: kubeadm.JoinConfiguration{}, expect: false},
{ {
name: "default Discovery",
d: kubeadm.JoinConfiguration{},
expect: false,
},
{
name: "file Discovery with a path",
d: kubeadm.JoinConfiguration{ d: kubeadm.JoinConfiguration{
Discovery: kubeadm.Discovery{ Discovery: kubeadm.Discovery{
File: &kubeadm.FileDiscovery{ File: &kubeadm.FileDiscovery{
@ -39,6 +45,7 @@ func TestFor(t *testing.T) {
expect: false, expect: false,
}, },
{ {
name: "file Discovery with an url",
d: kubeadm.JoinConfiguration{ d: kubeadm.JoinConfiguration{
Discovery: kubeadm.Discovery{ Discovery: kubeadm.Discovery{
File: &kubeadm.FileDiscovery{ File: &kubeadm.FileDiscovery{
@ -49,6 +56,7 @@ func TestFor(t *testing.T) {
expect: false, expect: false,
}, },
{ {
name: "BootstrapTokenDiscovery",
d: kubeadm.JoinConfiguration{ d: kubeadm.JoinConfiguration{
Discovery: kubeadm.Discovery{ Discovery: kubeadm.Discovery{
BootstrapToken: &kubeadm.BootstrapTokenDiscovery{ BootstrapToken: &kubeadm.BootstrapTokenDiscovery{
@ -60,6 +68,7 @@ func TestFor(t *testing.T) {
}, },
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(rt.name, func(t *testing.T) {
_, actual := For(&rt.d) _, actual := For(&rt.d)
if (actual == nil) != rt.expect { if (actual == nil) != rt.expect {
t.Errorf( t.Errorf(
@ -68,5 +77,6 @@ func TestFor(t *testing.T) {
(actual == nil), (actual == nil),
) )
} }
})
} }
} }

View File

@ -108,20 +108,21 @@ func TestNewFeatureGate(t *testing.T) {
} }
for _, test := range tests { for _, test := range tests {
t.Run(test.value, func(t *testing.T) {
r, err := NewFeatureGate(&someFeatures, test.value) r, err := NewFeatureGate(&someFeatures, test.value)
if !test.expectedError && err != nil { if !test.expectedError && err != nil {
t.Errorf("NewFeatureGate failed when not expected: %v", err) t.Errorf("NewFeatureGate failed when not expected: %v", err)
continue return
} else if test.expectedError && err == nil { } else if test.expectedError && err == nil {
t.Error("NewFeatureGate didn't failed when expected") t.Error("NewFeatureGate didn't failed when expected")
continue return
} }
if !reflect.DeepEqual(r, test.expectedFeaturesGate) { if !reflect.DeepEqual(r, test.expectedFeaturesGate) {
t.Errorf("NewFeatureGate returned a unexpected value") t.Errorf("NewFeatureGate returned a unexpected value")
} }
})
} }
} }
@ -132,20 +133,24 @@ func TestValidateVersion(t *testing.T) {
} }
var tests = []struct { var tests = []struct {
name string
requestedVersion string requestedVersion string
requestedFeatures map[string]bool requestedFeatures map[string]bool
expectedError bool expectedError bool
}{ }{
{ //no min version {
name: "no min version",
requestedFeatures: map[string]bool{"feature1": true}, requestedFeatures: map[string]bool{"feature1": true},
expectedError: false, expectedError: false,
}, },
{ //min version but correct value given {
name: "min version but correct value given",
requestedFeatures: map[string]bool{"feature2": true}, requestedFeatures: map[string]bool{"feature2": true},
requestedVersion: constants.MinimumControlPlaneVersion.String(), requestedVersion: constants.MinimumControlPlaneVersion.String(),
expectedError: false, expectedError: false,
}, },
{ //min version and incorrect value given {
name: "min version and incorrect value given",
requestedFeatures: map[string]bool{"feature2": true}, requestedFeatures: map[string]bool{"feature2": true},
requestedVersion: "v1.11.2", requestedVersion: "v1.11.2",
expectedError: true, expectedError: true,
@ -153,14 +158,16 @@ func TestValidateVersion(t *testing.T) {
} }
for _, test := range tests { for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
err := ValidateVersion(someFeatures, test.requestedFeatures, test.requestedVersion) err := ValidateVersion(someFeatures, test.requestedFeatures, test.requestedVersion)
if !test.expectedError && err != nil { if !test.expectedError && err != nil {
t.Errorf("ValidateVersion failed when not expected: %v", err) t.Errorf("ValidateVersion failed when not expected: %v", err)
continue return
} else if test.expectedError && err == nil { } else if test.expectedError && err == nil {
t.Error("ValidateVersion didn't failed when expected") t.Error("ValidateVersion didn't failed when expected")
continue return
} }
})
} }
} }
@ -185,23 +192,28 @@ func TestCheckDeprecatedFlags(t *testing.T) {
} }
var tests = []struct { var tests = []struct {
name string
features map[string]bool features map[string]bool
expectedMsg map[string]string expectedMsg map[string]string
}{ }{
{ // feature deprecated {
name: "deprecated feature",
features: map[string]bool{"deprecated": true}, features: map[string]bool{"deprecated": true},
expectedMsg: map[string]string{"deprecated": dummyMessage}, expectedMsg: map[string]string{"deprecated": dummyMessage},
}, },
{ // valid feature {
name: "valid feature",
features: map[string]bool{"feature1": true}, features: map[string]bool{"feature1": true},
expectedMsg: map[string]string{}, expectedMsg: map[string]string{},
}, },
} }
for _, test := range tests { for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
msg := CheckDeprecatedFlags(&someFeatures, test.features) msg := CheckDeprecatedFlags(&someFeatures, test.features)
if !reflect.DeepEqual(test.expectedMsg, msg) { if !reflect.DeepEqual(test.expectedMsg, msg) {
t.Error("CheckDeprecatedFlags didn't returned expected message") t.Error("CheckDeprecatedFlags didn't returned expected message")
} }
})
} }
} }

View File

@ -18,6 +18,7 @@ package preflight
import ( import (
"bytes" "bytes"
"fmt"
"io/ioutil" "io/ioutil"
"strings" "strings"
"testing" "testing"
@ -658,6 +659,7 @@ func TestKubeletVersionCheck(t *testing.T) {
} }
for _, tc := range cases { for _, tc := range cases {
t.Run(tc.kubeletVersion, func(t *testing.T) {
fcmd := fakeexec.FakeCmd{ fcmd := fakeexec.FakeCmd{
CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{
func() ([]byte, error) { return []byte("Kubernetes " + tc.kubeletVersion), nil }, func() ([]byte, error) { return []byte("Kubernetes " + tc.kubeletVersion), nil },
@ -682,9 +684,8 @@ func TestKubeletVersionCheck(t *testing.T) {
case errors == nil && tc.expectErrors: case errors == nil && tc.expectErrors:
t.Errorf("KubeletVersionCheck: expected errors for kubelet version %q and Kubernetes version %q but got nothing", tc.kubeletVersion, tc.k8sVersion) t.Errorf("KubeletVersionCheck: expected errors for kubelet version %q and Kubernetes version %q but got nothing", tc.kubeletVersion, tc.k8sVersion)
} }
})
} }
} }
func TestSetHasItemOrAll(t *testing.T) { func TestSetHasItemOrAll(t *testing.T) {
@ -702,6 +703,7 @@ func TestSetHasItemOrAll(t *testing.T) {
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(rt.testString, func(t *testing.T) {
result := setHasItemOrAll(rt.ignoreSet, rt.testString) result := setHasItemOrAll(rt.ignoreSet, rt.testString)
if result != rt.expectedResult { if result != rt.expectedResult {
t.Errorf( t.Errorf(
@ -711,6 +713,7 @@ func TestSetHasItemOrAll(t *testing.T) {
rt.testString, rt.testString,
) )
} }
})
} }
} }
@ -790,6 +793,7 @@ func TestNumCPUCheck(t *testing.T) {
} }
for _, rt := range tests { for _, rt := range tests {
t.Run(fmt.Sprintf("number of CPUs: %d", rt.numCPU), func(t *testing.T) {
warnings, errors := NumCPUCheck{NumCPU: rt.numCPU}.Check() warnings, errors := NumCPUCheck{NumCPU: rt.numCPU}.Check()
if len(warnings) != rt.numWarnings { if len(warnings) != rt.numWarnings {
t.Errorf("expected %d warning(s) but got %d: %q", rt.numWarnings, len(warnings), warnings) t.Errorf("expected %d warning(s) but got %d: %q", rt.numWarnings, len(warnings), warnings)
@ -797,5 +801,6 @@ func TestNumCPUCheck(t *testing.T) {
if len(errors) != rt.numErrors { if len(errors) != rt.numErrors {
t.Errorf("expected %d warning(s) but got %d: %q", rt.numErrors, len(errors), errors) t.Errorf("expected %d warning(s) but got %d: %q", rt.numErrors, len(errors), errors)
} }
})
} }
} }

View File

@ -40,6 +40,7 @@ func TestGetKubeletVersion(t *testing.T) {
} }
for _, tc := range cases { for _, tc := range cases {
t.Run(tc.output, func(t *testing.T) {
fcmd := fakeexec.FakeCmd{ fcmd := fakeexec.FakeCmd{
CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{
func() ([]byte, error) { return []byte(tc.output), tc.err }, func() ([]byte, error) { return []byte(tc.output), tc.err },
@ -59,7 +60,6 @@ func TestGetKubeletVersion(t *testing.T) {
case ver != nil && ver.String() != tc.expected: case ver != nil && ver.String() != tc.expected:
t.Errorf("GetKubeletVersion: unexpected version result for key %q. Expected: %q Actual: %q", tc.output, tc.expected, ver) t.Errorf("GetKubeletVersion: unexpected version result for key %q. Expected: %q Actual: %q", tc.output, tc.expected, ver)
} }
})
} }
} }