@@ -20,6 +20,7 @@ import (
20
20
"net/url"
21
21
"reflect"
22
22
"runtime"
23
+ "sort"
23
24
"strings"
24
25
"testing"
25
26
"time"
@@ -30,31 +31,64 @@ import (
30
31
)
31
32
32
33
func Test_getLoggingCmd (t * testing.T ) {
34
+ var emptyCmdEnv []string
33
35
tests := []struct {
34
- name string
35
- args nodeLogQuery
36
- wantLinux []string
37
- wantWindows []string
38
- wantOtherOS []string
36
+ name string
37
+ args nodeLogQuery
38
+ services []string
39
+ wantLinux []string
40
+ wantWindows []string
41
+ wantLinuxCmdEnv []string
42
+ wantWindowsCmdEnv []string
39
43
}{
40
44
{
41
- args : nodeLogQuery {},
42
- wantLinux : []string {"--utc" , "--no-pager" , "--output=short-precise" },
43
- wantWindows : []string {"-NonInteractive" , "-ExecutionPolicy" , "Bypass" , "-Command" , "Get-WinEvent -FilterHashtable @{LogName='Application'} | Sort-Object TimeCreated | Format-Table -AutoSize -Wrap" },
45
+ name : "basic" ,
46
+ args : nodeLogQuery {},
47
+ services : []string {},
48
+ wantLinux : []string {"--utc" , "--no-pager" , "--output=short-precise" },
49
+ wantLinuxCmdEnv : emptyCmdEnv ,
50
+ wantWindows : []string {"-NonInteractive" , "-ExecutionPolicy" , "Bypass" , "-Command" , "Get-WinEvent -FilterHashtable @{LogName='Application'} | Sort-Object TimeCreated | Format-Table -AutoSize -Wrap" },
51
+ wantWindowsCmdEnv : emptyCmdEnv ,
52
+ },
53
+ {
54
+ name : "two providers" ,
55
+ args : nodeLogQuery {},
56
+ services : []string {"p1" , "p2" },
57
+ wantLinux : []string {"--utc" , "--no-pager" , "--output=short-precise" , "--unit=p1" , "--unit=p2" },
58
+ wantLinuxCmdEnv : emptyCmdEnv ,
59
+ wantWindows : []string {"-NonInteractive" , "-ExecutionPolicy" , "Bypass" , "-Command" , "Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName=$Env:kubelet_provider0,$Env:kubelet_provider1} | Sort-Object TimeCreated | Format-Table -AutoSize -Wrap" },
60
+ wantWindowsCmdEnv : []string {"kubelet_provider0=p1" , "kubelet_provider1=p2" },
61
+ },
62
+ {
63
+ name : "empty provider" ,
64
+ args : nodeLogQuery {},
65
+ services : []string {"p1" , "" , "p2" },
66
+ wantLinux : []string {"--utc" , "--no-pager" , "--output=short-precise" , "--unit=p1" , "--unit=p2" },
67
+ wantLinuxCmdEnv : emptyCmdEnv ,
68
+ wantWindows : []string {"-NonInteractive" , "-ExecutionPolicy" , "Bypass" , "-Command" , "Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName=$Env:kubelet_provider0,$Env:kubelet_provider2} | Sort-Object TimeCreated | Format-Table -AutoSize -Wrap" },
69
+ wantWindowsCmdEnv : []string {"kubelet_provider0=p1" , "kubelet_provider2=p2" },
44
70
},
45
71
}
46
72
for _ , tt := range tests {
47
73
t .Run (tt .name , func (t * testing.T ) {
48
- _ , got , err := getLoggingCmd (& tt .args , []string {})
74
+ _ , got , gotCmdEnv , err := getLoggingCmd (& tt .args , tt .services )
75
+ sort .Strings (got )
76
+ sort .Strings (tt .wantLinux )
49
77
switch os := runtime .GOOS ; os {
50
78
case "linux" :
51
79
if ! reflect .DeepEqual (got , tt .wantLinux ) {
52
80
t .Errorf ("getLoggingCmd() = %v, want %v" , got , tt .wantLinux )
53
81
}
82
+ if ! reflect .DeepEqual (gotCmdEnv , tt .wantLinuxCmdEnv ) {
83
+ t .Errorf ("gotCmdEnv %v, wantLinuxCmdEnv %v" , gotCmdEnv , tt .wantLinuxCmdEnv )
84
+ }
54
85
case "windows" :
55
86
if ! reflect .DeepEqual (got , tt .wantWindows ) {
56
87
t .Errorf ("getLoggingCmd() = %v, want %v" , got , tt .wantWindows )
57
88
}
89
+ if ! reflect .DeepEqual (gotCmdEnv , tt .wantWindowsCmdEnv ) {
90
+ t .Errorf ("gotCmdEnv %v, wantWindowsCmdEnv %v" , gotCmdEnv , tt .wantWindowsCmdEnv )
91
+ }
58
92
default :
59
93
if err == nil {
60
94
t .Errorf ("getLoggingCmd() = %v, want err" , got )
0 commit comments