github.com/tetratelabs/wazero@v1.2.1/internal/gojs/config/config_test.go (about) 1 package config 2 3 import ( 4 "runtime" 5 "strings" 6 "syscall" 7 "testing" 8 9 "github.com/tetratelabs/wazero/internal/testing/require" 10 ) 11 12 func TestConfig_Init(t *testing.T) { 13 t.Parallel() 14 15 t.Run("User", func(t *testing.T) { 16 c := NewConfig() 17 18 // values should be 0 which is root 19 require.Equal(t, 0, c.Uid) 20 require.Equal(t, 0, c.Gid) 21 require.Equal(t, 0, c.Euid) 22 require.Equal(t, []int{0}, c.Groups) 23 require.False(t, c.OsUser) 24 25 if runtime.GOOS != "windows" { 26 c.OsUser = true 27 require.NoError(t, c.Init()) 28 29 require.Equal(t, syscall.Getuid(), c.Uid) 30 require.Equal(t, syscall.Getgid(), c.Gid) 31 require.Equal(t, syscall.Geteuid(), c.Euid) 32 33 groups, err := syscall.Getgroups() 34 require.NoError(t, err) 35 require.Equal(t, groups, c.Groups) 36 } 37 }) 38 39 t.Run("Workdir", func(t *testing.T) { 40 c := NewConfig() 41 require.Equal(t, "/", c.Workdir) 42 require.False(t, c.OsWorkdir) 43 44 c.OsWorkdir = true 45 46 require.NoError(t, c.Init()) 47 actual := c.Workdir 48 49 // Check c:\ or d:\ aren't retained. 50 require.Equal(t, -1, strings.IndexByte(actual, '\\')) 51 require.Equal(t, -1, strings.IndexByte(actual, ':')) 52 }) 53 }