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

     1  // +build linux darwin
     2  
     3  package kgo
     4  
     5  import (
     6  	"github.com/stretchr/testify/assert"
     7  	"os"
     8  	"testing"
     9  )
    10  
    11  func TestOS_Unix_NotWindows(t *testing.T) {
    12  	res := KOS.IsWindows()
    13  	assert.False(t, res)
    14  }
    15  
    16  func TestOS_Unix_HomeDir(t *testing.T) {
    17  	res, err := KOS.HomeDir()
    18  	assert.Nil(t, err)
    19  	assert.NotEmpty(t, res)
    20  }
    21  
    22  func BenchmarkOS_Unix_HomeDir(b *testing.B) {
    23  	b.ResetTimer()
    24  	for i := 0; i < b.N; i++ {
    25  		_, _ = KOS.HomeDir()
    26  	}
    27  }
    28  
    29  func TestOS_Unix_Exec(t *testing.T) {
    30  	var ret int
    31  	var res []byte
    32  	var err []byte
    33  
    34  	ret, res, err = KOS.Exec(tesCommand01)
    35  	assert.Equal(t, ret, 0)
    36  	assert.NotEmpty(t, res)
    37  	assert.Empty(t, err)
    38  
    39  	//错误的命令
    40  	ret, res, err = KOS.Exec(tesCommand02)
    41  	assert.Equal(t, ret, 1)
    42  	assert.Empty(t, res)
    43  	assert.NotEmpty(t, err)
    44  }
    45  
    46  func BenchmarkOS_Unix_Exec(b *testing.B) {
    47  	b.ResetTimer()
    48  	for i := 0; i < b.N; i++ {
    49  		_, _, _ = KOS.Exec(tesCommand01)
    50  	}
    51  }
    52  
    53  func TestOS_Unix_System(t *testing.T) {
    54  	var ret int
    55  	var res []byte
    56  	var err []byte
    57  
    58  	ret, res, err = KOS.System(tesCommand01)
    59  	assert.Equal(t, ret, 0)
    60  	assert.Empty(t, err)
    61  	assert.NotEmpty(t, res)
    62  
    63  	//错误的命令
    64  	ret, res, err = KOS.System(tesCommand02)
    65  	assert.Equal(t, ret, 1)
    66  	assert.NotEmpty(t, err)
    67  	assert.Empty(t, res)
    68  }
    69  
    70  func BenchmarkOS_Unix_System(b *testing.B) {
    71  	b.ResetTimer()
    72  	for i := 0; i < b.N; i++ {
    73  		_, _, _ = KOS.System(tesCommand01)
    74  	}
    75  }
    76  
    77  func TestOS_Unix_IsProcessExists(t *testing.T) {
    78  	var res bool
    79  
    80  	pid := os.Getpid()
    81  	res = KOS.IsProcessExists(pid)
    82  	assert.True(t, res)
    83  
    84  	res = KOS.IsProcessExists(-1)
    85  	assert.False(t, res)
    86  }
    87  
    88  func BenchmarkOS_Unix_IsProcessExists(b *testing.B) {
    89  	b.ResetTimer()
    90  	pid := os.Getpid()
    91  	for i := 0; i < b.N; i++ {
    92  		KOS.IsProcessExists(pid)
    93  	}
    94  }