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  }