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