github.com/tetratelabs/wazero@v1.2.1/internal/wasip1/errno_test.go (about) 1 package wasip1 2 3 import ( 4 "syscall" 5 "testing" 6 ) 7 8 func TestToErrno(t *testing.T) { 9 tests := []struct { 10 name string 11 input syscall.Errno 12 expected Errno 13 }{ 14 { 15 name: "zero is not an error", 16 expected: ErrnoSuccess, 17 }, 18 { 19 name: "syscall.EACCES", 20 input: syscall.EACCES, 21 expected: ErrnoAcces, 22 }, 23 { 24 name: "syscall.EAGAIN", 25 input: syscall.EAGAIN, 26 expected: ErrnoAgain, 27 }, 28 { 29 name: "syscall.EBADF", 30 input: syscall.EBADF, 31 expected: ErrnoBadf, 32 }, 33 { 34 name: "syscall.EEXIST", 35 input: syscall.EEXIST, 36 expected: ErrnoExist, 37 }, 38 { 39 name: "syscall.EFAULT", 40 input: syscall.EFAULT, 41 expected: ErrnoFault, 42 }, 43 { 44 name: "syscall.EINTR", 45 input: syscall.EINTR, 46 expected: ErrnoIntr, 47 }, 48 { 49 name: "syscall.EINVAL", 50 input: syscall.EINVAL, 51 expected: ErrnoInval, 52 }, 53 { 54 name: "syscall.EIO", 55 input: syscall.EIO, 56 expected: ErrnoIo, 57 }, 58 { 59 name: "syscall.EISDIR", 60 input: syscall.EISDIR, 61 expected: ErrnoIsdir, 62 }, 63 { 64 name: "syscall.ELOOP", 65 input: syscall.ELOOP, 66 expected: ErrnoLoop, 67 }, 68 { 69 name: "syscall.ENAMETOOLONG", 70 input: syscall.ENAMETOOLONG, 71 expected: ErrnoNametoolong, 72 }, 73 { 74 name: "syscall.ENOENT", 75 input: syscall.ENOENT, 76 expected: ErrnoNoent, 77 }, 78 { 79 name: "syscall.ENOSYS", 80 input: syscall.ENOSYS, 81 expected: ErrnoNosys, 82 }, 83 { 84 name: "syscall.ENOTDIR", 85 input: syscall.ENOTDIR, 86 expected: ErrnoNotdir, 87 }, 88 { 89 name: "syscall.ENOTEMPTY", 90 input: syscall.ENOTEMPTY, 91 expected: ErrnoNotempty, 92 }, 93 { 94 name: "syscall.ENOTSUP", 95 input: syscall.ENOTSUP, 96 expected: ErrnoNotsup, 97 }, 98 { 99 name: "syscall.EPERM", 100 input: syscall.EPERM, 101 expected: ErrnoPerm, 102 }, 103 { 104 name: "syscall.EROFS", 105 input: syscall.EROFS, 106 expected: ErrnoRofs, 107 }, 108 { 109 name: "syscall.EqualErrno unexpected == ErrnoIo", 110 input: syscall.Errno(0xfe), 111 expected: ErrnoIo, 112 }, 113 } 114 115 for _, tt := range tests { 116 tc := tt 117 t.Run(tc.name, func(t *testing.T) { 118 if errno := ToErrno(tc.input); errno != tc.expected { 119 t.Fatalf("expected %s but got %s", ErrnoName(tc.expected), ErrnoName(errno)) 120 } 121 }) 122 } 123 }