mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
282 lines
11 KiB
282 lines
11 KiB
8 years ago
|
# Node.js Core Test Common Modules
|
||
|
|
||
|
This directory contains modules used to test the Node.js implementation.
|
||
|
|
||
|
## Table of Contents
|
||
|
|
||
|
* [Common module API](#common-module-api)
|
||
|
* [WPT module](#wpt-module)
|
||
|
|
||
|
## Common Module API
|
||
|
|
||
|
The `common` module is used by tests for consistency across repeated
|
||
|
tasks.
|
||
|
|
||
|
### allowGlobals(...whitelist)
|
||
|
* `whitelist` [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Array of Globals
|
||
|
* return [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
|
||
|
|
||
|
Takes `whitelist` and concats that with predefined `knownGlobals`.
|
||
|
|
||
|
### arrayStream
|
||
|
A stream to push an array into a REPL
|
||
|
|
||
|
### busyLoop(time)
|
||
|
* `time` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type)
|
||
|
|
||
|
Blocks for `time` amount of time.
|
||
|
|
||
|
### canCreateSymLink
|
||
|
API to indicate whether the current running process can create
|
||
|
symlinks. On Windows, this returns false if the process running
|
||
|
doesn't have privileges to create symlinks (specifically
|
||
|
[SeCreateSymbolicLinkPrivilege](https://msdn.microsoft.com/en-us/library/windows/desktop/bb530716(v=vs.85).aspx)).
|
||
|
On non-Windows platforms, this currently returns true.
|
||
|
|
||
|
### crashOnUnhandledRejection()
|
||
|
|
||
|
Installs a `process.on('unhandledRejection')` handler that crashes the process
|
||
|
after a tick. This is useful for tests that use Promises and need to make sure
|
||
|
no unexpected rejections occur, because currently they result in silent
|
||
|
failures.
|
||
|
|
||
|
### ddCommand(filename, kilobytes)
|
||
|
* return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
|
||
|
|
||
|
Platform normalizes the `dd` command
|
||
|
|
||
|
### enoughTestMem
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Check if there is more than 1gb of total memory.
|
||
|
|
||
|
### expectsError(settings)
|
||
|
* `settings` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
|
||
|
with the following optional properties:
|
||
|
* `code` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
expected error must have this value for its `code` property
|
||
|
* `type` [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function)
|
||
|
expected error must be an instance of `type`
|
||
|
* `message` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
or [<RegExp>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)
|
||
|
if a string is provided for `message`, expected error must have it for its
|
||
|
`message` property; if a regular expression is provided for `message`, the
|
||
|
regular expression must match the `message` property of the expected error
|
||
|
|
||
|
* return function suitable for use as a validation function passed as the second
|
||
|
argument to `assert.throws()`
|
||
|
|
||
|
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).
|
||
|
|
||
|
### expectWarning(name, expected)
|
||
|
* `name` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
* `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)
|
||
|
|
||
|
Tests whether `name` and `expected` are part of a raised warning.
|
||
|
|
||
|
### fileExists(pathname)
|
||
|
* pathname [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks if `pathname` exists
|
||
|
|
||
|
### fixturesDir
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Path to the 'fixtures' directory.
|
||
|
|
||
|
### getArrayBufferViews(buf)
|
||
|
* `buf` [<Buffer>](https://nodejs.org/api/buffer.html#buffer_class_buffer)
|
||
|
* return [<ArrayBufferView[]>](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView)
|
||
|
|
||
|
Returns an instance of all possible `ArrayBufferView`s of the provided Buffer.
|
||
|
|
||
|
### globalCheck
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Turn this off if the test should not check for global leaks.
|
||
|
|
||
|
### hasCrypto
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks for 'openssl'.
|
||
|
|
||
|
### hasFipsCrypto
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks `hasCrypto` and `crypto` with fips.
|
||
|
|
||
|
### hasIPv6
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks whether `IPv6` is supported on this platform.
|
||
|
|
||
|
### hasMultiLocalhost
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks if there are multiple localhosts available.
|
||
|
|
||
|
### inFreeBSDJail
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks whether free BSD Jail is true or false.
|
||
|
|
||
|
### isAix
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for Advanced Interactive eXecutive (AIX).
|
||
|
|
||
|
### isAlive(pid)
|
||
|
* `pid` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type)
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Attempts to 'kill' `pid`
|
||
|
|
||
|
### isFreeBSD
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for Free BSD.
|
||
|
|
||
|
### isLinux
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for Linux.
|
||
|
|
||
|
### isLinuxPPCBE
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for Linux on PowerPC.
|
||
|
|
||
|
### isOSX
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for macOS.
|
||
|
|
||
|
### isSunOS
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for SunOS.
|
||
|
|
||
|
### isWindows
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for Windows.
|
||
|
|
||
|
### isWOW64
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Platform check for Windows 32-bit on Windows 64-bit.
|
||
|
|
||
|
### leakedGlobals
|
||
|
* return [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
|
||
|
|
||
|
Checks whether any globals are not on the `knownGlobals` list.
|
||
|
|
||
|
### localhostIPv4
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Gets IP of localhost
|
||
|
|
||
|
### localIPv6Hosts
|
||
|
* return [<Array>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
|
||
|
|
||
|
Array of IPV6 hosts.
|
||
|
|
||
|
### mustCall([fn][, expected])
|
||
|
* fn [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function)
|
||
|
* expected [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) default = 1
|
||
|
* return [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function)
|
||
|
|
||
|
Returns a function that calls `fn`. If the returned function has not been called
|
||
|
exactly `expected` number of times when the test is complete, then the test will
|
||
|
fail.
|
||
|
|
||
|
If `fn` is not provided, `common.noop` will be used.
|
||
|
|
||
|
### nodeProcessAborted(exitCode, signal)
|
||
|
* `exitCode` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type)
|
||
|
* `signal` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
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.
|
||
|
|
||
|
### noop
|
||
|
|
||
|
A non-op `Function` that can be used for a variety of scenarios.
|
||
|
|
||
|
For instance,
|
||
|
|
||
|
<!-- eslint-disable strict, no-undef -->
|
||
|
```js
|
||
|
const common = require('../common');
|
||
|
|
||
|
someAsyncAPI('foo', common.mustCall(common.noop));
|
||
|
```
|
||
|
|
||
|
### opensslCli
|
||
|
* return [<Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
|
||
|
|
||
|
Checks whether 'opensslCli' is supported.
|
||
|
|
||
|
### platformTimeout(ms)
|
||
|
* `ms` [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type)
|
||
|
* return [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type)
|
||
|
|
||
|
Platform normalizes timeout.
|
||
|
|
||
|
### PIPE
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Path to the test sock.
|
||
|
|
||
|
### PORT
|
||
|
* return [<Number>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) default = `12346`
|
||
|
|
||
|
Port tests are running on.
|
||
|
|
||
|
### refreshTmpDir
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Deletes the 'tmp' dir and recreates it
|
||
|
|
||
|
### rootDir
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Path to the 'root' directory. either `/` or `c:\\` (windows)
|
||
|
|
||
|
### skip(msg)
|
||
|
* `msg` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Logs '1..0 # Skipped: ' + `msg`
|
||
|
|
||
|
### spawnPwd(options)
|
||
|
* `options` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
|
||
|
* return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
|
||
|
|
||
|
Platform normalizes the `pwd` command.
|
||
|
|
||
|
### spawnSyncPwd(options)
|
||
|
* `options` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
|
||
|
* return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
|
||
|
|
||
|
Synchronous version of `spawnPwd`.
|
||
|
|
||
|
### tmpDir
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
The realpath of the 'tmp' directory.
|
||
|
|
||
|
### tmpDirName
|
||
|
* return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
|
||
|
|
||
|
Name of the temp directory used by tests.
|
||
|
|
||
|
## WPT Module
|
||
|
|
||
|
The wpt.js module is a port of parts of
|
||
|
[W3C testharness.js](https://github.com/w3c/testharness.js) for testing the
|
||
|
Node.js
|
||
|
[WHATWG URL API](https://nodejs.org/api/url.html#url_the_whatwg_url_api)
|
||
|
implementation with tests from
|
||
|
[W3C Web Platform Tests](https://github.com/w3c/web-platform-tests).
|