2017-02-07 18:15:03 +01:00
# Node.js Core Tests
2016-09-02 01:25:02 +02:00
2017-04-29 07:22:20 +02:00
This directory contains code and data used to test the Node.js implementation.
2016-09-02 01:25:02 +02:00
2017-02-07 18:15:03 +01:00
For a detailed guide on how to write tests in this
directory, see [the guide on writing tests ](../doc/guides/writing-tests.md ).
2016-09-02 01:25:02 +02:00
2017-06-16 17:49:20 +02:00
On how to run tests in this directory, see
2018-01-20 16:19:03 +01:00
[the contributing guide ](../doc/guides/contributing/pull-requests.md#step-6-test ).
2016-09-02 01:25:02 +02:00
2019-05-09 23:02:48 +02:00
For the tests to run on Windows, be sure to clone Node.js source code with the
`autocrlf` git config flag set to true.
2018-05-15 20:45:17 +02:00
2017-02-07 18:15:03 +01:00
## Test Directories
2016-09-25 20:42:31 +02:00
2018-08-10 00:19:04 +02:00
| Directory | Runs on CI | Purpose |
| ------------------- | --------------- | --------------- |
2019-10-02 07:18:17 +02:00
| `abort` | Yes | Tests for when the `--abort-on-uncaught-exception` flag is used. |
2019-05-09 23:02:48 +02:00
| `addons` | Yes | Tests for [addon ](https://nodejs.org/api/addons.html ) functionality along with some tests that require an addon. |
2018-08-10 00:19:04 +02:00
| `async-hooks` | Yes | Tests for [async_hooks ](https://nodejs.org/api/async_hooks.html ) functionality. |
2018-11-09 01:33:42 +01:00
| `benchmark` | No | Test minimal functionality of benchmarks. |
2018-08-10 00:19:04 +02:00
| `cctest` | Yes | C++ tests that are run as part of the build process. |
| `code-cache` | No | Tests for a Node.js binary compiled with V8 code cache. |
| `common` | | Common modules shared among many tests. [Documentation ](./common/README.md ) |
| `doctool` | Yes | Tests for the documentation generator. |
| `es-module` | Yes | Test ESM module loading. |
| `fixtures` | | Test fixtures used in various tests throughout the test suite. |
2019-05-09 23:02:48 +02:00
| `internet` | No | Tests that make real outbound network connections. Tests for networking related modules may also be present in other directories, but those tests do not make outbound connections. |
2018-11-17 21:34:54 +01:00
| `js-native-api` | Yes | Tests for Node.js-agnostic [n-api ](https://nodejs.org/api/n-api.html ) functionality. |
2019-05-09 23:02:48 +02:00
| `known_issues` | Yes | Tests reproducing known issues within the system. All tests inside of this directory are expected to fail. If a test doesn't fail on certain platforms, those should be skipped via `known_issues.status` . |
2019-10-02 07:18:17 +02:00
| `message` | Yes | Tests for messages that are output for various conditions (`console.log`, error messages etc.) |
2018-11-17 21:34:54 +01:00
| `node-api` | Yes | Tests for Node.js-specific [n-api ](https://nodejs.org/api/n-api.html ) functionality. |
2018-08-10 00:19:04 +02:00
| `parallel` | Yes | Various tests that are able to be run in parallel. |
| `pseudo-tty` | Yes | Tests that require stdin/stdout/stderr to be a TTY. |
| `pummel` | No | Various tests for various modules / system functionality operating under load. |
2019-05-09 23:02:48 +02:00
| `sequential` | Yes | Various tests that must not run in parallel. |
2018-08-10 00:19:04 +02:00
| `testpy` | | Test configuration utility used by various test suites. |
2019-10-02 07:18:17 +02:00
| `tick-processor` | No | Tests for the V8 tick processor integration. The tests are for the logic in `lib/internal/v8_prof_processor.js` and `lib/internal/v8_prof_polyfill.js` . The tests confirm that the profile processor packages the correct set of scripts from V8 and introduces the correct platform specific logic. |
2018-08-10 00:19:04 +02:00
| `v8-updates` | No | Tests for V8 performance integration. |