From fc976d9f89cf7a8005b085c26e13e3f2ff99dca9 Mon Sep 17 00:00:00 2001 From: muyangren2 <624376142@qq.com> Date: Tue, 2 Aug 2022 11:03:21 +0800 Subject: [PATCH] add test for GetNodeNameAndHostname --- cmd/kubeadm/app/phases/kubelet/flags_test.go | 82 ++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/cmd/kubeadm/app/phases/kubelet/flags_test.go b/cmd/kubeadm/app/phases/kubelet/flags_test.go index c70f65ef520ae..38744153779cd 100644 --- a/cmd/kubeadm/app/phases/kubelet/flags_test.go +++ b/cmd/kubeadm/app/phases/kubelet/flags_test.go @@ -17,7 +17,9 @@ limitations under the License. package kubelet import ( + "os" "reflect" + "strings" "testing" v1 "k8s.io/api/core/v1" @@ -100,3 +102,83 @@ func TestBuildKubeletArgMap(t *testing.T) { }) } } + +func TestGetNodeNameAndHostname(t *testing.T) { + hostname, err := os.Hostname() + if err != nil { + t.Errorf("unexpected error: %v", err) + } + + testCases := []struct { + name string + opts kubeletFlagsOpts + expectedNodeName string + expectedHostName string + }{ + { + name: "overridden hostname", + opts: kubeletFlagsOpts{ + nodeRegOpts: &kubeadmapi.NodeRegistrationOptions{ + KubeletExtraArgs: map[string]string{"hostname-override": "override-name"}, + }, + }, + expectedNodeName: "override-name", + expectedHostName: strings.ToLower(hostname), + }, + { + name: "overridden hostname uppercase", + opts: kubeletFlagsOpts{ + nodeRegOpts: &kubeadmapi.NodeRegistrationOptions{ + KubeletExtraArgs: map[string]string{"hostname-override": "OVERRIDE-NAME"}, + }, + }, + expectedNodeName: "OVERRIDE-NAME", + expectedHostName: strings.ToLower(hostname), + }, + { + name: "hostname contains only spaces", + opts: kubeletFlagsOpts{ + nodeRegOpts: &kubeadmapi.NodeRegistrationOptions{ + KubeletExtraArgs: map[string]string{"hostname-override": " "}, + }, + }, + expectedNodeName: " ", + expectedHostName: strings.ToLower(hostname), + }, + { + name: "empty parameter", + opts: kubeletFlagsOpts{ + nodeRegOpts: &kubeadmapi.NodeRegistrationOptions{ + KubeletExtraArgs: map[string]string{"hostname-override": ""}, + }, + }, + expectedNodeName: "", + expectedHostName: strings.ToLower(hostname), + }, + { + name: "nil parameter", + opts: kubeletFlagsOpts{ + nodeRegOpts: &kubeadmapi.NodeRegistrationOptions{ + KubeletExtraArgs: nil, + }, + }, + expectedNodeName: strings.ToLower(hostname), + expectedHostName: strings.ToLower(hostname), + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + nodeName, hostname, err := GetNodeNameAndHostname(tc.opts.nodeRegOpts) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if nodeName != tc.expectedNodeName { + t.Errorf("expected nodeName: %v, got %v", tc.expectedNodeName, nodeName) + } + if hostname != tc.expectedHostName { + t.Errorf("expected hostname: %v, got %v", tc.expectedHostName, hostname) + } + }) + } +}