130 lines
2.2 KiB
Go
130 lines
2.2 KiB
Go
package wasip1
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero/experimental/sys"
|
|
)
|
|
|
|
func TestToErrno(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input sys.Errno
|
|
expected Errno
|
|
}{
|
|
{
|
|
name: "zero is not an error",
|
|
expected: ErrnoSuccess,
|
|
},
|
|
{
|
|
name: "sys.EACCES",
|
|
input: sys.EACCES,
|
|
expected: ErrnoAcces,
|
|
},
|
|
{
|
|
name: "sys.EAGAIN",
|
|
input: sys.EAGAIN,
|
|
expected: ErrnoAgain,
|
|
},
|
|
{
|
|
name: "sys.EBADF",
|
|
input: sys.EBADF,
|
|
expected: ErrnoBadf,
|
|
},
|
|
{
|
|
name: "sys.EEXIST",
|
|
input: sys.EEXIST,
|
|
expected: ErrnoExist,
|
|
},
|
|
{
|
|
name: "sys.EFAULT",
|
|
input: sys.EFAULT,
|
|
expected: ErrnoFault,
|
|
},
|
|
{
|
|
name: "sys.EINTR",
|
|
input: sys.EINTR,
|
|
expected: ErrnoIntr,
|
|
},
|
|
{
|
|
name: "sys.EINVAL",
|
|
input: sys.EINVAL,
|
|
expected: ErrnoInval,
|
|
},
|
|
{
|
|
name: "sys.EIO",
|
|
input: sys.EIO,
|
|
expected: ErrnoIo,
|
|
},
|
|
{
|
|
name: "sys.EISDIR",
|
|
input: sys.EISDIR,
|
|
expected: ErrnoIsdir,
|
|
},
|
|
{
|
|
name: "sys.ELOOP",
|
|
input: sys.ELOOP,
|
|
expected: ErrnoLoop,
|
|
},
|
|
{
|
|
name: "sys.ENAMETOOLONG",
|
|
input: sys.ENAMETOOLONG,
|
|
expected: ErrnoNametoolong,
|
|
},
|
|
{
|
|
name: "sys.ENOENT",
|
|
input: sys.ENOENT,
|
|
expected: ErrnoNoent,
|
|
},
|
|
{
|
|
name: "sys.ENOSYS",
|
|
input: sys.ENOSYS,
|
|
expected: ErrnoNosys,
|
|
},
|
|
{
|
|
name: "sys.ENOTDIR",
|
|
input: sys.ENOTDIR,
|
|
expected: ErrnoNotdir,
|
|
},
|
|
{
|
|
name: "sys.ENOTEMPTY",
|
|
input: sys.ENOTEMPTY,
|
|
expected: ErrnoNotempty,
|
|
},
|
|
{
|
|
name: "sys.ENOTSOCK",
|
|
input: sys.ENOTSOCK,
|
|
expected: ErrnoNotsock,
|
|
},
|
|
{
|
|
name: "sys.ENOTSUP",
|
|
input: sys.ENOTSUP,
|
|
expected: ErrnoNotsup,
|
|
},
|
|
{
|
|
name: "sys.EPERM",
|
|
input: sys.EPERM,
|
|
expected: ErrnoPerm,
|
|
},
|
|
{
|
|
name: "sys.EROFS",
|
|
input: sys.EROFS,
|
|
expected: ErrnoRofs,
|
|
},
|
|
{
|
|
name: "sys.EqualErrno unexpected == ErrnoIo",
|
|
input: sys.Errno(0xfe),
|
|
expected: ErrnoIo,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
tc := tt
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if errno := ToErrno(tc.input); errno != tc.expected {
|
|
t.Fatalf("expected %s but got %s", ErrnoName(tc.expected), ErrnoName(errno))
|
|
}
|
|
})
|
|
}
|
|
}
|