Merge pull request #111623 from muyangren2/addtest_flags

add test for GetNodeNameAndHostname
This commit is contained in:
Kubernetes Prow Robot 2022-08-02 05:31:45 -07:00 committed by GitHub
commit 7bcd739851
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)
}
})
}
}