github.com/kelleygo/clashcore@v1.0.2/common/cmd/cmd_test.go (about)

     1  package cmd
     2  
     3  import (
     4  	"runtime"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestSplitArgs(t *testing.T) {
    11  	args := splitArgs("ls")
    12  	args1 := splitArgs("ls -la")
    13  	args2 := splitArgs("bash -c ls")
    14  	args3 := splitArgs("bash -c ls -lahF | grep 'cmd'")
    15  
    16  	assert.Equal(t, 1, len(args))
    17  	assert.Equal(t, 2, len(args1))
    18  	assert.Equal(t, 3, len(args2))
    19  	assert.Equal(t, 3, len(args3))
    20  }
    21  
    22  func TestExecCmd(t *testing.T) {
    23  	if runtime.GOOS == "windows" {
    24  		_, err := ExecCmd("cmd -c 'dir'")
    25  		assert.Nil(t, err)
    26  		return
    27  	}
    28  
    29  	_, err := ExecCmd("ls")
    30  	_, err1 := ExecCmd("ls -la")
    31  	_, err2 := ExecCmd("bash -c ls")
    32  	_, err3 := ExecCmd("bash -c ls -la")
    33  	_, err4 := ExecCmd("bash -c ls -la | grep 'cmd'")
    34  
    35  	assert.Nil(t, err)
    36  	assert.Nil(t, err1)
    37  	assert.Nil(t, err2)
    38  	assert.Nil(t, err3)
    39  	assert.Nil(t, err4)
    40  }