gohelpers/pkg/system/os_test.go
2022-05-10 15:15:42 +08:00

57 lines
1.2 KiB
Go

package system
import (
"strings"
"testing"
"github.com/stretchr/testify/require"
)
func TestOsDetection(t *testing.T) {
osType, _, _ := ExecCommand("echo $OSTYPE")
if strings.Index(osType, "linux") != -1 {
require.Equal(t, true, IsLinux())
}
if strings.Index(osType, "darwin") != -1 {
require.Equal(t, true, IsMac())
}
}
func TestOsEnvOperation(t *testing.T) {
envNotExist := GetOsEnv("foo")
require.Equal(t, "", envNotExist)
SetOsEnv("foo", "foo_value")
envExist := GetOsEnv("foo")
require.Equal(t, "foo_value", envExist)
require.Equal(t, true, CompareOsEnv("foo", "foo_value"))
require.Equal(t, false, CompareOsEnv("foo", "abc"))
require.Equal(t, false, CompareOsEnv("abc", "abc"))
require.Equal(t, false, CompareOsEnv("abc", "abc"))
err := RemoveOsEnv("foo")
if err != nil {
t.Fail()
}
require.Equal(t, false, CompareOsEnv("foo", "foo_value"))
}
func TestExecCommand(t *testing.T) {
out, errout, err := ExecCommand("ls")
t.Log("std out: ", out)
t.Log("std err: ", errout)
require.Nil(t, err)
out, errout, err = ExecCommand("abc")
t.Log("std out: ", out)
t.Log("std err: ", errout)
if err != nil {
t.Logf("error: %v\n", err)
}
if !IsWindows() {
require.NotNil(t, err)
}
}