Skip to content

Commit c75a350

Browse files
committed
Avoided changing hostname and changing var names
1. Why is this change necessary ? The program avoids changing hostname and the variable name "Options" is changed to "options". Also, added more comments and formatted. Removed hostname in options since it will not be changed in tests. 2. How does this change address the issue ? While the program is being run, the hostname is not changed. And options can't be accessed outside(not exported). 3. How to verify this change ? Run, make test Signed-off-by: gkGaneshR <[email protected]>
1 parent a591ce5 commit c75a350

File tree

1 file changed

+25
-75
lines changed

1 file changed

+25
-75
lines changed

cmd/options/options_test.go

Lines changed: 25 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -17,73 +17,43 @@ limitations under the License.
1717
package options
1818

1919
import (
20-
"fmt"
2120
"os"
22-
"os/exec"
2321
"testing"
2422
)
2523

26-
type Options struct {
24+
type options struct {
2725
Nodename string
28-
Hostname string
2926
HostnameOverride string
3027
}
3128

3229
// TestSetNodeNameOrDie tests for permutations of nodename, hostname and hostnameoverride
3330
func TestSetNodeNameOrDie(t *testing.T) {
34-
options := map[string]struct {
35-
Expected Options
31+
option := map[string]struct {
32+
Expected options
3633
ObtainedNodeName string
3734
}{
3835
"Check Node and HostnameOverride only": {
39-
Expected: Options{
36+
Expected: options{
4037
Nodename: "my-node-name",
41-
Hostname: "",
4238
HostnameOverride: "override",
4339
},
4440
},
4541
"Check Nodename only": {
46-
Expected: Options{
42+
Expected: options{
4743
Nodename: "my-node-name",
48-
Hostname: "",
4944
HostnameOverride: "",
5045
},
5146
},
5247

5348
"Check HostnameOverride only": {
54-
Expected: Options{
49+
Expected: options{
5550
Nodename: "",
56-
Hostname: "",
5751
HostnameOverride: "override",
5852
},
5953
},
60-
"Check Hostname only": {
61-
Expected: Options{
54+
"Check empty": {
55+
Expected: options{
6256
Nodename: "",
63-
Hostname: "my-host-name",
64-
HostnameOverride: "",
65-
},
66-
},
67-
"Check Node, host and HostnameOverride only": {
68-
Expected: Options{
69-
Nodename: "my-node-name",
70-
Hostname: "my-host-name",
71-
HostnameOverride: "override",
72-
},
73-
},
74-
75-
"Check Host and HostnameOverride only": {
76-
Expected: Options{
77-
Nodename: "",
78-
Hostname: "my-host-name",
79-
HostnameOverride: "override",
80-
},
81-
},
82-
83-
"Check Node and hostname": {
84-
Expected: Options{
85-
Nodename: "my-node-name",
86-
Hostname: "my-host-name",
8757
HostnameOverride: "",
8858
},
8959
},
@@ -92,59 +62,39 @@ func TestSetNodeNameOrDie(t *testing.T) {
9262
orig_node_name := os.Getenv("NODE_NAME")
9363
orig_host_name, err := os.Hostname()
9464
if err != nil {
95-
fmt.Println("Unable to get hostname")
65+
t.Errorf("Unable to get hostname")
9666
}
9767

98-
for str, opt := range options {
99-
if opt.Expected.Nodename != "" {
100-
err = os.Setenv("NODE_NAME", opt.Expected.Nodename)
101-
if err != nil {
102-
t.Errorf("Unable to set env NODE_NAME")
103-
}
104-
}
68+
for str, opt := range option {
10569

106-
if opt.Expected.Hostname != "" {
107-
// Changing hostname
108-
cmd := exec.Command("hostname", opt.Expected.Hostname)
109-
_, err := cmd.CombinedOutput()
110-
if err != nil {
111-
// If changing hostname requires admin privilege
112-
cmd = exec.Command("sudo", "hostname", opt.Expected.Hostname)
113-
_, err := cmd.CombinedOutput()
114-
if err != nil {
115-
fmt.Println("Unable to change hostname")
116-
return
117-
}
118-
}
70+
// Setting with expected(desired) NODE_NAME env
71+
err = os.Setenv("NODE_NAME", opt.Expected.Nodename)
72+
if err != nil {
73+
t.Errorf("Unable to set env NODE_NAME")
11974
}
12075

12176
npdObj := NewNodeProblemDetectorOptions()
77+
78+
// Setting with expected(desired) HostnameOverride
12279
npdObj.HostnameOverride = opt.Expected.HostnameOverride
80+
12381
npdObj.SetNodeNameOrDie()
12482
opt.ObtainedNodeName = npdObj.NodeName
12583

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")
88+
}
89+
90+
// Checking for obtained node name
12691
if opt.ObtainedNodeName != opt.Expected.HostnameOverride &&
12792
opt.ObtainedNodeName != opt.Expected.Nodename &&
128-
opt.ObtainedNodeName != opt.Expected.Hostname {
93+
opt.ObtainedNodeName != orig_host_name {
12994
t.Errorf("Error at : %+v", str)
13095
t.Errorf("Wanted: %+v. \nGot: %+v", opt.Expected.Nodename, opt.ObtainedNodeName)
13196
}
13297

133-
err = os.Setenv("NODE_NAME", "")
134-
if err != nil {
135-
t.Errorf("Unable to set env NODE_NAME empty")
136-
}
137-
138-
}
139-
// Setting back the original attributes
140-
err = os.Setenv("NODE_NAME", orig_node_name)
141-
if err != nil {
142-
fmt.Println("Unable to set original : env NODE_NAME")
143-
}
144-
cmd := exec.Command("sudo", "hostname", orig_host_name)
145-
_, err = cmd.CombinedOutput()
146-
if err != nil {
147-
fmt.Println("Unable to set hostname")
14898
}
14999

150100
}

0 commit comments

Comments
 (0)