|
1 | 1 | # Node.js Core Tests |
2 | 2 |
|
3 | | -This folder contains code and data used to test the Node.js implementation. |
| 3 | +This directory contains code and data used to test the Node.js implementation. |
4 | 4 |
|
5 | 5 | For a detailed guide on how to write tests in this |
6 | 6 | directory, see [the guide on writing tests](../doc/guides/writing-tests.md). |
7 | 7 |
|
8 | 8 | On how to run tests in this direcotry, see |
9 | 9 | [the contributing guide](../CONTRIBUTING.md#step-5-test). |
10 | 10 |
|
11 | | -## Table of Contents |
12 | | - |
13 | | -* [Test directories](#test-directories) |
14 | | -* [Common module API](#common-module-api) |
15 | | - |
16 | 11 | ## Test Directories |
17 | 12 |
|
18 | 13 | <table> |
@@ -48,6 +43,14 @@ On how to run tests in this direcotry, see |
48 | 43 | C++ test that is run as part of the build process. |
49 | 44 | </td> |
50 | 45 | </tr> |
| 46 | + <tr> |
| 47 | + <td>common</td> |
| 48 | + <td></td> |
| 49 | + <td> |
| 50 | + Common modules shared among many tests. |
| 51 | + <a href="./common/README.md">[Documentation]</a> |
| 52 | + </td> |
| 53 | + </tr> |
51 | 54 | <tr> |
52 | 55 | <td>debugger</td> |
53 | 56 | <td>No</td> |
@@ -158,277 +161,3 @@ On how to run tests in this direcotry, see |
158 | 161 | </tr> |
159 | 162 | </tbody> |
160 | 163 | </table> |
161 | | - |
162 | | -## Common module API |
163 | | - |
164 | | -The common.js module is used by tests for consistency across repeated |
165 | | -tasks. It has a number of helpful functions and properties to help with |
166 | | -writing tests. |
167 | | - |
168 | | -### allowGlobals(...whitelist) |
169 | | -* `whitelist` [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Array of Globals |
170 | | -* return [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) |
171 | | - |
172 | | -Takes `whitelist` and concats that with predefined `knownGlobals`. |
173 | | - |
174 | | -### arrayStream |
175 | | -A stream to push an array into a REPL |
176 | | - |
177 | | -### busyLoop(time) |
178 | | -* `time` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
179 | | - |
180 | | -Blocks for `time` amount of time. |
181 | | - |
182 | | -### canCreateSymLink |
183 | | -API to indicate whether the current running process can create |
184 | | -symlinks. On Windows, this returns false if the process running |
185 | | -doesn't have privileges to create symlinks (specifically |
186 | | -[SeCreateSymbolicLinkPrivilege](https://msdn.microsoft.com/en-us/library/windows/desktop/bb530716(v=vs.85).aspx)). |
187 | | -On non-Windows platforms, this currently returns true. |
188 | | - |
189 | | -### crashOnUnhandledRejection() |
190 | | - |
191 | | -Installs a `process.on('unhandledRejection')` handler that crashes the process |
192 | | -after a tick. This is useful for tests that use Promises and need to make sure |
193 | | -no unexpected rejections occur, because currently they result in silent |
194 | | -failures. |
195 | | - |
196 | | -### ddCommand(filename, kilobytes) |
197 | | -* return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) |
198 | | - |
199 | | -Platform normalizes the `dd` command |
200 | | - |
201 | | -### enoughTestMem |
202 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
203 | | - |
204 | | -Check if there is more than 1gb of total memory. |
205 | | - |
206 | | -### expectsError(settings) |
207 | | -* `settings` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) |
208 | | - with the following optional properties: |
209 | | - * `code` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
210 | | - expected error must have this value for its `code` property |
211 | | - * `type` [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) |
212 | | - expected error must be an instance of `type` |
213 | | - * `message` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
214 | | - or [<RegExp>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) |
215 | | - if a string is provided for `message`, expected error must have it for its |
216 | | - `message` property; if a regular expression is provided for `message`, the |
217 | | - regular expression must match the `message` property of the expected error |
218 | | - |
219 | | -* return function suitable for use as a validation function passed as the second |
220 | | - argument to `assert.throws()` |
221 | | - |
222 | | -The expected error should be [subclassed by the `internal/errors` module](https://github.com/nodejs/node/blob/master/doc/guides/using-internal-errors.md#api). |
223 | | - |
224 | | -### expectWarning(name, expected) |
225 | | -* `name` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
226 | | -* `expected` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) |
227 | | - |
228 | | -Tests whether `name` and `expected` are part of a raised warning. |
229 | | - |
230 | | -## getArrayBufferViews(buf) |
231 | | -* `buf` [<Buffer>](https://nodejs.org/api/buffer.html#buffer_class_buffer) |
232 | | -* return [<ArrayBufferView[]>](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) |
233 | | - |
234 | | -Returns an instance of all possible `ArrayBufferView`s of the provided Buffer. |
235 | | - |
236 | | -### hasCrypto |
237 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
238 | | - |
239 | | -Checks for 'openssl'. |
240 | | - |
241 | | -### hasFipsCrypto |
242 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
243 | | - |
244 | | -Checks `hasCrypto` and `crypto` with fips. |
245 | | - |
246 | | -### hasIPv6 |
247 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
248 | | - |
249 | | -Checks whether `IPv6` is supported on this platform. |
250 | | - |
251 | | -### hasMultiLocalhost |
252 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
253 | | - |
254 | | -Checks if there are multiple localhosts available. |
255 | | - |
256 | | -### fileExists(pathname) |
257 | | -* pathname [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
258 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
259 | | - |
260 | | -Checks if `pathname` exists |
261 | | - |
262 | | -### fixturesDir |
263 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
264 | | - |
265 | | -Path to the 'fixtures' directory. |
266 | | - |
267 | | -### globalCheck |
268 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
269 | | - |
270 | | -Turn this off if the test should not check for global leaks. |
271 | | - |
272 | | -### inFreeBSDJail |
273 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
274 | | - |
275 | | -Checks whether free BSD Jail is true or false. |
276 | | - |
277 | | -### isAix |
278 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
279 | | - |
280 | | -Platform check for Advanced Interactive eXecutive (AIX). |
281 | | - |
282 | | -### isAlive(pid) |
283 | | -* `pid` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
284 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
285 | | - |
286 | | -Attempts to 'kill' `pid` |
287 | | - |
288 | | -### isFreeBSD |
289 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
290 | | - |
291 | | -Platform check for Free BSD. |
292 | | - |
293 | | -### isLinux |
294 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
295 | | - |
296 | | -Platform check for Linux. |
297 | | - |
298 | | -### isLinuxPPCBE |
299 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
300 | | - |
301 | | -Platform check for Linux on PowerPC. |
302 | | - |
303 | | -### isOSX |
304 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
305 | | - |
306 | | -Platform check for macOS. |
307 | | - |
308 | | -### isSunOS |
309 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
310 | | - |
311 | | -Platform check for SunOS. |
312 | | - |
313 | | -### isWindows |
314 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
315 | | - |
316 | | -Platform check for Windows. |
317 | | - |
318 | | -### isWOW64 |
319 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
320 | | - |
321 | | -Platform check for Windows 32-bit on Windows 64-bit. |
322 | | - |
323 | | -### leakedGlobals |
324 | | -* return [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) |
325 | | - |
326 | | -Checks whether any globals are not on the `knownGlobals` list. |
327 | | - |
328 | | -### localhostIPv4 |
329 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
330 | | - |
331 | | -Gets IP of localhost |
332 | | - |
333 | | -### localIPv6Hosts |
334 | | -* return [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) |
335 | | - |
336 | | -Array of IPV6 hosts. |
337 | | - |
338 | | -### mustCall([fn][, expected]) |
339 | | -* fn [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) |
340 | | -* expected [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) default = 1 |
341 | | -* return [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) |
342 | | - |
343 | | -Returns a function that calls `fn`. If the returned function has not been called |
344 | | -exactly `expected` number of times when the test is complete, then the test will |
345 | | -fail. |
346 | | - |
347 | | -If `fn` is not provided, `common.noop` will be used. |
348 | | - |
349 | | -### nodeProcessAborted(exitCode, signal) |
350 | | -* `exitCode` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
351 | | -* `signal` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
352 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
353 | | - |
354 | | -Returns `true` if the exit code `exitCode` and/or signal name `signal` represent the exit code and/or signal name of a node process that aborted, `false` otherwise. |
355 | | - |
356 | | -### noop |
357 | | - |
358 | | -A non-op `Function` that can be used for a variety of scenarios. |
359 | | - |
360 | | -For instance, |
361 | | - |
362 | | -<!-- eslint-disable strict, no-undef --> |
363 | | -```js |
364 | | -const common = require('../common'); |
365 | | - |
366 | | -someAsyncAPI('foo', common.mustCall(common.noop)); |
367 | | -``` |
368 | | - |
369 | | -### opensslCli |
370 | | -* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
371 | | - |
372 | | -Checks whether 'opensslCli' is supported. |
373 | | - |
374 | | -### platformTimeout(ms) |
375 | | -* `ms` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
376 | | -* return [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
377 | | - |
378 | | -Platform normalizes timeout. |
379 | | - |
380 | | -### PIPE |
381 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
382 | | - |
383 | | -Path to the test sock. |
384 | | - |
385 | | -### PORT |
386 | | -* return [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) default = `12346` |
387 | | - |
388 | | -Port tests are running on. |
389 | | - |
390 | | -### refreshTmpDir |
391 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
392 | | - |
393 | | -Deletes the 'tmp' dir and recreates it |
394 | | - |
395 | | -### rootDir |
396 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
397 | | - |
398 | | -Path to the 'root' directory. either `/` or `c:\\` (windows) |
399 | | - |
400 | | -### skip(msg) |
401 | | -* `msg` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
402 | | - |
403 | | -Logs '1..0 # Skipped: ' + `msg` |
404 | | - |
405 | | -### spawnPwd(options) |
406 | | -* `options` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) |
407 | | -* return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) |
408 | | - |
409 | | -Platform normalizes the `pwd` command. |
410 | | - |
411 | | -### spawnSyncPwd(options) |
412 | | -* `options` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) |
413 | | -* return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) |
414 | | - |
415 | | -Synchronous version of `spawnPwd`. |
416 | | - |
417 | | -### tmpDir |
418 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
419 | | - |
420 | | -The realpath of the 'tmp' directory. |
421 | | - |
422 | | -### tmpDirName |
423 | | -* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
424 | | - |
425 | | -Name of the temp directory used by tests. |
426 | | - |
427 | | -### WPT |
428 | | - |
429 | | -A port of parts of |
430 | | -[W3C testharness.js](https://github.com/w3c/testharness.js) for testing the |
431 | | -Node.js |
432 | | -[WHATWG URL API](https://nodejs.org/api/url.html#url_the_whatwg_url_api) |
433 | | -implementation with tests from |
434 | | -[W3C Web Platform Tests](https://github.com/w3c/web-platform-tests). |
0 commit comments