summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorZYSzys <zyszys98@gmail.com>2019-05-12 15:11:13 +0800
committerZYSzys <zyszys98@gmail.com>2019-05-13 19:39:34 +0800
commitdcc5e51e1cb4e102effd7fc515681446b07e428e (patch)
tree63f566515f8150bbe96e63426293bc802c84eb38 /test
parent618fcbd125c386b7bfb37cbc4dce12a694a4ee22 (diff)
downloadandroid-node-v8-dcc5e51e1cb4e102effd7fc515681446b07e428e.tar.gz
android-node-v8-dcc5e51e1cb4e102effd7fc515681446b07e428e.tar.bz2
android-node-v8-dcc5e51e1cb4e102effd7fc515681446b07e428e.zip
tools: force common be required before any other modules
PR-URL: https://github.com/nodejs/node/pull/27650 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test')
-rw-r--r--test/.eslintrc.yaml1
-rw-r--r--test/async-hooks/hook-checks.js2
-rw-r--r--test/async-hooks/verify-graph.js2
-rw-r--r--test/common/README.md24
-rw-r--r--test/common/arraystream.js2
-rw-r--r--test/common/benchmark.js2
-rw-r--r--test/common/countdown.js2
-rw-r--r--test/common/dns.js2
-rw-r--r--test/common/duplexpair.js2
-rw-r--r--test/common/fixtures.js2
-rw-r--r--test/common/heap.js2
-rw-r--r--test/common/hijackstdio.js2
-rw-r--r--test/common/http2.js2
-rw-r--r--test/common/index.js3
-rw-r--r--test/common/index.mjs2
-rw-r--r--test/common/internet.js2
-rw-r--r--test/common/report.js2
-rw-r--r--test/common/tls.js3
-rw-r--r--test/common/tmpdir.js2
-rw-r--r--test/common/wpt.js2
-rw-r--r--test/es-module/test-esm-example-loader.js2
-rw-r--r--test/es-module/test-esm-loader-dependency.mjs2
-rw-r--r--test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs2
-rw-r--r--test/es-module/test-esm-preserve-symlinks-not-found.mjs2
-rw-r--r--test/es-module/test-esm-resolve-hook.mjs2
-rw-r--r--test/es-module/test-esm-type-flag.mjs2
-rw-r--r--test/js-native-api/test_general/testInstanceOf.js3
-rw-r--r--test/parallel/test-buffer-constructor-node-modules-paths.js2
-rw-r--r--test/parallel/test-buffer-constructor-outside-node-modules.js2
-rw-r--r--test/parallel/test-buffer-includes.js2
-rw-r--r--test/parallel/test-child-process-spawn-args.js6
-rw-r--r--test/parallel/test-child-process-spawnsync-args.js6
-rw-r--r--test/parallel/test-dgram-deprecation-error.js2
-rw-r--r--test/parallel/test-eslint-require-common-first.js27
-rw-r--r--test/parallel/test-global-console-exists.js2
-rw-r--r--test/parallel/test-http-client-req-error-dont-double-fire.js5
-rw-r--r--test/parallel/test-http-header-overflow.js2
-rw-r--r--test/parallel/test-http-parser-lazy-loaded.js3
-rw-r--r--test/parallel/test-http2-client-write-empty-string.js2
-rw-r--r--test/parallel/test-icu-data-dir.js2
-rw-r--r--test/parallel/test-os-checked-function.js1
-rw-r--r--test/parallel/test-process-env-allowed-flags.js2
-rw-r--r--test/parallel/test-readline-position.js2
-rw-r--r--test/parallel/test-regression-object-prototype.js2
-rw-r--r--test/parallel/test-stream-readable-pause-and-resume.js2
-rw-r--r--test/parallel/test-v8-serdes.js2
-rw-r--r--test/parallel/test-worker-parent-port-ref.js2
-rw-r--r--test/parallel/test-worker-process-cwd.js2
-rw-r--r--test/parallel/test-worker-relative-path-double-dot.js2
-rw-r--r--test/parallel/test-worker-relative-path.js2
-rw-r--r--test/parallel/test-worker-unsupported-path.js2
51 files changed, 96 insertions, 66 deletions
diff --git a/test/.eslintrc.yaml b/test/.eslintrc.yaml
index 49c55de6b8..8eee5f3995 100644
--- a/test/.eslintrc.yaml
+++ b/test/.eslintrc.yaml
@@ -22,6 +22,7 @@ rules:
node-core/number-isnan: error
## common module is mandatory in tests
node-core/required-modules: [error, common]
+ node-core/require-common-first: error
node-core/no-duplicate-requires: off
# Global scoped methods and vars
diff --git a/test/async-hooks/hook-checks.js b/test/async-hooks/hook-checks.js
index 4497037813..ba3a8d2d1d 100644
--- a/test/async-hooks/hook-checks.js
+++ b/test/async-hooks/hook-checks.js
@@ -1,6 +1,6 @@
'use strict';
-const assert = require('assert');
require('../common');
+const assert = require('assert');
/**
* Checks the expected invocations against the invocations that actually
diff --git a/test/async-hooks/verify-graph.js b/test/async-hooks/verify-graph.js
index 99b32e9081..54d6ed8ea9 100644
--- a/test/async-hooks/verify-graph.js
+++ b/test/async-hooks/verify-graph.js
@@ -1,8 +1,8 @@
'use strict';
+require('../common');
const assert = require('assert');
const util = require('util');
-require('../common');
function findInGraph(graph, type, n) {
let found = 0;
diff --git a/test/common/README.md b/test/common/README.md
index 391b753f04..664b42aca3 100644
--- a/test/common/README.md
+++ b/test/common/README.md
@@ -386,7 +386,7 @@ thread.
The `ArrayStream` module provides a simple `Stream` that pushes elements from
a given array.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
const ArrayStream = require('../common/arraystream');
const stream = new ArrayStream();
@@ -402,7 +402,7 @@ require a particular action to be taken after a given number of completed
tasks (for instance, shutting down an HTTP server after a specific number of
requests). The Countdown will fail the test if the remainder did not reach 0.
-<!-- eslint-disable strict, node-core/required-modules -->
+<!-- eslint-disable strict, node-core/require-common-first, node-core/required-modules -->
```js
const Countdown = require('../common/countdown');
@@ -574,7 +574,7 @@ one listed below. (`heap.validateSnapshotNodes(...)` is a shortcut for
Create a heap dump and an embedder graph copy and validate occurrences.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
validateSnapshotNodes('TLSWRAP', [
{
@@ -592,7 +592,7 @@ validateSnapshotNodes('TLSWRAP', [
The `hijackstdio` module provides utility functions for temporarily redirecting
`stdout` and `stderr` output.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
const { hijackStdout, restoreStdout } = require('../common/hijackstdio');
@@ -638,7 +638,7 @@ original state after calling [`hijackstdio.hijackStdOut()`][].
The http2.js module provides a handful of utilities for creating mock HTTP/2
frames for testing of HTTP/2 endpoints
-<!-- eslint-disable no-unused-vars, node-core/required-modules -->
+<!-- eslint-disable no-unused-vars, node-core/require-common-first, node-core/required-modules -->
```js
const http2 = require('../common/http2');
```
@@ -648,7 +648,7 @@ const http2 = require('../common/http2');
The `http2.Frame` is a base class that creates a `Buffer` containing a
serialized HTTP/2 frame header.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
// length is a 24-bit unsigned integer
// type is an 8-bit unsigned integer identifying the frame type
@@ -667,7 +667,7 @@ The serialized `Buffer` may be retrieved using the `frame.data` property.
The `http2.DataFrame` is a subclass of `http2.Frame` that serializes a `DATA`
frame.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
// id is the 32-bit stream identifier
// payload is a Buffer containing the DATA payload
@@ -684,7 +684,7 @@ socket.write(frame.data);
The `http2.HeadersFrame` is a subclass of `http2.Frame` that serializes a
`HEADERS` frame.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
// id is the 32-bit stream identifier
// payload is a Buffer containing the HEADERS payload (see either
@@ -702,7 +702,7 @@ socket.write(frame.data);
The `http2.SettingsFrame` is a subclass of `http2.Frame` that serializes an
empty `SETTINGS` frame.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
// ack is a boolean indicating whether or not to set the ACK flag.
const frame = new http2.SettingsFrame(ack);
@@ -715,7 +715,7 @@ socket.write(frame.data);
Set to a `Buffer` instance that contains a minimal set of serialized HTTP/2
request headers to be used as the payload of a `http2.HeadersFrame`.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
const frame = new http2.HeadersFrame(1, http2.kFakeRequestHeaders, 0, true);
@@ -727,7 +727,7 @@ socket.write(frame.data);
Set to a `Buffer` instance that contains a minimal set of serialized HTTP/2
response headers to be used as the payload a `http2.HeadersFrame`.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
const frame = new http2.HeadersFrame(1, http2.kFakeResponseHeaders, 0, true);
@@ -739,7 +739,7 @@ socket.write(frame.data);
Set to a `Buffer` containing the preamble bytes an HTTP/2 client must send
upon initial establishment of a connection.
-<!-- eslint-disable no-undef, node-core/required-modules -->
+<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
```js
socket.write(http2.kClientMagic);
```
diff --git a/test/common/arraystream.js b/test/common/arraystream.js
index 9c497fcd9b..408d57712c 100644
--- a/test/common/arraystream.js
+++ b/test/common/arraystream.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const { Stream } = require('stream');
diff --git a/test/common/benchmark.js b/test/common/benchmark.js
index 0894146c4d..bb182fc688 100644
--- a/test/common/benchmark.js
+++ b/test/common/benchmark.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
diff --git a/test/common/countdown.js b/test/common/countdown.js
index 67252657ec..31507b6125 100644
--- a/test/common/countdown.js
+++ b/test/common/countdown.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
diff --git a/test/common/dns.js b/test/common/dns.js
index 01245c33d6..37f80dde02 100644
--- a/test/common/dns.js
+++ b/test/common/dns.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const assert = require('assert');
diff --git a/test/common/duplexpair.js b/test/common/duplexpair.js
index fb4faca548..0783aeb861 100644
--- a/test/common/duplexpair.js
+++ b/test/common/duplexpair.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const { Duplex } = require('stream');
const assert = require('assert');
diff --git a/test/common/fixtures.js b/test/common/fixtures.js
index b45e5bc809..2390ee8284 100644
--- a/test/common/fixtures.js
+++ b/test/common/fixtures.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const path = require('path');
diff --git a/test/common/heap.js b/test/common/heap.js
index 97686e05a7..030ea77340 100644
--- a/test/common/heap.js
+++ b/test/common/heap.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const assert = require('assert');
const util = require('util');
diff --git a/test/common/hijackstdio.js b/test/common/hijackstdio.js
index fcc98208f0..6995f66658 100644
--- a/test/common/hijackstdio.js
+++ b/test/common/hijackstdio.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
// Hijack stdout and stderr
diff --git a/test/common/http2.js b/test/common/http2.js
index f84a668617..c4d430d1d9 100644
--- a/test/common/http2.js
+++ b/test/common/http2.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
// An HTTP/2 testing tool used to create mock frames for direct testing
diff --git a/test/common/index.js b/test/common/index.js
index 02fe9039dd..3235362166 100644
--- a/test/common/index.js
+++ b/test/common/index.js
@@ -19,7 +19,8 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
-/* eslint-disable node-core/required-modules, node-core/crypto-check */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
+/* eslint-disable node-core/crypto-check */
'use strict';
const process = global.process; // Some tests tamper with the process global.
const path = require('path');
diff --git a/test/common/index.mjs b/test/common/index.mjs
index 41592098eb..4758704402 100644
--- a/test/common/index.mjs
+++ b/test/common/index.mjs
@@ -1,5 +1,5 @@
// Flags: --experimental-modules
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
import { createRequireFromPath } from 'module';
import { fileURLToPath as toPath } from 'url';
diff --git a/test/common/internet.js b/test/common/internet.js
index 3880aa114e..88153960f0 100644
--- a/test/common/internet.js
+++ b/test/common/internet.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
// Utilities for internet-related tests
diff --git a/test/common/report.js b/test/common/report.js
index f97cf10669..163daf286e 100644
--- a/test/common/report.js
+++ b/test/common/report.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const assert = require('assert');
const fs = require('fs');
diff --git a/test/common/tls.js b/test/common/tls.js
index 3560af671b..e7cacde745 100644
--- a/test/common/tls.js
+++ b/test/common/tls.js
@@ -1,4 +1,5 @@
-/* eslint-disable node-core/required-modules, node-core/crypto-check */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
+/* eslint-disable node-core/crypto-check */
'use strict';
const crypto = require('crypto');
diff --git a/test/common/tmpdir.js b/test/common/tmpdir.js
index ca761b7f94..369c49019a 100644
--- a/test/common/tmpdir.js
+++ b/test/common/tmpdir.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const fs = require('fs');
diff --git a/test/common/wpt.js b/test/common/wpt.js
index 5592ddfd4a..60be82564b 100644
--- a/test/common/wpt.js
+++ b/test/common/wpt.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
const assert = require('assert');
diff --git a/test/es-module/test-esm-example-loader.js b/test/es-module/test-esm-example-loader.js
index 0b0001acea..c3ba95f228 100644
--- a/test/es-module/test-esm-example-loader.js
+++ b/test/es-module/test-esm-example-loader.js
@@ -1,5 +1,5 @@
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/example-loader.mjs
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
import assert from 'assert';
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
diff --git a/test/es-module/test-esm-loader-dependency.mjs b/test/es-module/test-esm-loader-dependency.mjs
index 1ed8685a6f..9cb2856009 100644
--- a/test/es-module/test-esm-loader-dependency.mjs
+++ b/test/es-module/test-esm-loader-dependency.mjs
@@ -1,5 +1,5 @@
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-with-dep.mjs
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
import '../fixtures/es-modules/test-esm-ok.mjs';
// We just test that this module doesn't fail loading
diff --git a/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs b/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs
index 2ca0f56581..b9b2860dff 100644
--- a/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs
+++ b/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs
@@ -1,3 +1,3 @@
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
import './not-found.js';
diff --git a/test/es-module/test-esm-preserve-symlinks-not-found.mjs b/test/es-module/test-esm-preserve-symlinks-not-found.mjs
index b5be2d7e63..1dbdfa03e6 100644
--- a/test/es-module/test-esm-preserve-symlinks-not-found.mjs
+++ b/test/es-module/test-esm-preserve-symlinks-not-found.mjs
@@ -1,3 +1,3 @@
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
import './not-found.mjs';
diff --git a/test/es-module/test-esm-resolve-hook.mjs b/test/es-module/test-esm-resolve-hook.mjs
index e326d20b6d..bbf6c80cda 100644
--- a/test/es-module/test-esm-resolve-hook.mjs
+++ b/test/es-module/test-esm-resolve-hook.mjs
@@ -1,5 +1,5 @@
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/js-loader.mjs
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
import { namedExport } from '../fixtures/es-module-loaders/js-as-esm.js';
import assert from 'assert';
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
diff --git a/test/es-module/test-esm-type-flag.mjs b/test/es-module/test-esm-type-flag.mjs
index e820c9ad67..8358da5c76 100644
--- a/test/es-module/test-esm-type-flag.mjs
+++ b/test/es-module/test-esm-type-flag.mjs
@@ -1,6 +1,6 @@
// Flags: --experimental-modules
-import cjs from '../fixtures/baz.js';
import '../common/index.mjs';
+import cjs from '../fixtures/baz.js';
import { message } from '../fixtures/es-modules/message.mjs';
import assert from 'assert';
diff --git a/test/js-native-api/test_general/testInstanceOf.js b/test/js-native-api/test_general/testInstanceOf.js
index fb5b633494..d50ce7a27c 100644
--- a/test/js-native-api/test_general/testInstanceOf.js
+++ b/test/js-native-api/test_general/testInstanceOf.js
@@ -1,7 +1,6 @@
'use strict';
-const fs = require('fs');
-
const common = require('../../common');
+const fs = require('fs');
const assert = require('assert');
// Addon is referenced through the eval expression in testFile
diff --git a/test/parallel/test-buffer-constructor-node-modules-paths.js b/test/parallel/test-buffer-constructor-node-modules-paths.js
index c6a419f82a..40d314aec0 100644
--- a/test/parallel/test-buffer-constructor-node-modules-paths.js
+++ b/test/parallel/test-buffer-constructor-node-modules-paths.js
@@ -1,8 +1,8 @@
'use strict';
+const common = require('../common');
const child_process = require('child_process');
const assert = require('assert');
-const common = require('../common');
if (process.env.NODE_PENDING_DEPRECATION)
common.skip('test does not work when NODE_PENDING_DEPRECATION is set');
diff --git a/test/parallel/test-buffer-constructor-outside-node-modules.js b/test/parallel/test-buffer-constructor-outside-node-modules.js
index 1a1e146f2d..7136259982 100644
--- a/test/parallel/test-buffer-constructor-outside-node-modules.js
+++ b/test/parallel/test-buffer-constructor-outside-node-modules.js
@@ -1,9 +1,9 @@
// Flags: --no-warnings
'use strict';
+const common = require('../common');
const vm = require('vm');
const assert = require('assert');
-const common = require('../common');
if (new Error().stack.includes('node_modules'))
common.skip('test does not work when inside `node_modules` directory');
diff --git a/test/parallel/test-buffer-includes.js b/test/parallel/test-buffer-includes.js
index 5bad445ade..ca5b94f9d9 100644
--- a/test/parallel/test-buffer-includes.js
+++ b/test/parallel/test-buffer-includes.js
@@ -1,6 +1,6 @@
'use strict';
-const assert = require('assert');
const common = require('../common');
+const assert = require('assert');
const b = Buffer.from('abcdef');
const buf_a = Buffer.from('a');
diff --git a/test/parallel/test-child-process-spawn-args.js b/test/parallel/test-child-process-spawn-args.js
index 821525409c..ef70fe844f 100644
--- a/test/parallel/test-child-process-spawn-args.js
+++ b/test/parallel/test-child-process-spawn-args.js
@@ -6,12 +6,12 @@
// caused the third argument (`options`) to be ignored.
// See https://github.com/nodejs/node/issues/24912.
-const assert = require('assert');
-const { spawn } = require('child_process');
-
const common = require('../common');
const tmpdir = require('../common/tmpdir');
+const assert = require('assert');
+const { spawn } = require('child_process');
+
tmpdir.refresh();
const command = common.isWindows ? 'cd' : 'pwd';
diff --git a/test/parallel/test-child-process-spawnsync-args.js b/test/parallel/test-child-process-spawnsync-args.js
index 96de8670f1..4e65b22f6e 100644
--- a/test/parallel/test-child-process-spawnsync-args.js
+++ b/test/parallel/test-child-process-spawnsync-args.js
@@ -6,12 +6,12 @@
// caused the third argument (`options`) to be ignored.
// See https://github.com/nodejs/node/issues/24912.
-const assert = require('assert');
-const { spawnSync } = require('child_process');
-
const common = require('../common');
const tmpdir = require('../common/tmpdir');
+const assert = require('assert');
+const { spawnSync } = require('child_process');
+
const command = common.isWindows ? 'cd' : 'pwd';
const options = { cwd: tmpdir.path };
diff --git a/test/parallel/test-dgram-deprecation-error.js b/test/parallel/test-dgram-deprecation-error.js
index 89cde12fd3..d244940b64 100644
--- a/test/parallel/test-dgram-deprecation-error.js
+++ b/test/parallel/test-dgram-deprecation-error.js
@@ -1,7 +1,7 @@
'use strict';
-const assert = require('assert');
const common = require('../common');
+const assert = require('assert');
const dgram = require('dgram');
const fork = require('child_process').fork;
diff --git a/test/parallel/test-eslint-require-common-first.js b/test/parallel/test-eslint-require-common-first.js
new file mode 100644
index 0000000000..018d4185d5
--- /dev/null
+++ b/test/parallel/test-eslint-require-common-first.js
@@ -0,0 +1,27 @@
+'use strict';
+
+const common = require('../common');
+if (!common.hasCrypto)
+ common.skip('missing crypto');
+
+common.skipIfEslintMissing();
+
+const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
+const rule = require('../../tools/eslint-rules/require-common-first');
+
+new RuleTester().run('require-common-first', rule, {
+ valid: [
+ {
+ code: 'require("common")\n' +
+ 'require("assert")'
+ }
+ ],
+ invalid: [
+ {
+ code: 'require("assert")\n' +
+ 'require("common")',
+ errors: [{ message: 'Mandatory module "common" must be loaded ' +
+ 'before any other modules.' }]
+ }
+ ]
+});
diff --git a/test/parallel/test-global-console-exists.js b/test/parallel/test-global-console-exists.js
index f2e7ba5a9a..bcebfadf0d 100644
--- a/test/parallel/test-global-console-exists.js
+++ b/test/parallel/test-global-console-exists.js
@@ -1,4 +1,4 @@
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
diff --git a/test/parallel/test-http-client-req-error-dont-double-fire.js b/test/parallel/test-http-client-req-error-dont-double-fire.js
index d2c526eab6..b162df03d6 100644
--- a/test/parallel/test-http-client-req-error-dont-double-fire.js
+++ b/test/parallel/test-http-client-req-error-dont-double-fire.js
@@ -4,12 +4,13 @@
// not get fired again when the 'error' event handler throws
// an error.
-const assert = require('assert');
-const http = require('http');
const common = require('../common');
const { addresses } = require('../common/internet');
const { errorLookupMock } = require('../common/dns');
+const assert = require('assert');
+const http = require('http');
+
const host = addresses.INVALID_HOST;
const req = http.get({
diff --git a/test/parallel/test-http-header-overflow.js b/test/parallel/test-http-header-overflow.js
index a539a69c03..442776fab0 100644
--- a/test/parallel/test-http-header-overflow.js
+++ b/test/parallel/test-http-header-overflow.js
@@ -1,8 +1,8 @@
'use strict';
+const { expectsError, mustCall } = require('../common');
const assert = require('assert');
const { createServer, maxHeaderSize } = require('http');
const { createConnection } = require('net');
-const { expectsError, mustCall } = require('../common');
const CRLF = '\r\n';
const DUMMY_HEADER_NAME = 'Cookie: ';
diff --git a/test/parallel/test-http-parser-lazy-loaded.js b/test/parallel/test-http-parser-lazy-loaded.js
index 79b6ac37b3..a6c19f9353 100644
--- a/test/parallel/test-http-parser-lazy-loaded.js
+++ b/test/parallel/test-http-parser-lazy-loaded.js
@@ -1,7 +1,7 @@
// Flags: --expose-internals
'use strict';
-
+const common = require('../common');
const { internalBinding } = require('internal/test/binding');
const { getOptionValue } = require('internal/options');
@@ -21,7 +21,6 @@ const binding =
internalBinding('http_parser') : internalBinding('http_parser_llhttp');
binding.HTTPParser = DummyParser;
-const common = require('../common');
const assert = require('assert');
const { spawn } = require('child_process');
const { parsers } = require('_http_common');
diff --git a/test/parallel/test-http2-client-write-empty-string.js b/test/parallel/test-http2-client-write-empty-string.js
index de46507fb1..087a498a37 100644
--- a/test/parallel/test-http2-client-write-empty-string.js
+++ b/test/parallel/test-http2-client-write-empty-string.js
@@ -1,10 +1,10 @@
'use strict';
-const assert = require('assert');
const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');
+const assert = require('assert');
const http2 = require('http2');
for (const chunkSequence of [
diff --git a/test/parallel/test-icu-data-dir.js b/test/parallel/test-icu-data-dir.js
index daf15ba880..5b37e27d32 100644
--- a/test/parallel/test-icu-data-dir.js
+++ b/test/parallel/test-icu-data-dir.js
@@ -1,7 +1,7 @@
// Flags: --expose-internals
'use strict';
-const { internalBinding } = require('internal/test/binding');
const common = require('../common');
+const { internalBinding } = require('internal/test/binding');
const os = require('os');
const { hasSmallICU } = internalBinding('config');
diff --git a/test/parallel/test-os-checked-function.js b/test/parallel/test-os-checked-function.js
index 2a393f830d..44337adb40 100644
--- a/test/parallel/test-os-checked-function.js
+++ b/test/parallel/test-os-checked-function.js
@@ -1,3 +1,4 @@
+/* eslint-disable node-core/require-common-first */
'use strict';
// Flags: --expose_internals
diff --git a/test/parallel/test-process-env-allowed-flags.js b/test/parallel/test-process-env-allowed-flags.js
index 9edc3504ef..21beb5357a 100644
--- a/test/parallel/test-process-env-allowed-flags.js
+++ b/test/parallel/test-process-env-allowed-flags.js
@@ -1,7 +1,7 @@
'use strict';
-const assert = require('assert');
require('../common');
+const assert = require('assert');
// Assert legit flags are allowed, and bogus flags are disallowed
{
diff --git a/test/parallel/test-readline-position.js b/test/parallel/test-readline-position.js
index 0e62761ca5..60ef476afe 100644
--- a/test/parallel/test-readline-position.js
+++ b/test/parallel/test-readline-position.js
@@ -1,7 +1,7 @@
// Flags: --expose-internals
'use strict';
-const { internalBinding } = require('internal/test/binding');
require('../common');
+const { internalBinding } = require('internal/test/binding');
const { PassThrough } = require('stream');
const readline = require('readline');
const assert = require('assert');
diff --git a/test/parallel/test-regression-object-prototype.js b/test/parallel/test-regression-object-prototype.js
index 821c2af584..2ea1ba858a 100644
--- a/test/parallel/test-regression-object-prototype.js
+++ b/test/parallel/test-regression-object-prototype.js
@@ -19,7 +19,7 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
-/* eslint-disable node-core/required-modules */
+/* eslint-disable node-core/require-common-first, node-core/required-modules */
'use strict';
Object.prototype.xadsadsdasasdxx = function() {
diff --git a/test/parallel/test-stream-readable-pause-and-resume.js b/test/parallel/test-stream-readable-pause-and-resume.js
index 3169023d90..4d7d860a63 100644
--- a/test/parallel/test-stream-readable-pause-and-resume.js
+++ b/test/parallel/test-stream-readable-pause-and-resume.js
@@ -1,7 +1,7 @@
'use strict';
-const { Readable } = require('stream');
const common = require('../common');
+const { Readable } = require('stream');
let ticks = 18;
let expectedData = 19;
diff --git a/test/parallel/test-v8-serdes.js b/test/parallel/test-v8-serdes.js
index def4914e2e..58b919066e 100644
--- a/test/parallel/test-v8-serdes.js
+++ b/test/parallel/test-v8-serdes.js
@@ -2,9 +2,9 @@
'use strict';
-const { internalBinding } = require('internal/test/binding');
const common = require('../common');
const fixtures = require('../common/fixtures');
+const { internalBinding } = require('internal/test/binding');
const assert = require('assert');
const v8 = require('v8');
const os = require('os');
diff --git a/test/parallel/test-worker-parent-port-ref.js b/test/parallel/test-worker-parent-port-ref.js
index 0772d1c860..c1e79b9faa 100644
--- a/test/parallel/test-worker-parent-port-ref.js
+++ b/test/parallel/test-worker-parent-port-ref.js
@@ -1,6 +1,6 @@
'use strict';
-const assert = require('assert');
const common = require('../common');
+const assert = require('assert');
const { isMainThread, parentPort, Worker } = require('worker_threads');
// This test makes sure that we manipulate the references of
diff --git a/test/parallel/test-worker-process-cwd.js b/test/parallel/test-worker-process-cwd.js
index dec70ac07c..81c6edac3e 100644
--- a/test/parallel/test-worker-process-cwd.js
+++ b/test/parallel/test-worker-process-cwd.js
@@ -1,6 +1,6 @@
'use strict';
-const assert = require('assert');
const common = require('../common');
+const assert = require('assert');
const { Worker, isMainThread, parentPort } = require('worker_threads');
// Do not use isMainThread directly, otherwise the test would time out in case
diff --git a/test/parallel/test-worker-relative-path-double-dot.js b/test/parallel/test-worker-relative-path-double-dot.js
index ff3ca84e69..86707c1590 100644
--- a/test/parallel/test-worker-relative-path-double-dot.js
+++ b/test/parallel/test-worker-relative-path-double-dot.js
@@ -1,7 +1,7 @@
'use strict';
+const common = require('../common');
const path = require('path');
const assert = require('assert');
-const common = require('../common');
const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
diff --git a/test/parallel/test-worker-relative-path.js b/test/parallel/test-worker-relative-path.js
index e961447faa..3b7bb95b0d 100644
--- a/test/parallel/test-worker-relative-path.js
+++ b/test/parallel/test-worker-relative-path.js
@@ -1,7 +1,7 @@
'use strict';
+const common = require('../common');
const path = require('path');
const assert = require('assert');
-const common = require('../common');
const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
diff --git a/test/parallel/test-worker-unsupported-path.js b/test/parallel/test-worker-unsupported-path.js
index 6dcfd230dc..0c86f2ead0 100644
--- a/test/parallel/test-worker-unsupported-path.js
+++ b/test/parallel/test-worker-unsupported-path.js
@@ -1,7 +1,7 @@
'use strict';
-const path = require('path');
const common = require('../common');
+const path = require('path');
const assert = require('assert');
const { Worker } = require('worker_threads');