From 180c2332bf857999885b13af64dbfd799a7f5f66 Mon Sep 17 00:00:00 2001 From: "xin.li" Date: Sat, 17 Jun 2023 19:33:31 +0800 Subject: [PATCH] [UT] increase coverage ut for kubeadm/app/features Signed-off-by: xin.li --- cmd/kubeadm/app/features/features.go | 9 ------- cmd/kubeadm/app/features/features_test.go | 33 ++++++++++++++++++++++- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/cmd/kubeadm/app/features/features.go b/cmd/kubeadm/app/features/features.go index ccbab037955..cee4e65dd3d 100644 --- a/cmd/kubeadm/app/features/features.go +++ b/cmd/kubeadm/app/features/features.go @@ -102,15 +102,6 @@ func Supports(featureList FeatureList, featureName string) bool { return false } -// Keys returns a slice of feature names for a given feature set -func Keys(featureList FeatureList) []string { - var list []string - for k := range featureList { - list = append(list, k) - } - return list -} - // KnownFeatures returns a slice of strings describing the FeatureList features. func KnownFeatures(f *FeatureList) []string { var known []string diff --git a/cmd/kubeadm/app/features/features_test.go b/cmd/kubeadm/app/features/features_test.go index 82dcf03fbc8..bf6010b3c62 100644 --- a/cmd/kubeadm/app/features/features_test.go +++ b/cmd/kubeadm/app/features/features_test.go @@ -207,13 +207,44 @@ func TestCheckDeprecatedFlags(t *testing.T) { features: map[string]bool{"feature1": true}, expectedMsg: map[string]string{}, }, + { + name: "invalid feature", + features: map[string]bool{"feature2": true}, + expectedMsg: map[string]string{"feature2": "Unknown feature gate flag: feature2"}, + }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { msg := CheckDeprecatedFlags(&someFeatures, test.features) if !reflect.DeepEqual(test.expectedMsg, msg) { - t.Error("CheckDeprecatedFlags didn't returned expected message") + t.Errorf("CheckDeprecatedFlags() = %v, want %v", msg, test.expectedMsg) + } + }) + } +} + +func TestSupports(t *testing.T) { + tests := []struct { + name string + featureName string + want bool + }{ + { + name: "the feature is not supported", + featureName: "foo", + want: false, + }, + { + name: "the feature is supported", + featureName: PublicKeysECDSA, + want: true, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + if got := Supports(InitFeatureGates, test.featureName); got != test.want { + t.Errorf("Supports() = %v, want %v", got, test.want) } }) }