This implements host-side umask for gojs, which allows `os.TestMkdirStickyUmask` to pass. Signed-off-by: Adrian Cole <adrian@tetrate.io>
29 lines
586 B
Go
29 lines
586 B
Go
package custom
|
|
|
|
import (
|
|
"io/fs"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero/internal/testing/require"
|
|
)
|
|
|
|
func Test_ToJsMode(t *testing.T) {
|
|
t.Run("/dev/null", func(t *testing.T) {
|
|
st, err := os.Stat(os.DevNull)
|
|
require.NoError(t, err)
|
|
|
|
fm := ToJsMode(st.Mode())
|
|
|
|
// Should be a character device, and retain the permissions.
|
|
require.Equal(t, S_IFCHR|uint32(st.Mode().Perm()), fm)
|
|
})
|
|
}
|
|
|
|
func Test_FromJsMode(t *testing.T) {
|
|
t.Run("sticky bit", func(t *testing.T) {
|
|
jsMode := ToJsMode(0o0755 | fs.ModeSticky)
|
|
require.Equal(t, 0o0755|S_IFREG|S_ISVTX, jsMode)
|
|
})
|
|
}
|