github.com/PandaGoAdmin/utils@v0.0.0-20211208134815-d5461603a00f/os_darwin_test.go (about)

     1  // +build darwin
     2  
     3  package kgo
     4  
     5  import (
     6  	"fmt"
     7  	"github.com/stretchr/testify/assert"
     8  	"io/ioutil"
     9  	"net"
    10  	"testing"
    11  	"time"
    12  )
    13  
    14  func TestOS_Darwin_IsMac(t *testing.T) {
    15  	res := KOS.IsMac()
    16  	assert.True(t, res)
    17  }
    18  
    19  func BenchmarkOS_Darwin_IsMac(b *testing.B) {
    20  	b.ResetTimer()
    21  	for i := 0; i < b.N; i++ {
    22  		KOS.IsMac()
    23  	}
    24  }
    25  
    26  func TestOS_Darwin_MemoryUsage(t *testing.T) {
    27  	var used, free, total uint64
    28  
    29  	used, free, total = KOS.MemoryUsage(true)
    30  	assert.Greater(t, int(used), 1)
    31  	assert.Greater(t, int(free), 1)
    32  	assert.Greater(t, int(total), 1)
    33  }
    34  
    35  func BenchmarkOS_Darwin_MemoryUsage(b *testing.B) {
    36  	b.ResetTimer()
    37  	for i := 0; i < b.N; i++ {
    38  		KOS.MemoryUsage(true)
    39  	}
    40  }
    41  
    42  func TestOS_Darwin_DiskUsage(t *testing.T) {
    43  	var used, free, total uint64
    44  	used, free, total = KOS.DiskUsage("/")
    45  	assert.Greater(t, int(used), 1)
    46  	assert.Greater(t, int(free), 1)
    47  	assert.Greater(t, int(total), 1)
    48  }
    49  
    50  func BenchmarkOS_Darwin_DiskUsage(b *testing.B) {
    51  	b.ResetTimer()
    52  	for i := 0; i < b.N; i++ {
    53  		_, _, _ = KOS.DiskUsage("/")
    54  	}
    55  }
    56  
    57  func TestOS_Darwin_Uptime(t *testing.T) {
    58  	res, err := KOS.Uptime()
    59  	assert.Greater(t, int(res), 1)
    60  	assert.Nil(t, err)
    61  }
    62  
    63  func BenchmarkOS_Darwin_Uptime(b *testing.B) {
    64  	b.ResetTimer()
    65  	for i := 0; i < b.N; i++ {
    66  		_, _ = KOS.Uptime()
    67  	}
    68  }
    69  
    70  func TestOS_Darwin_GetBiosInfo(t *testing.T) {
    71  	res := KOS.GetBiosInfo()
    72  	assert.NotNil(t, res)
    73  	assert.NotEmpty(t, res.Version)
    74  }
    75  
    76  func BenchmarkOS_Darwin_GetBiosInfo(b *testing.B) {
    77  	b.ResetTimer()
    78  	for i := 0; i < b.N; i++ {
    79  		KOS.GetBiosInfo()
    80  	}
    81  }
    82  
    83  func TestOS_Darwin_GetBoardInfo(t *testing.T) {
    84  	res := KOS.GetBoardInfo()
    85  	assert.NotNil(t, res)
    86  	assert.NotEmpty(t, res.Name)
    87  	assert.NotEmpty(t, res.Version)
    88  	assert.NotEmpty(t, res.Serial)
    89  }
    90  
    91  func BenchmarkOS_Darwin_GetBoardInfo(b *testing.B) {
    92  	b.ResetTimer()
    93  	for i := 0; i < b.N; i++ {
    94  		KOS.GetBoardInfo()
    95  	}
    96  }
    97  
    98  func TestOS_Darwin_GetCpuInfo(t *testing.T) {
    99  	res := KOS.GetCpuInfo()
   100  	assert.NotNil(t, res)
   101  	assert.NotEmpty(t, res.Vendor)
   102  	assert.NotEmpty(t, res.Model)
   103  }
   104  
   105  func BenchmarkOS_Darwin_GetCpuInfo(b *testing.B) {
   106  	b.ResetTimer()
   107  	for i := 0; i < b.N; i++ {
   108  		KOS.GetCpuInfo()
   109  	}
   110  }
   111  
   112  func TestOS_Darwin_GetPidByPort(t *testing.T) {
   113  	time.AfterFunc(time.Millisecond*250, func() {
   114  		res := KOS.GetPidByPort(8899)
   115  		assert.Greater(t, res, 1)
   116  
   117  		KOS.GetPidByPort(80)
   118  	})
   119  
   120  	//发送消息
   121  	time.AfterFunc(time.Millisecond*500, func() {
   122  		conn, err := net.Dial("tcp", ":8899")
   123  		assert.Nil(t, err)
   124  
   125  		defer func() {
   126  			_ = conn.Close()
   127  		}()
   128  
   129  		_, err = fmt.Fprintf(conn, helloEng)
   130  		assert.Nil(t, err)
   131  	})
   132  
   133  	//开启监听端口
   134  	l, err := net.Listen("tcp", ":8899")
   135  	assert.Nil(t, err)
   136  	defer func() {
   137  		_ = l.Close()
   138  	}()
   139  
   140  	for {
   141  		conn, err := l.Accept()
   142  		if err != nil {
   143  			return
   144  		}
   145  		defer func() {
   146  			_ = conn.Close()
   147  		}()
   148  
   149  		//接收
   150  		buf, err := ioutil.ReadAll(conn)
   151  		assert.Nil(t, err)
   152  
   153  		msg := string(buf[:])
   154  		assert.Equal(t, msg, helloEng)
   155  		return
   156  	}
   157  }
   158  
   159  func BenchmarkOS_Darwin_GetPidByPort(b *testing.B) {
   160  	b.ResetTimer()
   161  	for i := 0; i < b.N; i++ {
   162  		KOS.GetPidByPort(8899)
   163  	}
   164  }