Skip to content
File

Blob: src/workerd/api/node/tests/constants-test.js

javascript259 lines
1// Copyright (c) 2017-2022 Cloudflare, Inc.
2// Licensed under the Apache 2.0 license found in the LICENSE file or at:
3// https://opensource.org/licenses/Apache-2.0
4 
5import { ok, strictEqual, throws } from 'node:assert';
6 
7import constants from 'node:constants';
8import { POINT_CONVERSION_HYBRID } from 'node:constants';
9 
10export const constantsTest = {
11 test() {
12 [
13 'RTLD_LAZY',
14 'RTLD_NOW',
15 'RTLD_GLOBAL',
16 'RTLD_LOCAL',
17 'E2BIG',
18 'EACCES',
19 'EADDRINUSE',
20 'EADDRNOTAVAIL',
21 'EAFNOSUPPORT',
22 'EAGAIN',
23 'EALREADY',
24 'EBADF',
25 'EBADMSG',
26 'EBUSY',
27 'ECANCELED',
28 'ECHILD',
29 'ECONNABORTED',
30 'ECONNREFUSED',
31 'ECONNRESET',
32 'EDEADLK',
33 'EDESTADDRREQ',
34 'EDOM',
35 'EDQUOT',
36 'EEXIST',
37 'EFAULT',
38 'EFBIG',
39 'EHOSTUNREACH',
40 'EIDRM',
41 'EILSEQ',
42 'EINPROGRESS',
43 'EINTR',
44 'EINVAL',
45 'EIO',
46 'EISCONN',
47 'EISDIR',
48 'ELOOP',
49 'EMFILE',
50 'EMLINK',
51 'EMSGSIZE',
52 'EMULTIHOP',
53 'ENAMETOOLONG',
54 'ENETDOWN',
55 'ENETRESET',
56 'ENETUNREACH',
57 'ENFILE',
58 'ENOBUFS',
59 'ENODATA',
60 'ENODEV',
61 'ENOENT',
62 'ENOEXEC',
63 'ENOLCK',
64 'ENOLINK',
65 'ENOMEM',
66 'ENOMSG',
67 'ENOPROTOOPT',
68 'ENOSPC',
69 'ENOSR',
70 'ENOSTR',
71 'ENOSYS',
72 'ENOTCONN',
73 'ENOTDIR',
74 'ENOTEMPTY',
75 'ENOTSOCK',
76 'ENOTSUP',
77 'ENOTTY',
78 'ENXIO',
79 'EOPNOTSUPP',
80 'EOVERFLOW',
81 'EPERM',
82 'EPIPE',
83 'EPROTO',
84 'EPROTONOSUPPORT',
85 'EPROTOTYPE',
86 'ERANGE',
87 'EROFS',
88 'ESPIPE',
89 'ESRCH',
90 'ESTALE',
91 'ETIME',
92 'ETIMEDOUT',
93 'ETXTBSY',
94 'EWOULDBLOCK',
95 'EXDEV',
96 'PRIORITY_LOW',
97 'PRIORITY_BELOW_NORMAL',
98 'PRIORITY_NORMAL',
99 'PRIORITY_ABOVE_NORMAL',
100 'PRIORITY_HIGH',
101 'PRIORITY_HIGHEST',
102 'SIGHUP',
103 'SIGINT',
104 'SIGQUIT',
105 'SIGILL',
106 'SIGTRAP',
107 'SIGABRT',
108 'SIGIOT',
109 'SIGBUS',
110 'SIGFPE',
111 'SIGKILL',
112 'SIGUSR1',
113 'SIGSEGV',
114 'SIGUSR2',
115 'SIGPIPE',
116 'SIGALRM',
117 'SIGTERM',
118 'SIGCHLD',
119 'SIGCONT',
120 'SIGSTOP',
121 'SIGTSTP',
122 'SIGTTIN',
123 'SIGTTOU',
124 'SIGURG',
125 'SIGXCPU',
126 'SIGXFSZ',
127 'SIGVTALRM',
128 'SIGPROF',
129 'SIGWINCH',
130 'SIGIO',
131 'SIGINFO',
132 'SIGSYS',
133 'UV_FS_SYMLINK_DIR',
134 'UV_FS_SYMLINK_JUNCTION',
135 'O_RDONLY',
136 'O_WRONLY',
137 'O_RDWR',
138 'UV_DIRENT_UNKNOWN',
139 'UV_DIRENT_FILE',
140 'UV_DIRENT_DIR',
141 'UV_DIRENT_LINK',
142 'UV_DIRENT_FIFO',
143 'UV_DIRENT_SOCKET',
144 'UV_DIRENT_CHAR',
145 'UV_DIRENT_BLOCK',
146 'S_IFMT',
147 'S_IFREG',
148 'S_IFDIR',
149 'S_IFCHR',
150 'S_IFBLK',
151 'S_IFIFO',
152 'S_IFLNK',
153 'S_IFSOCK',
154 'O_CREAT',
155 'O_EXCL',
156 'UV_FS_O_FILEMAP',
157 'O_NOCTTY',
158 'O_TRUNC',
159 'O_APPEND',
160 'O_DIRECTORY',
161 'O_NOFOLLOW',
162 'O_SYNC',
163 'O_DSYNC',
164 'O_SYMLINK',
165 'O_NONBLOCK',
166 'S_IRWXU',
167 'S_IRUSR',
168 'S_IWUSR',
169 'S_IXUSR',
170 'S_IRWXG',
171 'S_IRGRP',
172 'S_IWGRP',
173 'S_IXGRP',
174 'S_IRWXO',
175 'S_IROTH',
176 'S_IWOTH',
177 'S_IXOTH',
178 'F_OK',
179 'R_OK',
180 'W_OK',
181 'X_OK',
182 'UV_FS_COPYFILE_EXCL',
183 'COPYFILE_EXCL',
184 'UV_FS_COPYFILE_FICLONE',
185 'COPYFILE_FICLONE',
186 'UV_FS_COPYFILE_FICLONE_FORCE',
187 'COPYFILE_FICLONE_FORCE',
188 'OPENSSL_VERSION_NUMBER',
189 'SSL_OP_ALL',
190 'SSL_OP_ALLOW_NO_DHE_KEX',
191 'SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION',
192 'SSL_OP_CIPHER_SERVER_PREFERENCE',
193 'SSL_OP_CISCO_ANYCONNECT',
194 'SSL_OP_COOKIE_EXCHANGE',
195 'SSL_OP_CRYPTOPRO_TLSEXT_BUG',
196 'SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS',
197 'SSL_OP_LEGACY_SERVER_CONNECT',
198 'SSL_OP_NO_COMPRESSION',
199 'SSL_OP_NO_ENCRYPT_THEN_MAC',
200 'SSL_OP_NO_QUERY_MTU',
201 'SSL_OP_NO_RENEGOTIATION',
202 'SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION',
203 'SSL_OP_NO_SSLv2',
204 'SSL_OP_NO_SSLv3',
205 'SSL_OP_NO_TICKET',
206 'SSL_OP_NO_TLSv1',
207 'SSL_OP_NO_TLSv1_1',
208 'SSL_OP_NO_TLSv1_2',
209 'SSL_OP_NO_TLSv1_3',
210 'SSL_OP_PRIORITIZE_CHACHA',
211 'SSL_OP_TLS_ROLLBACK_BUG',
212 'ENGINE_METHOD_RSA',
213 'ENGINE_METHOD_DSA',
214 'ENGINE_METHOD_DH',
215 'ENGINE_METHOD_RAND',
216 'ENGINE_METHOD_EC',
217 'ENGINE_METHOD_CIPHERS',
218 'ENGINE_METHOD_DIGESTS',
219 'ENGINE_METHOD_PKEY_METHS',
220 'ENGINE_METHOD_PKEY_ASN1_METHS',
221 'ENGINE_METHOD_ALL',
222 'ENGINE_METHOD_NONE',
223 'DH_CHECK_P_NOT_SAFE_PRIME',
224 'DH_CHECK_P_NOT_PRIME',
225 'DH_UNABLE_TO_CHECK_GENERATOR',
226 'DH_NOT_SUITABLE_GENERATOR',
227 'RSA_PKCS1_PADDING',
228 'RSA_NO_PADDING',
229 'RSA_PKCS1_OAEP_PADDING',
230 'RSA_X931_PADDING',
231 'RSA_PKCS1_PSS_PADDING',
232 'RSA_PSS_SALTLEN_DIGEST',
233 'RSA_PSS_SALTLEN_MAX_SIGN',
234 'RSA_PSS_SALTLEN_AUTO',
235 'defaultCoreCipherList',
236 'TLS1_VERSION',
237 'TLS1_1_VERSION',
238 'TLS1_2_VERSION',
239 'TLS1_3_VERSION',
240 'POINT_CONVERSION_COMPRESSED',
241 'POINT_CONVERSION_UNCOMPRESSED',
242 'POINT_CONVERSION_HYBRID',
243 ].forEach((key) => {
244 ok(key in constants);
245 });
246 
247 strictEqual(constants.POINT_CONVERSION_HYBRID, POINT_CONVERSION_HYBRID);
248 throws(
249 () => {
250 constants.POINT_CONVERSION_HYBRID = 'abc';
251 },
252 {
253 message: /read only property/,
254 }
255 );
256 strictEqual(constants.POINT_CONVERSION_HYBRID, POINT_CONVERSION_HYBRID);
257 },
258};