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