Skip to content

Commit 169ddc5

Browse files
ZYSzystargos
authored andcommitted
tools: force common be required before any other modules
PR-URL: #27650 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]>
1 parent e74e661 commit 169ddc5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+194
-66
lines changed

test/.eslintrc.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ rules:
2222
node-core/number-isnan: error
2323
## common module is mandatory in tests
2424
node-core/required-modules: [error, common]
25+
node-core/require-common-first: error
2526
node-core/no-duplicate-requires: off
2627

2728
# Global scoped methods and vars

test/async-hooks/hook-checks.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
2-
const assert = require('assert');
32
require('../common');
3+
const assert = require('assert');
44

55
/**
66
* Checks the expected invocations against the invocations that actually

test/async-hooks/verify-graph.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'use strict';
22

3+
require('../common');
34
const assert = require('assert');
45
const util = require('util');
5-
require('../common');
66

77
function findInGraph(graph, type, n) {
88
let found = 0;

test/common/README.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ thread.
386386
The `ArrayStream` module provides a simple `Stream` that pushes elements from
387387
a given array.
388388

389-
<!-- eslint-disable no-undef, node-core/required-modules -->
389+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
390390
```js
391391
const ArrayStream = require('../common/arraystream');
392392
const stream = new ArrayStream();
@@ -402,7 +402,7 @@ require a particular action to be taken after a given number of completed
402402
tasks (for instance, shutting down an HTTP server after a specific number of
403403
requests). The Countdown will fail the test if the remainder did not reach 0.
404404

405-
<!-- eslint-disable strict, node-core/required-modules -->
405+
<!-- eslint-disable strict, node-core/require-common-first, node-core/required-modules -->
406406
```js
407407
const Countdown = require('../common/countdown');
408408

@@ -574,7 +574,7 @@ one listed below. (`heap.validateSnapshotNodes(...)` is a shortcut for
574574

575575
Create a heap dump and an embedder graph copy and validate occurrences.
576576

577-
<!-- eslint-disable no-undef, node-core/required-modules -->
577+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
578578
```js
579579
validateSnapshotNodes('TLSWRAP', [
580580
{
@@ -592,7 +592,7 @@ validateSnapshotNodes('TLSWRAP', [
592592
The `hijackstdio` module provides utility functions for temporarily redirecting
593593
`stdout` and `stderr` output.
594594

595-
<!-- eslint-disable no-undef, node-core/required-modules -->
595+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
596596
```js
597597
const { hijackStdout, restoreStdout } = require('../common/hijackstdio');
598598

@@ -638,7 +638,7 @@ original state after calling [`hijackstdio.hijackStdOut()`][].
638638
The http2.js module provides a handful of utilities for creating mock HTTP/2
639639
frames for testing of HTTP/2 endpoints
640640

641-
<!-- eslint-disable no-unused-vars, node-core/required-modules -->
641+
<!-- eslint-disable no-unused-vars, node-core/require-common-first, node-core/required-modules -->
642642
```js
643643
const http2 = require('../common/http2');
644644
```
@@ -648,7 +648,7 @@ const http2 = require('../common/http2');
648648
The `http2.Frame` is a base class that creates a `Buffer` containing a
649649
serialized HTTP/2 frame header.
650650

651-
<!-- eslint-disable no-undef, node-core/required-modules -->
651+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
652652
```js
653653
// length is a 24-bit unsigned integer
654654
// 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.
667667
The `http2.DataFrame` is a subclass of `http2.Frame` that serializes a `DATA`
668668
frame.
669669

670-
<!-- eslint-disable no-undef, node-core/required-modules -->
670+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
671671
```js
672672
// id is the 32-bit stream identifier
673673
// payload is a Buffer containing the DATA payload
@@ -684,7 +684,7 @@ socket.write(frame.data);
684684
The `http2.HeadersFrame` is a subclass of `http2.Frame` that serializes a
685685
`HEADERS` frame.
686686

687-
<!-- eslint-disable no-undef, node-core/required-modules -->
687+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
688688
```js
689689
// id is the 32-bit stream identifier
690690
// payload is a Buffer containing the HEADERS payload (see either
@@ -702,7 +702,7 @@ socket.write(frame.data);
702702
The `http2.SettingsFrame` is a subclass of `http2.Frame` that serializes an
703703
empty `SETTINGS` frame.
704704

705-
<!-- eslint-disable no-undef, node-core/required-modules -->
705+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
706706
```js
707707
// ack is a boolean indicating whether or not to set the ACK flag.
708708
const frame = new http2.SettingsFrame(ack);
@@ -715,7 +715,7 @@ socket.write(frame.data);
715715
Set to a `Buffer` instance that contains a minimal set of serialized HTTP/2
716716
request headers to be used as the payload of a `http2.HeadersFrame`.
717717

718-
<!-- eslint-disable no-undef, node-core/required-modules -->
718+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
719719
```js
720720
const frame = new http2.HeadersFrame(1, http2.kFakeRequestHeaders, 0, true);
721721

@@ -727,7 +727,7 @@ socket.write(frame.data);
727727
Set to a `Buffer` instance that contains a minimal set of serialized HTTP/2
728728
response headers to be used as the payload a `http2.HeadersFrame`.
729729

730-
<!-- eslint-disable no-undef, node-core/required-modules -->
730+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
731731
```js
732732
const frame = new http2.HeadersFrame(1, http2.kFakeResponseHeaders, 0, true);
733733

@@ -739,7 +739,7 @@ socket.write(frame.data);
739739
Set to a `Buffer` containing the preamble bytes an HTTP/2 client must send
740740
upon initial establishment of a connection.
741741

742-
<!-- eslint-disable no-undef, node-core/required-modules -->
742+
<!-- eslint-disable no-undef, node-core/require-common-first, node-core/required-modules -->
743743
```js
744744
socket.write(http2.kClientMagic);
745745
```

test/common/arraystream.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
const { Stream } = require('stream');

test/common/benchmark.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22

33
'use strict';
44

test/common/countdown.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22

33
'use strict';
44

test/common/dns.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
const assert = require('assert');

test/common/duplexpair.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33
const { Duplex } = require('stream');
44
const assert = require('assert');

test/common/fixtures.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
const path = require('path');

test/common/heap.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33
const assert = require('assert');
44
const util = require('util');

test/common/hijackstdio.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
// Hijack stdout and stderr

test/common/http2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
// An HTTP/2 testing tool used to create mock frames for direct testing

test/common/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
2020
// USE OR OTHER DEALINGS IN THE SOFTWARE.
2121

22-
/* eslint-disable node-core/required-modules, node-core/crypto-check */
22+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
23+
/* eslint-disable node-core/crypto-check */
2324
'use strict';
2425
const process = global.process; // Some tests tamper with the process global.
2526
const path = require('path');

test/common/index.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
2+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
33

44
import { createRequireFromPath } from 'module';
55
import { fileURLToPath as toPath } from 'url';

test/common/internet.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
// Utilities for internet-related tests

test/common/report.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33
const assert = require('assert');
44
const fs = require('fs');

test/common/tls.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
/* eslint-disable node-core/required-modules, node-core/crypto-check */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
2+
/* eslint-disable node-core/crypto-check */
23

34
'use strict';
45
const crypto = require('crypto');

test/common/tmpdir.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
const fs = require('fs');

test/common/wpt.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22
'use strict';
33

44
const assert = require('assert');

test/es-module/test-esm-example-loader.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/example-loader.mjs
2-
/* eslint-disable node-core/required-modules */
2+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
33
import assert from 'assert';
44
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
55

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-with-dep.mjs
2-
/* eslint-disable node-core/required-modules */
2+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
33
import '../fixtures/es-modules/test-esm-ok.mjs';
44

55
// We just test that this module doesn't fail loading
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
2-
/* eslint-disable node-core/required-modules */
2+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
33
import './not-found.js';
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
2-
/* eslint-disable node-core/required-modules */
2+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
33
import './not-found.mjs';

test/es-module/test-esm-resolve-hook.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/js-loader.mjs
2-
/* eslint-disable node-core/required-modules */
2+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
33
import { namedExport } from '../fixtures/es-module-loaders/js-as-esm.js';
44
import assert from 'assert';
55
import ok from '../fixtures/es-modules/test-esm-ok.mjs';

test/es-module/test-esm-type-flag.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Flags: --experimental-modules
2-
import cjs from '../fixtures/baz.js';
32
import '../common/index.mjs';
3+
import cjs from '../fixtures/baz.js';
44
import { message } from '../fixtures/es-modules/message.mjs';
55
import assert from 'assert';
66

test/js-native-api/test_general/testInstanceOf.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
2-
const fs = require('fs');
3-
42
const common = require('../../common');
3+
const fs = require('fs');
54
const assert = require('assert');
65

76
// Addon is referenced through the eval expression in testFile

test/parallel/test-buffer-constructor-node-modules-paths.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'use strict';
22

3+
const common = require('../common');
34
const child_process = require('child_process');
45
const assert = require('assert');
5-
const common = require('../common');
66

77
if (process.env.NODE_PENDING_DEPRECATION)
88
common.skip('test does not work when NODE_PENDING_DEPRECATION is set');

test/parallel/test-buffer-constructor-outside-node-modules.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// Flags: --no-warnings
22
'use strict';
33

4+
const common = require('../common');
45
const vm = require('vm');
56
const assert = require('assert');
6-
const common = require('../common');
77

88
if (new Error().stack.includes('node_modules'))
99
common.skip('test does not work when inside `node_modules` directory');

test/parallel/test-buffer-includes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
2-
const assert = require('assert');
32
const common = require('../common');
3+
const assert = require('assert');
44

55
const b = Buffer.from('abcdef');
66
const buf_a = Buffer.from('a');

test/parallel/test-child-process-spawn-args.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
// caused the third argument (`options`) to be ignored.
77
// See https://github.com/nodejs/node/issues/24912.
88

9-
const assert = require('assert');
10-
const { spawn } = require('child_process');
11-
129
const common = require('../common');
1310
const tmpdir = require('../common/tmpdir');
1411

12+
const assert = require('assert');
13+
const { spawn } = require('child_process');
14+
1515
tmpdir.refresh();
1616

1717
const command = common.isWindows ? 'cd' : 'pwd';

test/parallel/test-child-process-spawnsync-args.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
// caused the third argument (`options`) to be ignored.
77
// See https://github.com/nodejs/node/issues/24912.
88

9-
const assert = require('assert');
10-
const { spawnSync } = require('child_process');
11-
129
const common = require('../common');
1310
const tmpdir = require('../common/tmpdir');
1411

12+
const assert = require('assert');
13+
const { spawnSync } = require('child_process');
14+
1515
const command = common.isWindows ? 'cd' : 'pwd';
1616
const options = { cwd: tmpdir.path };
1717

test/parallel/test-dgram-deprecation-error.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

3-
const assert = require('assert');
43
const common = require('../common');
4+
const assert = require('assert');
55
const dgram = require('dgram');
66
const fork = require('child_process').fork;
77

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
if (!common.hasCrypto)
5+
common.skip('missing crypto');
6+
7+
common.skipIfEslintMissing();
8+
9+
const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
10+
const rule = require('../../tools/eslint-rules/require-common-first');
11+
12+
new RuleTester().run('require-common-first', rule, {
13+
valid: [
14+
{
15+
code: 'require("common")\n' +
16+
'require("assert")'
17+
}
18+
],
19+
invalid: [
20+
{
21+
code: 'require("assert")\n' +
22+
'require("common")',
23+
errors: [{ message: 'Mandatory module "common" must be loaded ' +
24+
'before any other modules.' }]
25+
}
26+
]
27+
});

test/parallel/test-global-console-exists.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable node-core/required-modules */
1+
/* eslint-disable node-core/require-common-first, node-core/required-modules */
22

33
'use strict';
44

0 commit comments

Comments
 (0)