Skip to content

Commit 821b8f4

Browse files
committed
Modify unit testing of cmd/options
1. Why is this change necessary ? Modify unit testing of options in such a way that we specify the WantedNodeName 2. How to verify this change ? Run, make test Signed-off-by: gkGaneshR <[email protected]>
1 parent ca76dc1 commit 821b8f4

File tree

1 file changed

+34
-50
lines changed

1 file changed

+34
-50
lines changed

cmd/options/options_test.go

Lines changed: 34 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -28,73 +28,57 @@ type options struct {
2828

2929
// TestSetNodeNameOrDie tests for permutations of nodename, hostname and hostnameoverride.
3030
func TestSetNodeNameOrDie(t *testing.T) {
31-
option := map[string]struct {
32-
Expected options
33-
ObtainedNodeName string
31+
hostName, err := os.Hostname()
32+
if err != nil {
33+
t.Errorf("Query hostname error: %v", err)
34+
}
35+
36+
uts := map[string]struct {
37+
WantedNodeName string
38+
Meta options
3439
}{
35-
"Check Node and HostnameOverride only": {
36-
Expected: options{
37-
Nodename: "my-node-name",
38-
HostnameOverride: "override",
40+
"Check hostname override only": {
41+
WantedNodeName: "hostname-override",
42+
Meta: options{
43+
Nodename: "node-name-env",
44+
HostnameOverride: "hostname-override",
3945
},
4046
},
41-
"Check Nodename only": {
42-
Expected: options{
43-
Nodename: "my-node-name",
47+
"Check hostname override and NDDE_NAME env": {
48+
WantedNodeName: "node-name-env",
49+
Meta: options{
50+
Nodename: "node-name-env",
4451
HostnameOverride: "",
4552
},
4653
},
47-
48-
"Check HostnameOverride only": {
49-
Expected: options{
50-
Nodename: "",
51-
HostnameOverride: "override",
52-
},
53-
},
54-
"Check empty": {
55-
Expected: options{
54+
"Check hostname override, NODE_NAME env and hostname": {
55+
WantedNodeName: hostName,
56+
Meta: options{
5657
Nodename: "",
5758
HostnameOverride: "",
5859
},
5960
},
6061
}
6162

62-
orig_node_name := os.Getenv("NODE_NAME")
63-
orig_host_name, err := os.Hostname()
64-
if err != nil {
65-
t.Errorf("Unable to get hostname")
66-
}
67-
68-
for str, opt := range option {
69-
70-
// Setting with expected(desired) NODE_NAME env.
71-
err = os.Setenv("NODE_NAME", opt.Expected.Nodename)
63+
for desc, ut := range uts {
64+
err := os.Unsetenv("NODE_NAME")
7265
if err != nil {
73-
t.Errorf("Unable to set env NODE_NAME")
66+
t.Errorf("Desc: %v. Unset NODE_NAME env error: %v", desc, err)
7467
}
7568

76-
npdObj := NewNodeProblemDetectorOptions()
77-
78-
// Setting with expected(desired) HostnameOverride.
79-
npdObj.HostnameOverride = opt.Expected.HostnameOverride
80-
81-
npdObj.SetNodeNameOrDie()
82-
opt.ObtainedNodeName = npdObj.NodeName
83-
84-
// Setting back the original node name.
85-
err = os.Setenv("NODE_NAME", orig_node_name)
86-
if err != nil {
87-
t.Errorf("Unable to set original : env NODE_NAME")
69+
if len(ut.Meta.Nodename) != 0 {
70+
err := os.Setenv("NODE_NAME", ut.Meta.Nodename)
71+
if err != nil {
72+
t.Errorf("Desc: %v. Set NODE_NAME env error: %v", desc, err)
73+
}
8874
}
8975

90-
// Checking for obtained node name.
91-
if opt.ObtainedNodeName != opt.Expected.HostnameOverride &&
92-
opt.ObtainedNodeName != opt.Expected.Nodename &&
93-
opt.ObtainedNodeName != orig_host_name {
94-
t.Errorf("Error at : %+v", str)
95-
t.Errorf("Wanted: %+v. \nGot: %+v", opt.Expected.Nodename, opt.ObtainedNodeName)
96-
}
76+
npdOpts := NewNodeProblemDetectorOptions()
77+
npdOpts.HostnameOverride = ut.Meta.HostnameOverride
78+
npdOpts.SetNodeNameOrDie()
9779

80+
if npdOpts.NodeName != ut.WantedNodeName {
81+
t.Errorf("Desc: %v. Set node name error. Wanted: %v. Got: %v", desc, ut.WantedNodeName, npdOpts.NodeName)
82+
}
9883
}
99-
10084
}

0 commit comments

Comments
 (0)