github.com/PandaGoAdmin/utils@v0.0.0-20211208134815-d5461603a00f/os_windows_test.go (about) 1 // +build windows 2 3 package kgo 4 5 import ( 6 "fmt" 7 "github.com/stretchr/testify/assert" 8 "io/ioutil" 9 "net" 10 "os" 11 "testing" 12 "time" 13 ) 14 15 func TestOS_Windows_IsWindows(t *testing.T) { 16 res := KOS.IsWindows() 17 assert.True(t, res) 18 } 19 20 func BenchmarkOS_Windows_IsWindows(b *testing.B) { 21 b.ResetTimer() 22 for i := 0; i < b.N; i++ { 23 KOS.IsWindows() 24 } 25 } 26 27 func TestOS_Windows_HomeDir(t *testing.T) { 28 res, err := KOS.HomeDir() 29 assert.Nil(t, err) 30 assert.NotEmpty(t, res) 31 } 32 33 func BenchmarkOS_Windows_HomeDir(b *testing.B) { 34 b.ResetTimer() 35 for i := 0; i < b.N; i++ { 36 _, _ = KOS.HomeDir() 37 } 38 } 39 40 func TestOS_Windows_Exec(t *testing.T) { 41 var ret int 42 var res []byte 43 var err []byte 44 45 ret, res, err = KOS.Exec(tesCommand03) 46 assert.Equal(t, ret, 0) 47 assert.NotEmpty(t, res) 48 assert.Empty(t, err) 49 } 50 51 func BenchmarkOS_Windows_Exec_Windows(b *testing.B) { 52 b.ResetTimer() 53 for i := 0; i < b.N; i++ { 54 _, _, _ = KOS.Exec(tesCommand03) 55 } 56 } 57 58 func TestOS_Windows_System(t *testing.T) { 59 var ret int 60 var res []byte 61 var err []byte 62 63 ret, res, err = KOS.System(tesCommand03) 64 assert.Equal(t, ret, 0) 65 assert.NotEmpty(t, res) 66 assert.Empty(t, err) 67 } 68 69 func BenchmarkOS_Windows_System(b *testing.B) { 70 b.ResetTimer() 71 for i := 0; i < b.N; i++ { 72 _, _, _ = KOS.System(tesCommand03) 73 } 74 } 75 76 func TestOS_Windows_MemoryUsage(t *testing.T) { 77 var used, free, total uint64 78 79 used, free, total = KOS.MemoryUsage(true) 80 assert.Greater(t, int(used), 1) 81 assert.Greater(t, int(free), 1) 82 assert.Greater(t, int(total), 1) 83 } 84 85 func BenchmarkOS_Windows_MemoryUsage(b *testing.B) { 86 b.ResetTimer() 87 for i := 0; i < b.N; i++ { 88 KOS.MemoryUsage(true) 89 } 90 } 91 92 func TestOS_Windows_CpuUsage(t *testing.T) { 93 var user, idle, total uint64 94 user, idle, total = KOS.CpuUsage() 95 assert.Greater(t, int(user), 1) 96 assert.Greater(t, int(idle), 1) 97 assert.Greater(t, int(total), 1) 98 } 99 100 func BenchmarkOS_Windows_CpuUsage(b *testing.B) { 101 b.ResetTimer() 102 for i := 0; i < b.N; i++ { 103 _, _, _ = KOS.CpuUsage() 104 } 105 } 106 107 func TestOS_Windows_DiskUsage(t *testing.T) { 108 var used, free, total uint64 109 used, free, total = KOS.DiskUsage("C:") 110 assert.Greater(t, int(used), 1) 111 assert.Greater(t, int(free), 1) 112 assert.Greater(t, int(total), 1) 113 } 114 115 func BenchmarkOS_Windows_DiskUsage(b *testing.B) { 116 b.ResetTimer() 117 for i := 0; i < b.N; i++ { 118 _, _, _ = KOS.DiskUsage("C:") 119 } 120 } 121 122 func TestOS_Windows_Uptime(t *testing.T) { 123 res, err := KOS.Uptime() 124 assert.Greater(t, int(res), 1) 125 assert.Nil(t, err) 126 } 127 128 func BenchmarkOS_Windows_Uptime(b *testing.B) { 129 b.ResetTimer() 130 for i := 0; i < b.N; i++ { 131 _, _ = KOS.Uptime() 132 } 133 } 134 135 func TestOS_Windows_GetBiosInfo(t *testing.T) { 136 res := KOS.GetBiosInfo() 137 assert.NotNil(t, res) 138 } 139 140 func BenchmarkOS_Windows_GetBiosInfo(b *testing.B) { 141 b.ResetTimer() 142 for i := 0; i < b.N; i++ { 143 KOS.GetBiosInfo() 144 } 145 } 146 147 func TestOS_Windows_GetBoardInfo(t *testing.T) { 148 res := KOS.GetBoardInfo() 149 assert.NotNil(t, res) 150 } 151 152 func BenchmarkOS_Windows_GetBoardInfo(b *testing.B) { 153 b.ResetTimer() 154 for i := 0; i < b.N; i++ { 155 KOS.GetBoardInfo() 156 } 157 } 158 159 func TestOS_Windows_GetCpuInfo(t *testing.T) { 160 res := KOS.GetCpuInfo() 161 assert.NotNil(t, res) 162 assert.NotEmpty(t, res.Vendor) 163 assert.NotEmpty(t, res.Model) 164 } 165 166 func BenchmarkOS_Windows_GetCpuInfo(b *testing.B) { 167 b.ResetTimer() 168 for i := 0; i < b.N; i++ { 169 KOS.GetCpuInfo() 170 } 171 } 172 173 func TestOS_Windows_IsProcessExists(t *testing.T) { 174 var res bool 175 176 pid := os.Getpid() 177 res = KOS.IsProcessExists(pid) 178 assert.True(t, res) 179 180 res = KOS.IsProcessExists(5) 181 assert.False(t, res) 182 183 res = KOS.IsProcessExists(-1) 184 assert.False(t, res) 185 } 186 187 func BenchmarkOS_Windows_IsProcessExists(b *testing.B) { 188 b.ResetTimer() 189 pid := os.Getpid() 190 for i := 0; i < b.N; i++ { 191 KOS.IsProcessExists(pid) 192 } 193 } 194 195 func TestOS_Windows_GetProcessExecPath(t *testing.T) { 196 var res string 197 198 pid := os.Getpid() 199 res = KOS.GetProcessExecPath(pid) 200 assert.NotEmpty(t, res) 201 } 202 203 func BenchmarkOS_Windows_GetProcessExecPath(b *testing.B) { 204 b.ResetTimer() 205 pid := os.Getpid() 206 for i := 0; i < b.N; i++ { 207 KOS.GetProcessExecPath(pid) 208 } 209 } 210 211 func TestOS_Windows_GetPidByPort(t *testing.T) { 212 time.AfterFunc(time.Millisecond*250, func() { 213 res := KOS.GetPidByPort(8899) 214 assert.Greater(t, res, 1) 215 216 KOS.GetPidByPort(80) 217 }) 218 219 //发送消息 220 time.AfterFunc(time.Millisecond*500, func() { 221 conn, err := net.Dial("tcp", ":8899") 222 assert.Nil(t, err) 223 224 defer func() { 225 _ = conn.Close() 226 }() 227 228 _, err = fmt.Fprintf(conn, helloEng) 229 assert.Nil(t, err) 230 }) 231 232 //开启监听端口 233 l, err := net.Listen("tcp", ":8899") 234 assert.Nil(t, err) 235 defer func() { 236 _ = l.Close() 237 }() 238 239 for { 240 conn, err := l.Accept() 241 if err != nil { 242 return 243 } 244 defer func() { 245 _ = conn.Close() 246 }() 247 248 //接收 249 buf, err := ioutil.ReadAll(conn) 250 assert.Nil(t, err) 251 252 msg := string(buf[:]) 253 assert.Equal(t, msg, helloEng) 254 return 255 } 256 } 257 258 func BenchmarkOS_Windows_GetPidByPort(b *testing.B) { 259 b.ResetTimer() 260 for i := 0; i < b.N; i++ { 261 KOS.GetPidByPort(8899) 262 } 263 }