From 539f4c0e16a4d465c359a6918772368d51192501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Thu, 29 Jun 2017 11:52:06 +0200 Subject: [PATCH 001/174] process: use internal/errors in internalNextTick PR-URL: https://github.com/nodejs/node/pull/13982 Refs: https://github.com/nodejs/node/pull/12892 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- lib/internal/process/next_tick.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/process/next_tick.js b/lib/internal/process/next_tick.js index e41064104e0c3e..418f4ff8816d3f 100644 --- a/lib/internal/process/next_tick.js +++ b/lib/internal/process/next_tick.js @@ -295,7 +295,7 @@ function setupNextTick() { // about to exit since the callback would not have a chance to be executed. function internalNextTick(triggerAsyncId, callback) { if (typeof callback !== 'function') - throw new TypeError('callback is not a function'); + throw new errors.TypeError('ERR_INVALID_CALLBACK'); // CHECK(Number.isSafeInteger(triggerAsyncId) || triggerAsyncId === null) // CHECK(triggerAsyncId > 0 || triggerAsyncId === null) From 26ed9017302b967b507b7476a3f7257e10681c83 Mon Sep 17 00:00:00 2001 From: Alexander Gromnitsky Date: Tue, 20 Jun 2017 09:04:24 +0300 Subject: [PATCH 002/174] doc: fix some broken references PR-URL: https://github.com/nodejs/node/pull/13811 Reviewed-By: Jackson Tian Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Michael Dawson Reviewed-By: Vse Mozhet Byt --- doc/api/cli.md | 2 +- doc/api/errors.md | 2 +- doc/api/http.md | 2 +- doc/api/inspector.md | 2 +- doc/api/n-api.md | 2 +- doc/api/process.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/api/cli.md b/doc/api/cli.md index 2e644febab2f4a..e18eae56baecd6 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -558,4 +558,4 @@ equivalent to using the `--redirect-warnings=file` command-line flag. [REPL]: repl.html [SlowBuffer]: buffer.html#buffer_class_slowbuffer [debugger]: debugger.html -[emit_warning]: process.html#process_process_emitwarning_warning_name_ctor +[emit_warning]: process.html#process_process_emitwarning_warning_type_code_ctor diff --git a/doc/api/errors.md b/doc/api/errors.md index 92a3d4ac819902..88d3b1f6c79b15 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -790,7 +790,7 @@ likely an indication of a bug within Node.js itself. [`ERR_INVALID_ARG_TYPE`]: #ERR_INVALID_ARG_TYPE [`child.kill()`]: child_process.html#child_process_child_kill_signal [`child.send()`]: child_process.html#child_process_child_send_message_sendhandle_options_callback -[`fs.readFileSync`]: fs.html#fs_fs_readfilesync_file_options +[`fs.readFileSync`]: fs.html#fs_fs_readfilesync_path_options [`fs.readdir`]: fs.html#fs_fs_readdir_path_options_callback [`fs.unlink`]: fs.html#fs_fs_unlink_path_callback [`fs`]: fs.html diff --git a/doc/api/http.md b/doc/api/http.md index 34abebf0268376..85e877f7a411f9 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1894,7 +1894,7 @@ const req = http.request(options, (res) => { [`net.Server.close()`]: net.html#net_server_close_callback [`net.Server.listen()`]: net.html#net_server_listen_handle_backlog_callback [`net.Server.listen(path)`]: net.html#net_server_listen_path_backlog_callback -[`net.Server.listen(port)`]: net.html#net_server_listen_port_hostname_backlog_callback +[`net.Server.listen(port)`]: net.html#net_server_listen_port_host_backlog_callback [`net.Server`]: net.html#net_class_net_server [`net.Socket`]: net.html#net_class_net_socket [`net.createConnection()`]: net.html#net_net_createconnection_options_connectlistener diff --git a/doc/api/inspector.md b/doc/api/inspector.md index 3336874b949269..00fc927d0d35ee 100644 --- a/doc/api/inspector.md +++ b/doc/api/inspector.md @@ -135,7 +135,7 @@ messages again. Reconnected session will lose all inspector state, such as enabled agents or configured breakpoints. -[`session.connect()`]: #sessionconnect +[`session.connect()`]: #inspector_session_connect [`Debugger.paused`]: https://chromedevtools.github.io/devtools-protocol/v8/Debugger/#event-paused [`EventEmitter`]: events.html#events_class_eventemitter [Chrome DevTools Protocol Viewer]: https://chromedevtools.github.io/devtools-protocol/v8/ diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 0b5ac8456cb8fd..16d64d3d5fad70 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -2190,7 +2190,7 @@ won't be used). - `data`: The callback data passed into `method`, `getter` and `setter` if this function is invoked. - `attributes`: The attributes associated with the particular property. -See [`napi_property_attributes`](#napi_property_attributes). +See [`napi_property_attributes`](#n_api_napi_property_attributes). ### Functions #### *napi_get_property_names* diff --git a/doc/api/process.md b/doc/api/process.md index 35f6a28034fc58..9a8323de1741cf 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1856,5 +1856,5 @@ cases: [TTY]: tty.html#tty_tty [Writable]: stream.html#stream_writable_streams [note on process I/O]: process.html#process_a_note_on_process_i_o -[process_emit_warning]: #process_process_emitwarning_warning_name_ctor +[process_emit_warning]: #process_process_emitwarning_warning_type_code_ctor [process_warning]: #process_event_warning From 50ee4bd5983087afb87d5f830c9608577b8caa73 Mon Sep 17 00:00:00 2001 From: Nataly Shrits Date: Wed, 21 Jun 2017 21:09:37 +0300 Subject: [PATCH 003/174] test: replace indexOf with includes and startsWith PR-URL: https://github.com/nodejs/node/pull/13852 Refs: https://github.com/nodejs/node/issues/12586 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: Michael Dawson Reviewed-By: Vse Mozhet Byt --- test/addons/repl-domain-abort/test.js | 2 +- test/disabled/test-sendfd.js | 2 +- test/doctool/test-doctool-html.js | 8 +++---- test/internet/test-dns-any.js | 2 +- test/internet/test-dns.js | 2 +- test/parallel/test-buffer-write.js | 2 +- test/parallel/test-child-process-exec-cwd.js | 2 +- test/parallel/test-console.js | 2 +- .../test-dgram-error-message-address.js | 2 +- ...st-domain-top-level-error-handler-throw.js | 7 ++---- .../test-domain-uncaught-exception.js | 2 +- .../test-http-keepalive-maxsockets.js | 2 +- test/parallel/test-http-methods.js | 6 ++--- test/parallel/test-http-write-head.js | 2 +- test/parallel/test-net-server-connections.js | 2 +- test/parallel/test-path-parse-format.js | 2 +- test/parallel/test-process-getgroups.js | 2 +- test/parallel/test-repl-tab-complete.js | 22 +++++++++---------- test/parallel/test-tls-interleave.js | 2 +- test/pummel/test-dtrace-jsstack.js | 6 ++--- test/pummel/test-regress-GH-814.js | 2 +- test/pummel/test-regress-GH-814_2.js | 2 +- 22 files changed, 40 insertions(+), 43 deletions(-) diff --git a/test/addons/repl-domain-abort/test.js b/test/addons/repl-domain-abort/test.js index 4d217e04564e57..b1aae497e8b6d0 100644 --- a/test/addons/repl-domain-abort/test.js +++ b/test/addons/repl-domain-abort/test.js @@ -54,7 +54,7 @@ dInput._read = function _read(size) { }; dOutput._write = function _write(chunk, encoding, cb) { - if (chunk.toString().indexOf('cb_ran') === 0) + if (chunk.toString().startsWith('cb_ran')) cb_ran = true; cb(); }; diff --git a/test/disabled/test-sendfd.js b/test/disabled/test-sendfd.js index 3352e63532c127..bc42569c38bae1 100644 --- a/test/disabled/test-sendfd.js +++ b/test/disabled/test-sendfd.js @@ -93,7 +93,7 @@ pipeReadStream.on('data', function(data) { var rd = JSON.parse(d); assert.strictEqual(rd.pid, cpp); - assert.strictEqual(seenOrdinals.indexOf(rd.ord), -1); + assert.strictEqual(seenOrdinals.includes(rd.ord), false) seenOrdinals.unshift(rd.ord); }); diff --git a/test/doctool/test-doctool-html.js b/test/doctool/test-doctool-html.js index 8f78663cbefb75..3af5a5409db103 100644 --- a/test/doctool/test-doctool-html.js +++ b/test/doctool/test-doctool-html.js @@ -117,15 +117,15 @@ testData.forEach((item) => { const actual = output.replace(spaces, ''); // Assert that the input stripped of all whitespace contains the // expected list - assert.notStrictEqual(actual.indexOf(expected), -1); + assert(actual.includes(expected)); // Testing the insertion of Google Analytics script when // an analytics id is provided. Should not be present by default if (includeAnalytics) { - assert.notStrictEqual(actual.indexOf('google-analytics.com'), -1, - 'Google Analytics script was not present'); + assert(actual.includes('google-analytics.com'), + 'Google Analytics script was not present'); } else { - assert.strictEqual(actual.indexOf('google-analytics.com'), -1, + assert.strictEqual(actual.includes('google-analytics.com'), false, 'Google Analytics script was present'); } })); diff --git a/test/internet/test-dns-any.js b/test/internet/test-dns-any.js index 7650c59a613de3..dd80e48bf44e91 100644 --- a/test/internet/test-dns-any.js +++ b/test/internet/test-dns-any.js @@ -60,7 +60,7 @@ const checkers = { assert.ok(Array.isArray(r.entries)); assert.ok(r.entries.length > 0); r.entries.forEach((txt) => { - assert.strictEqual(txt.indexOf('v=spf1'), 0); + assert(txt.startsWith('v=spf1')); }); assert.strictEqual(r.type, 'TXT'); }, diff --git a/test/internet/test-dns.js b/test/internet/test-dns.js index 3096fda5b1ee75..e4bdfe51b79455 100644 --- a/test/internet/test-dns.js +++ b/test/internet/test-dns.js @@ -366,7 +366,7 @@ TEST(function test_resolveTxt(done) { assert.ifError(err); assert.strictEqual(records.length, 1); assert.ok(util.isArray(records[0])); - assert.strictEqual(records[0][0].indexOf('v=spf1'), 0); + assert(records[0][0].startsWith('v=spf1')); done(); }); diff --git a/test/parallel/test-buffer-write.js b/test/parallel/test-buffer-write.js index f278b92cce957c..34bba7b1e7c1d8 100644 --- a/test/parallel/test-buffer-write.js +++ b/test/parallel/test-buffer-write.js @@ -30,7 +30,7 @@ encodings const len = Buffer.byteLength('foo', encoding); assert.strictEqual(buf.write('foo', 0, len, encoding), len); - if (encoding.indexOf('-') !== -1) + if (encoding.includes('-')) encoding = encoding.replace('-', ''); assert.deepStrictEqual(buf, resultMap.get(encoding.toLowerCase())); diff --git a/test/parallel/test-child-process-exec-cwd.js b/test/parallel/test-child-process-exec-cwd.js index c217185ffeadb0..f6719830c33538 100644 --- a/test/parallel/test-child-process-exec-cwd.js +++ b/test/parallel/test-child-process-exec-cwd.js @@ -36,5 +36,5 @@ if (common.isWindows) { exec(pwdcommand, {cwd: dir}, common.mustCall(function(err, stdout, stderr) { assert.ifError(err); - assert.strictEqual(stdout.indexOf(dir), 0); + assert(stdout.startsWith(dir)); })); diff --git a/test/parallel/test-console.js b/test/parallel/test-console.js index eecfd8334e3ff2..0fcb765f207fb9 100644 --- a/test/parallel/test-console.js +++ b/test/parallel/test-console.js @@ -137,7 +137,7 @@ assert.strictEqual("{ foo: 'bar', inspect: [Function: inspect] }\n", assert.strictEqual("{ foo: 'bar', inspect: [Function: inspect] }\n", strings.shift()); assert.ok(strings.shift().includes('foo: [Object]')); -assert.strictEqual(-1, strings.shift().indexOf('baz')); +assert.strictEqual(strings.shift().includes('baz'), false); assert.ok(/^label: \d+\.\d{3}ms$/.test(strings.shift().trim())); assert.ok(/^__proto__: \d+\.\d{3}ms$/.test(strings.shift().trim())); assert.ok(/^constructor: \d+\.\d{3}ms$/.test(strings.shift().trim())); diff --git a/test/parallel/test-dgram-error-message-address.js b/test/parallel/test-dgram-error-message-address.js index cdb913691f63b3..859ee560c34c01 100644 --- a/test/parallel/test-dgram-error-message-address.js +++ b/test/parallel/test-dgram-error-message-address.js @@ -47,7 +47,7 @@ socket_ipv6.on('listening', common.mustNotCall()); socket_ipv6.on('error', common.mustCall(function(e) { // EAFNOSUPPORT or EPROTONOSUPPORT means IPv6 is disabled on this system. const allowed = ['EADDRNOTAVAIL', 'EAFNOSUPPORT', 'EPROTONOSUPPORT']; - assert.notStrictEqual(allowed.indexOf(e.code), -1); + assert(allowed.includes(e.code)); assert.strictEqual(e.port, undefined); assert.strictEqual(e.message, `bind ${e.code} 111::1`); assert.strictEqual(e.address, '111::1'); diff --git a/test/parallel/test-domain-top-level-error-handler-throw.js b/test/parallel/test-domain-top-level-error-handler-throw.js index 53a73eac426232..86df8db5b7423f 100644 --- a/test/parallel/test-domain-top-level-error-handler-throw.js +++ b/test/parallel/test-domain-top-level-error-handler-throw.js @@ -37,11 +37,8 @@ if (process.argv[2] === 'child') { }); child.on('close', function onChildClosed() { - assert.notStrictEqual( - stderrOutput.indexOf(domainErrHandlerExMessage), - -1 - ); - assert.strictEqual(stderrOutput.indexOf(internalExMessage), -1); + assert(stderrOutput.includes(domainErrHandlerExMessage)); + assert.strictEqual(stderrOutput.includes(internalExMessage), false); }); child.on('exit', function onChildExited(exitCode, signal) { diff --git a/test/parallel/test-domain-uncaught-exception.js b/test/parallel/test-domain-uncaught-exception.js index 0e5548df563803..89447184036717 100644 --- a/test/parallel/test-domain-uncaught-exception.js +++ b/test/parallel/test-domain-uncaught-exception.js @@ -191,7 +191,7 @@ if (process.argv[2] === 'child') { if (test.messagesReceived) { test.messagesReceived.forEach(function(receivedMessage) { - if (test.expectedMessages.indexOf(receivedMessage) === -1) { + if (!test.expectedMessages.includes(receivedMessage)) { assert.fail(`test ${test.fn.name} should not have sent message: ${ receivedMessage} but did`); } diff --git a/test/parallel/test-http-keepalive-maxsockets.js b/test/parallel/test-http-keepalive-maxsockets.js index 2d934793acda45..53d67b24797770 100644 --- a/test/parallel/test-http-keepalive-maxsockets.js +++ b/test/parallel/test-http-keepalive-maxsockets.js @@ -28,7 +28,7 @@ const http = require('http'); const serverSockets = []; const server = http.createServer(function(req, res) { - if (serverSockets.indexOf(req.socket) === -1) { + if (!serverSockets.includes(req.socket)) { serverSockets.push(req.socket); } res.end(req.url); diff --git a/test/parallel/test-http-methods.js b/test/parallel/test-http-methods.js index 0f24c5abe6508c..9d00d8598d10f8 100644 --- a/test/parallel/test-http-methods.js +++ b/test/parallel/test-http-methods.js @@ -27,7 +27,7 @@ const util = require('util'); assert(Array.isArray(http.METHODS)); assert(http.METHODS.length > 0); -assert.notStrictEqual(http.METHODS.indexOf('GET'), -1); -assert.notStrictEqual(http.METHODS.indexOf('HEAD'), -1); -assert.notStrictEqual(http.METHODS.indexOf('POST'), -1); +assert(http.METHODS.includes('GET')); +assert(http.METHODS.includes('HEAD')); +assert(http.METHODS.includes('POST')); assert.deepStrictEqual(util._extend([], http.METHODS), http.METHODS.sort()); diff --git a/test/parallel/test-http-write-head.js b/test/parallel/test-http-write-head.js index dd716f17aef423..143643c4be4eaf 100644 --- a/test/parallel/test-http-write-head.js +++ b/test/parallel/test-http-write-head.js @@ -67,7 +67,7 @@ function runTest() { http.get({ port: this.address().port }, common.mustCall((response) => { response.on('end', common.mustCall(() => { assert.strictEqual(response.headers['test'], '2'); - assert.notStrictEqual(response.rawHeaders.indexOf('Test'), -1); + assert(response.rawHeaders.includes('Test')); s.close(); })); response.resume(); diff --git a/test/parallel/test-net-server-connections.js b/test/parallel/test-net-server-connections.js index 39ff1e8ff6b2f0..c424d2a729f5b0 100644 --- a/test/parallel/test-net-server-connections.js +++ b/test/parallel/test-net-server-connections.js @@ -34,6 +34,6 @@ common.expectWarning('DeprecationWarning', expectedWarning); // test that server.connections property is no longer enumerable now that it // has been marked as deprecated -assert.strictEqual(Object.keys(server).indexOf('connections'), -1); +assert.strictEqual(Object.keys(server).includes('connections'), false); assert.strictEqual(server.connections, 0); diff --git a/test/parallel/test-path-parse-format.js b/test/parallel/test-path-parse-format.js index d69aeac9da44a2..2ef209464e1b98 100644 --- a/test/parallel/test-path-parse-format.js +++ b/test/parallel/test-path-parse-format.js @@ -165,7 +165,7 @@ trailingTests.forEach(function(test) { if (!failed) { for (let i = 0; i < actualKeys.length; ++i) { const key = actualKeys[i]; - if (expectedKeys.indexOf(key) === -1 || actual[key] !== expected[key]) { + if (!expectedKeys.includes(key) || actual[key] !== expected[key]) { failed = true; break; } diff --git a/test/parallel/test-process-getgroups.js b/test/parallel/test-process-getgroups.js index 91a75c63d60c22..952e0d95ef9d95 100644 --- a/test/parallel/test-process-getgroups.js +++ b/test/parallel/test-process-getgroups.js @@ -45,7 +45,7 @@ if (typeof process.getgroups === 'function') { } function check(a, b) { - for (let i = 0; i < a.length; ++i) assert.notStrictEqual(b.indexOf(a[i]), -1); + for (let i = 0; i < a.length; ++i) assert(b.includes(a[i])); } function unique(groups) { diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index 6df0d81f8d7cc0..87577c04e0dcb8 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -207,7 +207,7 @@ putIn.run(['.clear']); testMe.complete('require(\'', common.mustCall(function(error, data) { assert.strictEqual(error, null); repl._builtinLibs.forEach(function(lib) { - assert.notStrictEqual(data[0].indexOf(lib), -1, `${lib} not found`); + assert(data[0].includes(lib), `${lib} not found`); }); })); @@ -215,7 +215,7 @@ testMe.complete('require(\'n', common.mustCall(function(error, data) { assert.strictEqual(error, null); assert.strictEqual(data.length, 2); assert.strictEqual(data[1], 'n'); - assert.notStrictEqual(data[0].indexOf('net'), -1); + assert(data[0].includes('net')); // It's possible to pick up non-core modules too data[0].forEach(function(completion) { if (completion) @@ -260,9 +260,9 @@ putIn.run(['.clear']); putIn.run(['var ary = [1,2,3];']); testMe.complete('ary.', common.mustCall(function(error, data) { - assert.strictEqual(data[0].indexOf('ary.0'), -1); - assert.strictEqual(data[0].indexOf('ary.1'), -1); - assert.strictEqual(data[0].indexOf('ary.2'), -1); + assert.strictEqual(data[0].includes('ary.0'), false); + assert.strictEqual(data[0].includes('ary.1'), false); + assert.strictEqual(data[0].includes('ary.2'), false); })); // Make sure tab completion does not include integer keys in an object @@ -270,9 +270,9 @@ putIn.run(['.clear']); putIn.run(['var obj = {1:"a","1a":"b",a:"b"};']); testMe.complete('obj.', common.mustCall(function(error, data) { - assert.strictEqual(data[0].indexOf('obj.1'), -1); - assert.strictEqual(data[0].indexOf('obj.1a'), -1); - assert.notStrictEqual(data[0].indexOf('obj.a'), -1); + assert.strictEqual(data[0].includes('obj.1'), false); + assert.strictEqual(data[0].includes('obj.1a'), false); + assert(data[0].includes('obj.a')); })); // Don't try to complete results of non-simple expressions @@ -286,9 +286,9 @@ putIn.run(['.clear']); putIn.run(['var obj = {1:"a","1a":"b",a:"b"};']); testMe.complete(' obj.', common.mustCall((error, data) => { - assert.strictEqual(data[0].indexOf('obj.1'), -1); - assert.strictEqual(data[0].indexOf('obj.1a'), -1); - assert.notStrictEqual(data[0].indexOf('obj.a'), -1); + assert.strictEqual(data[0].includes('obj.1'), false); + assert.strictEqual(data[0].includes('obj.1a'), false); + assert(data[0].includes('obj.a')); })); // Works inside assignments diff --git a/test/parallel/test-tls-interleave.js b/test/parallel/test-tls-interleave.js index b978e30d8bdafa..131915911fbe9c 100644 --- a/test/parallel/test-tls-interleave.js +++ b/test/parallel/test-tls-interleave.js @@ -59,7 +59,7 @@ const server = tls.createServer(options, function(c) { data = data.toString(); while (data.length !== 0) { - assert.strictEqual(data.indexOf(writes[receivedWrites]), 0); + assert(data.startsWith(writes[receivedWrites])); data = data.slice(writes[receivedWrites].length); if (++receivedWrites === writes.length) { diff --git a/test/pummel/test-dtrace-jsstack.js b/test/pummel/test-dtrace-jsstack.js index 2f2506031dee02..d69e96b2511711 100644 --- a/test/pummel/test-dtrace-jsstack.js +++ b/test/pummel/test-dtrace-jsstack.js @@ -86,14 +86,14 @@ dtrace.on('exit', function(code) { for (let i = 0; i < lines.length; i++) { const line = lines[i]; - if (line.indexOf(sentinel) === -1 || frames.length === 0) + if (!line.includes(sentinel) || frames.length === 0) continue; const frame = line.substr(line.indexOf(sentinel) + sentinel.length); const top = frames.shift(); - assert.strictEqual(frame.indexOf(top), 0, - `unexpected frame where ${top} was expected`); + assert(frame.startsWith(top), + `unexpected frame where ${top} was expected`); } assert.strictEqual(frames.length, 0, diff --git a/test/pummel/test-regress-GH-814.js b/test/pummel/test-regress-GH-814.js index 898f30c89c05d2..a43a67fe77cc2e 100644 --- a/test/pummel/test-regress-GH-814.js +++ b/test/pummel/test-regress-GH-814.js @@ -51,7 +51,7 @@ const tail = require('child_process').spawn('tail', ['-f', testFileName]); tail.stdout.on('data', tailCB); function tailCB(data) { - PASS = data.toString().indexOf('.') < 0; + PASS = !data.toString().includes('.'); } diff --git a/test/pummel/test-regress-GH-814_2.js b/test/pummel/test-regress-GH-814_2.js index 5161fdb2706664..516a8727c65012 100644 --- a/test/pummel/test-regress-GH-814_2.js +++ b/test/pummel/test-regress-GH-814_2.js @@ -35,7 +35,7 @@ const tailProc = require('child_process').spawn('tail', ['-f', testFileName]); tailProc.stdout.on('data', tailCB); function tailCB(data) { - PASS = data.toString().indexOf('.') < 0; + PASS = !data.toString().includes('.'); if (PASS) { //console.error('i'); From 310040c89e2566b22be53f5d4f96b0b027a7ac5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Kraj=C4=8Dovi=C4=8D?= Date: Sun, 18 Jun 2017 20:28:07 +0200 Subject: [PATCH 004/174] doc: add default values to functions in fs.md PR-URL: https://github.com/nodejs/node/pull/13767 Refs: https://github.com/nodejs/node/issues/11135 Refs: https://github.com/nodejs/node/pull/13769 Reviewed-By: Gibson Fahnestock Reviewed-By: Colin Ihrig --- doc/api/fs.md | 96 +++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/doc/api/fs.md b/doc/api/fs.md index 788a6ed4a35168..fc4bc9592c82b9 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -437,7 +437,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `fs.constants.F_OK` * `callback` {Function} Tests a user's permissions for the file or directory specified by `path`. @@ -563,7 +563,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `fs.constants.F_OK` Synchronous version of [`fs.access()`][]. This throws if any accessibility checks fail, and does nothing otherwise. @@ -587,9 +587,9 @@ changes: * `file` {string|Buffer|number} filename or file descriptor * `data` {string|Buffer} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'a'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'a'` * `callback` {Function} Asynchronously append data to a file, creating the file if it does not yet exist. @@ -630,9 +630,9 @@ changes: * `file` {string|Buffer|number} filename or file descriptor * `data` {string|Buffer} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'a'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'a'` The synchronous version of [`fs.appendFile()`][]. Returns `undefined`. @@ -1136,7 +1136,7 @@ added: v0.1.96 Synchronous fsync(2). Returns `undefined`. -## fs.ftruncate(fd, len, callback) +## fs.ftruncate(fd[, len], callback) * `fd` {integer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` * `callback` {Function} Asynchronous ftruncate(2). No arguments other than a possible exception are @@ -1194,13 +1194,13 @@ fs.ftruncate(fd, 10, (err) => { The last three bytes are null bytes ('\0'), to compensate the over-truncation. -## fs.ftruncateSync(fd, len) +## fs.ftruncateSync(fd[, len]) * `fd` {integer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` Synchronous ftruncate(2). Returns `undefined`. @@ -1392,7 +1392,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `0o777` * `callback` {Function} Asynchronous mkdir(2). No arguments other than a possible exception are given @@ -1409,7 +1409,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `0o777` Synchronous mkdir(2). Returns `undefined`. @@ -1428,7 +1428,7 @@ changes: * `prefix` {string} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Creates a unique temporary directory. @@ -1490,7 +1490,7 @@ added: v5.10.0 * `prefix` {string} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` The synchronous version of [`fs.mkdtemp()`][]. Returns the created folder path. @@ -1510,7 +1510,7 @@ changes: * `path` {string|Buffer|URL} * `flags` {string|number} -* `mode` {integer} +* `mode` {integer} **Default:** `0o666` * `callback` {Function} Asynchronous file open. See open(2). `flags` can be: @@ -1552,7 +1552,7 @@ The file is created if it does not exist. * `'ax+'` - Like `'a+'` but fails if `path` exists. `mode` sets the file mode (permission and sticky bits), but only if the file was -created. It defaults to `0666`, readable and writable. +created. It defaults to `0o666`, readable and writable. The callback gets two arguments `(err, fd)`. @@ -1599,7 +1599,7 @@ changes: * `path` {string|Buffer|URL} * `flags` {string|number} -* `mode` {integer} +* `mode` {integer} **Default:** `0o666` Synchronous version of [`fs.open()`][]. Returns an integer representing the file descriptor. @@ -1658,7 +1658,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Asynchronous readdir(3). Reads the contents of a directory. @@ -1682,7 +1682,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` Synchronous readdir(3). Returns an array of filenames excluding `'.'` and `'..'`. @@ -1715,8 +1715,8 @@ changes: * `path` {string|Buffer|URL|integer} filename or file descriptor * `options` {Object|string} - * `encoding` {string|null} default = `null` - * `flag` {string} default = `'r'` + * `encoding` {string|null} **Default:** `null` + * `flag` {string} **Default:** `'r'` * `callback` {Function} Asynchronously reads the entire contents of a file. Example: @@ -1775,8 +1775,8 @@ changes: * `path` {string|Buffer|URL|integer} filename or file descriptor * `options` {Object|string} - * `encoding` {string|null} default = `null` - * `flag` {string} default = `'r'` + * `encoding` {string|null} **Default:** `null` + * `flag` {string} **Default:** `'r'` Synchronous version of [`fs.readFile()`][]. Returns the contents of the `path`. @@ -1811,7 +1811,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Asynchronous readlink(2). The callback gets two arguments `(err, @@ -1834,7 +1834,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` Synchronous readlink(2). Returns the symbolic link's string value. @@ -1886,7 +1886,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Asynchronous realpath(3). The `callback` gets two arguments `(err, @@ -1924,7 +1924,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` Synchronous realpath(3). Returns the resolved path. @@ -2067,7 +2067,7 @@ changes: * `target` {string|Buffer|URL} * `path` {string|Buffer|URL} -* `type` {string} +* `type` {string} **Default:** `'file'` * `callback` {Function} Asynchronous symlink(2). No arguments other than a possible exception are given @@ -2098,11 +2098,11 @@ changes: * `target` {string|Buffer|URL} * `path` {string|Buffer|URL} -* `type` {string} +* `type` {string} **Default:** `'file'` Synchronous symlink(2). Returns `undefined`. -## fs.truncate(path, len, callback) +## fs.truncate(path[, len], callback) * `path` {string|Buffer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` * `callback` {Function} Asynchronous truncate(2). No arguments other than a possible exception are given to the completion callback. A file descriptor can also be passed as the first argument. In this case, `fs.ftruncate()` is called. -## fs.truncateSync(path, len) +## fs.truncateSync(path[, len]) * `path` {string|Buffer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` Synchronous truncate(2). Returns `undefined`. A file descriptor can also be passed as the first argument. In this case, `fs.ftruncateSync()` is called. @@ -2171,7 +2171,7 @@ added: v0.1.31 --> * `filename` {string|Buffer} -* `listener` {Function} +* `listener` {Function|undefined} **Default:** `undefined` Stop watching for changes on `filename`. If `listener` is specified, only that particular listener is removed. Otherwise, *all* listeners are removed, @@ -2254,14 +2254,14 @@ changes: * `filename` {string|Buffer|URL} * `options` {string|Object} * `persistent` {boolean} Indicates whether the process should continue to run - as long as files are being watched. default = `true` + as long as files are being watched. **Default:** `true` * `recursive` {boolean} Indicates whether all subdirectories should be watched, or only the current directory. This applies when a directory is - specified, and only on supported platforms (See [Caveats][]). default = + specified, and only on supported platforms (See [Caveats][]). **Default:** `false` * `encoding` {string} Specifies the character encoding to be used for the - filename passed to the listener. default = `'utf8'` -* `listener` {Function} + filename passed to the listener. **Default:** `'utf8'` +* `listener` {Function|undefined} **Default:** `undefined` Watch for changes on `filename`, where `filename` is either a file or a directory. The returned object is a [`fs.FSWatcher`][]. @@ -2361,8 +2361,8 @@ changes: * `filename` {string|Buffer|URL} * `options` {Object} - * `persistent` {boolean} - * `interval` {integer} + * `persistent` {boolean} **Default:** `true` + * `interval` {integer} **Default:** `5007` * `listener` {Function} Watch for changes on `filename`. The callback `listener` will be called each @@ -2510,9 +2510,9 @@ changes: * `file` {string|Buffer|integer} filename or file descriptor * `data` {string|Buffer|Uint8Array} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'w'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'w'` * `callback` {Function} Asynchronously writes data to a file, replacing the file if it already exists. @@ -2560,9 +2560,9 @@ changes: * `file` {string|Buffer|integer} filename or file descriptor * `data` {string|Buffer|Uint8Array} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'w'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'w'` The synchronous version of [`fs.writeFile()`][]. Returns `undefined`. From cfb6f94b307d799547aeb315e3b98465dd2c63e6 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Sat, 1 Jul 2017 23:40:24 -0400 Subject: [PATCH 005/174] test: mark test-npm-install flaky on arm PR-URL: https://github.com/nodejs/node/pull/14035 Refs: https://github.com/nodejs/node/issues/14015 Reviewed-By: Gibson Fahnestock Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- test/parallel/parallel.status | 1 + 1 file changed, 1 insertion(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index fb5c0bb39f203e..5a0e7735b6277d 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -14,6 +14,7 @@ prefix parallel [$arch==arm || $arch==arm64] test-fs-readdir-ucs2 : PASS,FLAKY +test-npm-install: PASS,FLAKY [$system==solaris] # Also applies to SmartOS From 199e9052492b696793b61ddf1a82fd51498dc2e4 Mon Sep 17 00:00:00 2001 From: Ruslan Iusupov Date: Fri, 16 Jun 2017 11:41:11 +0200 Subject: [PATCH 006/174] doc: fix example in child_process.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/13716 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: Vse Mozhet Byt --- doc/api/child_process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index 6ea104e23956c5..a834f5151e25a1 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -469,7 +469,7 @@ grep.on('close', (code) => { ``` -Example of checking for failed exec: +Example of checking for failed `spawn`: ```js const { spawn } = require('child_process'); From b89c27d36076aff81d58bfc7e804447500ee6e9c Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:54:56 +0200 Subject: [PATCH 007/174] tools: change var to const in ./doc/addon-verify PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/addon-verify.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/doc/addon-verify.js b/tools/doc/addon-verify.js index 86a81935892745..e480a0d1bed050 100644 --- a/tools/doc/addon-verify.js +++ b/tools/doc/addon-verify.js @@ -94,7 +94,7 @@ ${files[name].replace('Release', "' + common.buildType + '")} fs.mkdir(dir, function() { // Ignore errors - var done = once(ondone); + const done = once(ondone); var waiting = files.length; files.forEach(function(file) { fs.writeFile(file.path, file.content, function(err) { From 148f49fcdc1d2c4b156414b0aa13350024a9733b Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:55:27 +0200 Subject: [PATCH 008/174] tools: change var to const in ./doc/json PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/json.js | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/tools/doc/json.js b/tools/doc/json.js index 0e205ed7cbae61..aad860f840ae09 100644 --- a/tools/doc/json.js +++ b/tools/doc/json.js @@ -30,7 +30,7 @@ const common = require('./common.js'); const marked = require('marked'); // customized heading without id attribute -var renderer = new marked.Renderer(); +const renderer = new marked.Renderer(); renderer.heading = function(text, level) { return '' + text + '\n'; }; @@ -39,14 +39,14 @@ marked.setOptions({ }); function doJSON(input, filename, cb) { - var root = {source: filename}; - var stack = [root]; + const root = {source: filename}; + const stack = [root]; var depth = 0; var current = root; var state = null; - var lexed = marked.lexer(input); + const lexed = marked.lexer(input); lexed.forEach(function(tok) { - var type = tok.type; + const type = tok.type; var text = tok.text; // @@ -223,14 +223,14 @@ function doJSON(input, filename, cb) { // default: 'false' } ] } ] function processList(section) { - var list = section.list; - var values = []; + const list = section.list; + const values = []; var current; - var stack = []; + const stack = []; // for now, *just* build the heirarchical list list.forEach(function(tok) { - var type = tok.type; + const type = tok.type; if (type === 'space') return; if (type === 'list_item_start' || type === 'loose_item_start') { var n = {}; @@ -329,7 +329,7 @@ function parseSignature(text, sig) { params = params[1]; params = params.split(/,/); var optionalLevel = 0; - var optionalCharDict = {'[': 1, ' ': 0, ']': -1}; + const optionalCharDict = {'[': 1, ' ': 0, ']': -1}; params.forEach(function(p, i) { p = p.trim(); if (!p) return; @@ -351,7 +351,7 @@ function parseSignature(text, sig) { } p = p.substring(0, pos + 1); - var eq = p.indexOf('='); + const eq = p.indexOf('='); if (eq !== -1) { def = p.substr(eq + 1); p = p.substr(0, eq); @@ -381,8 +381,8 @@ function parseListItem(item) { // text = text.replace(/^(Argument|Param)s?\s*:?\s*/i, ''); text = text.replace(/^, /, '').trim(); - var retExpr = /^returns?\s*:?\s*/i; - var ret = text.match(retExpr); + const retExpr = /^returns?\s*:?\s*/i; + const ret = text.match(retExpr); if (ret) { item.name = 'return'; text = text.replace(retExpr, ''); @@ -396,24 +396,24 @@ function parseListItem(item) { } text = text.trim(); - var defaultExpr = /\(default\s*[:=]?\s*['"`]?([^, '"`]*)['"`]?\)/i; - var def = text.match(defaultExpr); + const defaultExpr = /\(default\s*[:=]?\s*['"`]?([^, '"`]*)['"`]?\)/i; + const def = text.match(defaultExpr); if (def) { item.default = def[1]; text = text.replace(defaultExpr, ''); } text = text.trim(); - var typeExpr = /^\{([^}]+)\}/; - var type = text.match(typeExpr); + const typeExpr = /^\{([^}]+)\}/; + const type = text.match(typeExpr); if (type) { item.type = type[1]; text = text.replace(typeExpr, ''); } text = text.trim(); - var optExpr = /^Optional\.|(?:, )?Optional$/; - var optional = text.match(optExpr); + const optExpr = /^Optional\.|(?:, )?Optional$/; + const optional = text.match(optExpr); if (optional) { item.optional = true; text = text.replace(optExpr, ''); @@ -556,19 +556,19 @@ function deepCopy_(src) { // these parse out the contents of an H# tag -var eventExpr = /^Event(?::|\s)+['"]?([^"']+).*$/i; -var classExpr = /^Class:\s*([^ ]+).*$/i; -var propExpr = /^[^.]+\.([^ .()]+)\s*$/; -var braceExpr = /^[^.[]+(\[[^\]]+\])\s*$/; -var classMethExpr = /^class\s*method\s*:?[^.]+\.([^ .()]+)\([^)]*\)\s*$/i; -var methExpr = /^(?:[^.]+\.)?([^ .()]+)\([^)]*\)\s*$/; -var newExpr = /^new ([A-Z][a-zA-Z]+)\([^)]*\)\s*$/; +const eventExpr = /^Event(?::|\s)+['"]?([^"']+).*$/i; +const classExpr = /^Class:\s*([^ ]+).*$/i; +const propExpr = /^[^.]+\.([^ .()]+)\s*$/; +const braceExpr = /^[^.[]+(\[[^\]]+\])\s*$/; +const classMethExpr = /^class\s*method\s*:?[^.]+\.([^ .()]+)\([^)]*\)\s*$/i; +const methExpr = /^(?:[^.]+\.)?([^ .()]+)\([^)]*\)\s*$/; +const newExpr = /^new ([A-Z][a-zA-Z]+)\([^)]*\)\s*$/; var paramExpr = /\((.*)\);?$/; function newSection(tok) { - var section = {}; + const section = {}; // infer the type from the text. - var text = section.textRaw = tok.text; + const text = section.textRaw = tok.text; if (text.match(eventExpr)) { section.type = 'event'; section.name = text.replace(eventExpr, '$1'); From f3bff93e21af43ba353f8dea94b6dccba631391e Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:55:45 +0200 Subject: [PATCH 009/174] tools: change var to const in ./doc/preprocess PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/preprocess.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/doc/preprocess.js b/tools/doc/preprocess.js index 55d90996f71c13..01340d40602ba7 100644 --- a/tools/doc/preprocess.js +++ b/tools/doc/preprocess.js @@ -2,11 +2,11 @@ module.exports = preprocess; -var path = require('path'); -var fs = require('fs'); +const path = require('path'); +const fs = require('fs'); -var includeExpr = /^@include\s+([A-Za-z0-9-_]+)(?:\.)?([a-zA-Z]*)$/gmi; -var includeData = {}; +const includeExpr = /^@include\s+([A-Za-z0-9-_]+)(?:\.)?([a-zA-Z]*)$/gmi; +const includeData = {}; function preprocess(inputFile, input, cb) { input = stripComments(input); @@ -22,7 +22,7 @@ function stripComments(input) { } function processIncludes(inputFile, input, cb) { - var includes = input.match(includeExpr); + const includes = input.match(includeExpr); if (includes === null) return cb(null, input); var errState = null; console.error(includes); @@ -40,7 +40,7 @@ function processIncludes(inputFile, input, cb) { } } - var fullFname = path.resolve(path.dirname(inputFile), fname); + const fullFname = path.resolve(path.dirname(inputFile), fname); fs.readFile(fullFname, 'utf8', function(er, inc) { if (errState) return; if (er) return cb(errState = er); From 7ed7b22e6723dfb2ebfde6810eac6f23ab830018 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:56:20 +0200 Subject: [PATCH 010/174] tools: change var to const in ./license2rtf PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/license2rtf.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/tools/license2rtf.js b/tools/license2rtf.js index 4b3d71fe5b99e9..22b5ffd522f543 100644 --- a/tools/license2rtf.js +++ b/tools/license2rtf.js @@ -16,7 +16,7 @@ function LineSplitter() { this.writable = true; this.write = function(data) { - var lines = (buffer + data).split(/\r\n|\n\r|\n|\r/); + const lines = (buffer + data).split(/\r\n|\n\r|\n|\r/); for (var i = 0; i < lines.length - 1; i++) { self.emit('data', lines[i]); } @@ -128,18 +128,18 @@ function ParagraphParser() { } // Find out indentation level and the start of a lied or numbered list; - var result = /^(\s*)(\d+\.|\*|-)?\s*/.exec(line); + const result = /^(\s*)(\d+\.|\*|-)?\s*/.exec(line); assert.ok(result); // The number of characters that will be stripped from the beginning of // the line. - var line_strip_length = result[0].length; + const line_strip_length = result[0].length; // The indentation size that will be used to detect indentation jumps. // Fudge by 1 space. - var line_indent = Math.floor(result[0].length / 2) * 2; + const line_indent = Math.floor(line_strip_length / 2) * 2; // The indentation level that will be exported - var level = Math.floor(result[1].length / 2); + const level = Math.floor(result[1].length / 2); // The list indicator that precedes the actual content, if any. - var line_li = result[2]; + const line_li = result[2]; // Flush the paragraph when there is a li or an indentation jump if (line_li || (line_indent !== paragraph_line_indent && @@ -175,14 +175,14 @@ inherits(ParagraphParser, Stream); * replaces multiple consecutive whitespace characters by a single one. */ function Unwrapper() { - var self = this; + const self = this; Stream.call(this); this.writable = true; this.write = function(paragraph) { - var lines = paragraph.lines; - var break_after = []; + const lines = paragraph.lines; + const break_after = []; var i; for (i = 0; i < lines.length - 1; i++) { @@ -236,15 +236,14 @@ function RtfGenerator() { Stream.call(this); this.writable = true; - this.write = function(paragraph) { + this.write = function({ li, level, lines, in_license_block: lic }) { if (!did_write_anything) { emitHeader(); did_write_anything = true; } - var li = paragraph.li; - var level = paragraph.level + (li ? 1 : 0); - var lic = paragraph.in_license_block; + if (li) + level++; var rtf = '\\pard'; rtf += '\\sa150\\sl300\\slmult1'; @@ -261,7 +260,7 @@ function RtfGenerator() { if (li) rtf += ' ' + li + '\\tab'; rtf += ' '; - rtf += paragraph.lines.map(rtfEscape).join('\\line '); + rtf += lines.map(rtfEscape).join('\\line '); if (!lic) rtf += '\\b0'; rtf += '\\par\n'; From 8edde98f160153acf7ccd82d7e71446d2a20f22e Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:57:02 +0200 Subject: [PATCH 011/174] test: change var to const in ./common PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- test/common/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/common/index.js b/test/common/index.js index 6e910881523e99..5c820211d72033 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -428,8 +428,7 @@ exports.allowGlobals = allowGlobals; function leakedGlobals() { const leaked = []; - // eslint-disable-next-line no-var - for (var val in global) { + for (const val in global) { if (!knownGlobals.includes(global[val])) { leaked.push(val); } From d454add7ce5ae9273a78c3b7077903171ac3bcf8 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:55:10 +0200 Subject: [PATCH 012/174] tools: change var to const in ./doc/html PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/html.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tools/doc/html.js b/tools/doc/html.js index 8a071b2e46fc42..a48b04b379da93 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -33,7 +33,7 @@ module.exports = toHTML; const STABILITY_TEXT_REG_EXP = /(.*:)\s*(\d)([\s\S]*)/; // customized heading without id attribute -var renderer = new marked.Renderer(); +const renderer = new marked.Renderer(); renderer.heading = function(text, level) { return '' + text + '\n'; }; @@ -42,7 +42,7 @@ marked.setOptions({ }); // TODO(chrisdickinson): never stop vomitting / fix this. -var gtocPath = path.resolve(path.join( +const gtocPath = path.resolve(path.join( __dirname, '..', '..', @@ -57,8 +57,8 @@ var gtocData = null; * opts: input, filename, template, nodeVersion. */ function toHTML(opts, cb) { - var template = opts.template; - var nodeVersion = opts.nodeVersion || process.version; + const template = opts.template; + const nodeVersion = opts.nodeVersion || process.version; if (gtocData) { return onGtocLoaded(); @@ -80,7 +80,7 @@ function toHTML(opts, cb) { } function onGtocLoaded() { - var lexed = marked.lexer(opts.input); + const lexed = marked.lexer(opts.input); fs.readFile(template, 'utf8', function(er, template) { if (er) return cb(er); render({ @@ -123,10 +123,10 @@ function render(opts, cb) { var lexed = opts.lexed; var filename = opts.filename; var template = opts.template; - var nodeVersion = opts.nodeVersion || process.version; + const nodeVersion = opts.nodeVersion || process.version; // get the section - var section = getSection(lexed); + const section = getSection(lexed); filename = path.basename(filename, '.md'); @@ -138,7 +138,7 @@ function render(opts, cb) { buildToc(lexed, filename, function(er, toc) { if (er) return cb(er); - var id = toID(path.basename(filename)); + const id = toID(path.basename(filename)); template = template.replace(/__ID__/g, id); template = template.replace(/__FILENAME__/g, filename); @@ -220,9 +220,9 @@ function parseText(lexed) { // lists that come right after a heading are what we're after. function parseLists(input) { var state = null; - var savedState = []; + const savedState = []; var depth = 0; - var output = []; + const output = []; let headingIndex = -1; let heading = null; @@ -353,7 +353,7 @@ function parseYAML(text) { } // Syscalls which appear in the docs, but which only exist in BSD / OSX -var BSD_ONLY_SYSCALLS = new Set(['lchmod']); +const BSD_ONLY_SYSCALLS = new Set(['lchmod']); // Handle references to man pages, eg "open(2)" or "lchmod(2)" // Returns modified text, with such refs replace with HTML links, for example @@ -363,7 +363,7 @@ function linkManPages(text) { / ([a-z.]+)\((\d)([a-z]?)\)/gm, (match, name, number, optionalCharacter) => { // name consists of lowercase letters, number is a single digit - var displayAs = `${name}(${number}${optionalCharacter})`; + const displayAs = `${name}(${number}${optionalCharacter})`; if (BSD_ONLY_SYSCALLS.has(name)) { return ` ${displayAs}`; @@ -375,7 +375,7 @@ function linkManPages(text) { } function linkJsTypeDocs(text) { - var parts = text.split('`'); + const parts = text.split('`'); var i; var typeMatches; @@ -453,7 +453,7 @@ function buildToc(lexed, filename, cb) { cb(null, toc); } -var idCounters = {}; +const idCounters = {}; function getId(text) { text = text.toLowerCase(); text = text.replace(/[^a-z0-9]+/g, '_'); From d69527f4265cf2e90dfb861d6cae1436901924c8 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:56:04 +0200 Subject: [PATCH 013/174] tools: change var to const in ./eslint-rules PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/eslint-rules/required-modules.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/eslint-rules/required-modules.js b/tools/eslint-rules/required-modules.js index 4a444809b7115c..47ade5cd9f9b42 100644 --- a/tools/eslint-rules/required-modules.js +++ b/tools/eslint-rules/required-modules.js @@ -4,7 +4,7 @@ */ 'use strict'; -var path = require('path'); +const path = require('path'); //------------------------------------------------------------------------------ // Rule Definition @@ -14,7 +14,7 @@ module.exports = function(context) { // trim required module names var requiredModules = context.options; - var foundModules = []; + const foundModules = []; // if no modules are required we don't need to check the CallExpressions if (requiredModules.length === 0) { From 81c644795d149ec82ef7e8ee35dc25a35252162b Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 29 Jun 2017 21:26:38 -0700 Subject: [PATCH 014/174] test: refactor test-http-invalidheaderfield * use common.mustNotCall() to confirm callback is not invoked * whitespace change per test-writing guide PR-URL: https://github.com/nodejs/node/pull/13996 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- test/parallel/test-http-invalidheaderfield.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http-invalidheaderfield.js b/test/parallel/test-http-invalidheaderfield.js index ac080db93155ec..21be4c4d6d95e0 100644 --- a/test/parallel/test-http-invalidheaderfield.js +++ b/test/parallel/test-http-invalidheaderfield.js @@ -1,6 +1,6 @@ 'use strict'; - const common = require('../common'); + const assert = require('assert'); const EventEmitter = require('events'); const http = require('http'); @@ -29,7 +29,7 @@ server.listen(0, function() { port: server.address().port, headers: {'testing 123': 123} }; - http.get(options, common.noop); + http.get(options, common.mustNotCall()); }, function(err) { ee.emit('done'); From 99f0a6bdb5edc79f7278da665995e9f5e9fda1f9 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 29 May 2017 08:53:30 -0700 Subject: [PATCH 015/174] doc: add CTC members to Collaborators list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For simplicity and clarity (if not brevity), add CTC and CTC Emeriti to Collaborators list in README. This will avoid confusion about who is and isn't a Collaborator. PR-URL: https://github.com/nodejs/node/pull/13284 Reviewed-By: Anna Henningsen Reviewed-By: Daniel Bevenius Reviewed-By: Gibson Fahnestock Reviewed-By: Matteo Collina Reviewed-By: Michael Dawson Reviewed-By: Tobias Nießen --- README.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7ed0e64f62894c..26adc1817aa98b 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,8 @@ more information about the governance of the Node.js project, see * [abouthiroppy](https://github.com/abouthiroppy) - **Yuta Hiroto** <hello@about-hiroppy.com> (he/him) +* [addaleax](https://github.com/addaleax) - +**Anna Henningsen** <anna@addaleax.net> (she/her) * [ak239](https://github.com/ak239) - **Aleksei Koziatinskii** <ak239spb@gmail.com> * [andrasq](https://github.com/andrasq) - @@ -257,12 +259,20 @@ more information about the governance of the Node.js project, see **Benjamin Gruenbaum** <benjamingr@gmail.com> * [bmeck](https://github.com/bmeck) - **Bradley Farias** <bradley.meck@gmail.com> +* [bnoordhuis](https://github.com/bnoordhuis) - +**Ben Noordhuis** <info@bnoordhuis.nl> * [brendanashworth](https://github.com/brendanashworth) - **Brendan Ashworth** <brendan.ashworth@me.com> * [bzoz](https://github.com/bzoz) - **Bartosz Sosnowski** <bartosz@janeasystems.com> * [calvinmetcalf](https://github.com/calvinmetcalf) - **Calvin Metcalf** <calvin.metcalf@gmail.com> +* [ChALkeR](https://github.com/ChALkeR) - +**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) +* [chrisdickinson](https://github.com/chrisdickinson) - +**Chris Dickinson** <christopher.s.dickinson@gmail.com> +* [cjihrig](https://github.com/cjihrig) - +**Colin Ihrig** <cjihrig@gmail.com> * [claudiorodriguez](https://github.com/claudiorodriguez) - **Claudio Rodriguez** <cjrodr@yahoo.com> * [danbev](https://github.com/danbev) - @@ -277,8 +287,14 @@ more information about the governance of the Node.js project, see **Alexander Makarenko** <estliberitas@gmail.com> * [eugeneo](https://github.com/eugeneo) - **Eugene Ostroukhov** <eostroukhov@google.com> +* [evanlucas](https://github.com/evanlucas) - +**Evan Lucas** <evanlucas@me.com> (he/him) +* [fhinkel](https://github.com/fhinkel) - +**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> * [firedfox](https://github.com/firedfox) - **Daniel Wang** <wangyang0123@gmail.com> +* [Fishrock123](https://github.com/Fishrock123) - +**Jeremiah Senkpiel** <fishrock123@rocketmail.com> * [geek](https://github.com/geek) - **Wyatt Preul** <wpreul@gmail.com> * [gibfahn](https://github.com/gibfahn) - @@ -291,10 +307,16 @@ more information about the governance of the Node.js project, see **Imran Iqbal** <imran@imraniqbal.org> * [imyller](https://github.com/imyller) - **Ilkka Myller** <ilkka.myller@nodefield.com> +* [indutny](https://github.com/indutny) - +**Fedor Indutny** <fedor.indutny@gmail.com> +* [isaacs](https://github.com/isaacs) - +**Isaac Z. Schlueter** <i@izs.me> * [italoacasas](https://github.com/italoacasas) - **Italo A. Casas** <me@italoacasas.com> (he/him) * [JacksonTian](https://github.com/JacksonTian) - **Jackson Tian** <shyvo1987@gmail.com> +* [jasnell](https://github.com/jasnell) - +**James M Snell** <jasnell@gmail.com> (he/him) * [jasongin](https://github.com/jasongin) - **Jason Ginchereau** <jasongin@microsoft.com> * [jbergstroem](https://github.com/jbergstroem) - @@ -307,6 +329,8 @@ more information about the governance of the Node.js project, see **João Reis** <reis@janeasystems.com> * [joshgav](https://github.com/joshgav) - **Josh Gavant** <josh.gavant@outlook.com> +* [joyeecheung](https://github.com/joyeecheung) - +**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) * [julianduque](https://github.com/julianduque) - **Julian Duque** <julianduquej@gmail.com> (he/him) * [JungMinu](https://github.com/JungMinu) - @@ -323,22 +347,38 @@ more information about the governance of the Node.js project, see **Aleksey Smolenchuk** <lxe@lxe.co> * [matthewloring](https://github.com/matthewloring) - **Matthew Loring** <mattloring@google.com> +* [mcollina](https://github.com/mcollina) - +**Matteo Collina** <matteo.collina@gmail.com> (he/him) +* [mhdawson](https://github.com/mhdawson) - +**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) * [micnic](https://github.com/micnic) - **Nicu Micleușanu** <micnic90@gmail.com> (he/him) * [mikeal](https://github.com/mikeal) - **Mikeal Rogers** <mikeal.rogers@gmail.com> +* [misterdjules](https://github.com/misterdjules) - +**Julien Gilli** <jgilli@nodejs.org> * [monsanto](https://github.com/monsanto) - **Christopher Monsanto** <chris@monsan.to> +* [mscdex](https://github.com/mscdex) - +**Brian White** <mscdex@mscdex.net> +* [MylesBorins](https://github.com/MylesBorins) - +**Myles Borins** <myles.borins@gmail.com> (he/him) * [not-an-aardvark](https://github.com/not-an-aardvark) - **Teddy Katz** <teddy.katz@gmail.com> +* [ofrobots](https://github.com/ofrobots) - +**Ali Ijaz Sheikh** <ofrobots@google.com> * [Olegas](https://github.com/Olegas) - **Oleg Elifantiev** <oleg@elifantiev.ru> +* [orangemocha](https://github.com/orangemocha) - +**Alexis Campailla** <orangemocha@nodejs.org> * [othiym23](https://github.com/othiym23) - **Forrest L Norvell** <ogd@aoaioxxysz.net> (he/him) * [petkaantonov](https://github.com/petkaantonov) - **Petka Antonov** <petka_antonov@hotmail.com> * [phillipj](https://github.com/phillipj) - **Phillip Johnsen** <johphi@gmail.com> +* [piscisaureus](https://github.com/piscisaureus) - +**Bert Belder** <bertbelder@gmail.com> * [pmq20](https://github.com/pmq20) - **Minqi Pan** <pmq2001@gmail.com> * [princejwesley](https://github.com/princejwesley) - @@ -361,6 +401,8 @@ more information about the governance of the Node.js project, see **Ron Korving** <ron@ronkorving.nl> * [RReverser](https://github.com/RReverser) - **Ingvar Stepanyan** <me@rreverser.com> +* [rvagg](https://github.com/rvagg) - +**Rod Vagg** <rod@vagg.org> * [saghul](https://github.com/saghul) - **Saúl Ibarra Corretgé** <saghul@gmail.com> * [sam-github](https://github.com/sam-github) - @@ -369,14 +411,20 @@ more information about the governance of the Node.js project, see **Santiago Gimeno** <santiago.gimeno@gmail.com> * [seishun](https://github.com/seishun) - **Nikolai Vavilov** <vvnicholas@gmail.com> +* [shigeki](https://github.com/shigeki) - +**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) * [silverwind](https://github.com/silverwind) - **Roman Reiss** <me@silverwind.io> * [srl295](https://github.com/srl295) - **Steven R Loomis** <srloomis@us.ibm.com> * [stefanmb](https://github.com/stefanmb) - **Stefan Budeanu** <stefan@budeanu.com> +* [targos](https://github.com/targos) - +**Michaël Zasso** <targos@protonmail.com> (he/him) * [tellnes](https://github.com/tellnes) - **Christian Tellnes** <christian@tellnes.no> +* [thefourtheye](https://github.com/thefourtheye) - +**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) * [thekemkid](https://github.com/thekemkid) - **Glen Keane** <glenkeane.94@gmail.com> (he/him) * [thlorenz](https://github.com/thlorenz) - @@ -385,6 +433,10 @@ more information about the governance of the Node.js project, see **Timothy Gu** <timothygu99@gmail.com> (he/him) * [tniessen](https://github.com/tniessen) - **Tobias Nießen** <tniessen@tnie.de> +* [trevnorris](https://github.com/trevnorris) - +**Trevor Norris** <trev.norris@gmail.com> +* [Trott](https://github.com/Trott) - +**Rich Trott** <rtrott@gmail.com> (he/him) * [tunniclm](https://github.com/tunniclm) - **Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> * [vkurchatkin](https://github.com/vkurchatkin) - @@ -400,9 +452,8 @@ more information about the governance of the Node.js project, see * [yosuke-furukawa](https://github.com/yosuke-furukawa) - **Yosuke Furukawa** <yosuke.furukawa@gmail.com> -Collaborators (which includes CTC members) follow the -[COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in maintaining the Node.js -project. +Collaborators follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in +maintaining the Node.js project. ### Release Team From c652845a61c2dfb8a0e1eeb1d8d04ab3ab9bc842 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Sun, 2 Jul 2017 23:52:41 -0400 Subject: [PATCH 016/174] http: guard against failed sockets creation PR-URL: https://github.com/nodejs/node/pull/13839 Fixes: https://github.com/nodejs/node/issues/13045 Fixes: https://github.com/nodejs/node/issues/13831 Refs: https://github.com/nodejs/node/issues/13352 Refs: https://github.com/nodejs/node/issues/13548#issuecomment-307177400 Reviewed-By: Trevor Norris --- lib/_http_agent.js | 37 +++++++------- test/parallel/test-http-agent.js | 82 +++++++++++++++++++++----------- 2 files changed, 72 insertions(+), 47 deletions(-) diff --git a/lib/_http_agent.js b/lib/_http_agent.js index 9f0efe82d14313..426cf5b502702a 100644 --- a/lib/_http_agent.js +++ b/lib/_http_agent.js @@ -181,15 +181,7 @@ Agent.prototype.addRequest = function addRequest(req, options, port/*legacy*/, } else if (sockLen < this.maxSockets) { debug('call onSocket', sockLen, freeLen); // If we are under maxSockets create a new one. - this.createSocket(req, options, function(err, newSocket) { - if (err) { - nextTick(newSocket._handle.getAsyncId(), function() { - req.emit('error', err); - }); - return; - } - req.onSocket(newSocket); - }); + this.createSocket(req, options, handleSocketCreation(req, true)); } else { debug('wait for socket'); // We are over limit so we'll add it to the queue. @@ -222,6 +214,7 @@ Agent.prototype.createSocket = function createSocket(req, options, cb) { const newSocket = self.createConnection(options, oncreate); if (newSocket) oncreate(null, newSocket); + function oncreate(err, s) { if (called) return; @@ -294,15 +287,7 @@ Agent.prototype.removeSocket = function removeSocket(s, options) { debug('removeSocket, have a request, make a socket'); var req = this.requests[name][0]; // If we have pending requests and a socket gets closed make a new one - this.createSocket(req, options, function(err, newSocket) { - if (err) { - nextTick(newSocket._handle.getAsyncId(), function() { - req.emit('error', err); - }); - return; - } - newSocket.emit('free'); - }); + this.createSocket(req, options, handleSocketCreation(req, false)); } }; @@ -332,6 +317,22 @@ Agent.prototype.destroy = function destroy() { } }; +function handleSocketCreation(request, informRequest) { + return function handleSocketCreation_Inner(err, socket) { + if (err) { + const asyncId = (socket && socket._handle && socket._handle.getAsyncId) ? + socket._handle.getAsyncId() : + null; + nextTick(asyncId, () => request.emit('error', err)); + return; + } + if (informRequest) + request.onSocket(socket); + else + socket.emit('free'); + }; +} + module.exports = { Agent, globalAgent: new Agent() diff --git a/test/parallel/test-http-agent.js b/test/parallel/test-http-agent.js index 23878673aaf8dc..d7cb56fb45973a 100644 --- a/test/parallel/test-http-agent.js +++ b/test/parallel/test-http-agent.js @@ -20,41 +20,65 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const http = require('http'); -const server = http.Server(function(req, res) { - res.writeHead(200); - res.end('hello world\n'); -}); - -let responses = 0; const N = 4; const M = 4; +const server = http.Server(common.mustCall(function(req, res) { + res.writeHead(200); + res.end('hello world\n'); +}, (N * M))); // N * M = good requests (the errors will not be counted) -server.listen(0, function() { - const port = this.address().port; - for (let i = 0; i < N; i++) { - setTimeout(function() { - for (let j = 0; j < M; j++) { - http.get({ port: port, path: '/' }, function(res) { - console.log('%d %d', responses, res.statusCode); - if (++responses === N * M) { - console.error('Received all responses, closing server'); - server.close(); - } - res.resume(); - }).on('error', function(e) { - console.log('Error!', e); - process.exit(1); - }); +function makeRequests(outCount, inCount, shouldFail) { + let responseCount = outCount * inCount; + let onRequest = common.mustNotCall(); // Temporary + const p = new Promise((resolve) => { + onRequest = common.mustCall((res) => { + if (--responseCount === 0) { + server.close(); + resolve(); } - }, i); - } -}); + if (!shouldFail) + res.resume(); + }, outCount * inCount); + }); + + server.listen(0, () => { + const port = server.address().port; + for (let i = 0; i < outCount; i++) { + setTimeout(() => { + for (let j = 0; j < inCount; j++) { + const req = http.get({ port: port, path: '/' }, onRequest); + if (shouldFail) + req.on('error', common.mustCall(onRequest)); + else + req.on('error', (e) => assert.fail(e)); + } + }, i); + } + }); + return p; +} +const test1 = makeRequests(N, M); -process.on('exit', function() { - assert.strictEqual(N * M, responses); -}); +const test2 = () => { + // Should not explode if can not create sockets. + // Ref: https://github.com/nodejs/node/issues/13045 + // Ref: https://github.com/nodejs/node/issues/13831 + http.Agent.prototype.createConnection = function createConnection(_, cb) { + process.nextTick(cb, new Error('nothing')); + }; + return makeRequests(N, M, true); +}; + +test1 + .then(test2) + .catch((e) => { + // This is currently the way to fail a test with a Promise. + console.error(e); + process.exit(1); + } +); From 534ae446c6018b866de756c90747ff1dae1915c6 Mon Sep 17 00:00:00 2001 From: Alexey Orlenko Date: Mon, 26 Jun 2017 21:41:28 +0300 Subject: [PATCH 017/174] test: refactor test-http(s)-set-timeout-server * Make changes to `test-https-set-timeout-server` to resolve inconsistencies with its http counterpart: - Apply the changes analogous to those in GH-13802 to the https test. - Add a missing `common.mustCall()` wrapper. - Make small stylistic changes (e.g., remove unnecessary line breaks in comments) to make it visually consistent with the http test. * Use arrow functions. PR-URL: https://github.com/nodejs/node/pull/13935 Fixes: https://github.com/nodejs/node/issues/13588 Refs: https://github.com/nodejs/node/pull/13802 Refs: https://github.com/nodejs/node/pull/13625 Refs: https://github.com/nodejs/node/pull/13822 Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann Reviewed-By: Yuta Hiroto Reviewed-By: James M Snell --- test/parallel/test-http-set-timeout-server.js | 44 ++++++------ .../test-https-set-timeout-server.js | 69 +++++++++---------- 2 files changed, 53 insertions(+), 60 deletions(-) diff --git a/test/parallel/test-http-set-timeout-server.js b/test/parallel/test-http-set-timeout-server.js index cd3cfa3bf11c3a..83fc7dc0462903 100644 --- a/test/parallel/test-http-set-timeout-server.js +++ b/test/parallel/test-http-set-timeout-server.js @@ -42,11 +42,11 @@ function run() { } test(function serverTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. })); - server.listen(common.mustCall(function() { - const s = server.setTimeout(50, common.mustCall(function(socket) { + server.listen(common.mustCall(() => { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); @@ -59,16 +59,16 @@ test(function serverTimeout(cb) { }); test(function serverRequestTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. - const s = req.setTimeout(50, common.mustCall(function(socket) { + const s = req.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.IncomingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const req = http.request({ port: server.address().port, method: 'POST' @@ -80,16 +80,16 @@ test(function serverRequestTimeout(cb) { }); test(function serverResponseTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. - const s = res.setTimeout(50, common.mustCall(function(socket) { + const s = res.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.OutgoingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { http.get({ port: server.address().port }).on('error', common.mustCall()); @@ -97,18 +97,18 @@ test(function serverResponseTimeout(cb) { }); test(function serverRequestNotTimeoutAfterEnd(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. const s = req.setTimeout(50, common.mustNotCall()); assert.ok(s instanceof http.IncomingMessage); res.on('timeout', common.mustCall()); })); - server.on('timeout', common.mustCall(function(socket) { + server.on('timeout', common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { http.get({ port: server.address().port }).on('error', common.mustCall()); @@ -118,31 +118,31 @@ test(function serverRequestNotTimeoutAfterEnd(cb) { test(function serverResponseTimeoutWithPipeline(cb) { let caughtTimeout = ''; let secReceived = false; - process.on('exit', function() { + process.on('exit', () => { assert.strictEqual(caughtTimeout, '/2'); }); - const server = http.createServer(function(req, res) { + const server = http.createServer((req, res) => { if (req.url === '/2') secReceived = true; - const s = res.setTimeout(50, function() { + const s = res.setTimeout(50, () => { caughtTimeout += req.url; }); assert.ok(s instanceof http.OutgoingMessage); if (req.url === '/1') res.end(); }); - server.on('timeout', common.mustCall(function(socket) { + server.on('timeout', common.mustCall((socket) => { if (secReceived) { socket.destroy(); server.close(); cb(); } })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, }; - const c = net.connect(options, function() { + const c = net.connect(options, () => { c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /2 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /3 HTTP/1.1\r\nHost: localhost\r\n\r\n'); @@ -151,23 +151,23 @@ test(function serverResponseTimeoutWithPipeline(cb) { }); test(function idleTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { req.on('timeout', common.mustNotCall()); res.on('timeout', common.mustNotCall()); res.end(); })); - const s = server.setTimeout(50, common.mustCall(function(socket) { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.Server); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, }; - const c = net.connect(options, function() { + const c = net.connect(options, () => { c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); // Keep-Alive }); diff --git a/test/sequential/test-https-set-timeout-server.js b/test/sequential/test-https-set-timeout-server.js index beec5109da054f..aa4eb5714ffa58 100644 --- a/test/sequential/test-https-set-timeout-server.js +++ b/test/sequential/test-https-set-timeout-server.js @@ -43,28 +43,24 @@ const serverOptions = { function test(fn) { if (!tests.length) process.nextTick(run); - tests.push(fn); + tests.push(common.mustCall(fn)); } function run() { const fn = tests.shift(); if (fn) { - console.log('# %s', fn.name); fn(run); - } else { - console.log('ok'); } } test(function serverTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { - // just do nothing, we should get a - // timeout event. + common.mustCall((req, res) => { + // just do nothing, we should get a timeout event. })); - server.listen(common.mustCall(function() { - const s = server.setTimeout(50, common.mustCall(function(socket) { + server.listen(common.mustCall(() => { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); @@ -80,19 +76,16 @@ test(function serverTimeout(cb) { test(function serverRequestTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { - // just do nothing, we should get a - // timeout event. - const s = req.setTimeout( - 50, - common.mustCall(function(socket) { - socket.destroy(); - server.close(); - cb(); - })); + common.mustCall((req, res) => { + // just do nothing, we should get a timeout event. + const s = req.setTimeout(50, common.mustCall((socket) => { + socket.destroy(); + server.close(); + cb(); + })); assert.ok(s instanceof http.IncomingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const req = https.request({ port: server.address().port, method: 'POST', @@ -107,16 +100,16 @@ test(function serverRequestTimeout(cb) { test(function serverResponseTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { + common.mustCall((req, res) => { // just do nothing, we should get a timeout event. - const s = res.setTimeout(50, common.mustCall(function(socket) { + const s = res.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.OutgoingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { https.get({ port: server.address().port, rejectUnauthorized: false @@ -127,18 +120,18 @@ test(function serverResponseTimeout(cb) { test(function serverRequestNotTimeoutAfterEnd(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { + common.mustCall((req, res) => { // just do nothing, we should get a timeout event. const s = req.setTimeout(50, common.mustNotCall()); assert.ok(s instanceof http.IncomingMessage); res.on('timeout', common.mustCall()); })); - server.on('timeout', common.mustCall(function(socket) { + server.on('timeout', common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { https.get({ port: server.address().port, rejectUnauthorized: false @@ -149,32 +142,32 @@ test(function serverRequestNotTimeoutAfterEnd(cb) { test(function serverResponseTimeoutWithPipeline(cb) { let caughtTimeout = ''; let secReceived = false; - process.on('exit', function() { + process.on('exit', () => { assert.strictEqual(caughtTimeout, '/2'); }); - const server = https.createServer(serverOptions, function(req, res) { + const server = https.createServer(serverOptions, (req, res) => { if (req.url === '/2') secReceived = true; - const s = res.setTimeout(50, function() { + const s = res.setTimeout(50, () => { caughtTimeout += req.url; }); assert.ok(s instanceof http.OutgoingMessage); if (req.url === '/1') res.end(); }); - server.on('timeout', function(socket) { + server.on('timeout', common.mustCall((socket) => { if (secReceived) { socket.destroy(); server.close(); cb(); } - }); - server.listen(common.mustCall(function() { + })); + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, rejectUnauthorized: false }; - const c = tls.connect(options, function() { + const c = tls.connect(options, () => { c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /2 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /3 HTTP/1.1\r\nHost: localhost\r\n\r\n'); @@ -185,25 +178,25 @@ test(function serverResponseTimeoutWithPipeline(cb) { test(function idleTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { + common.mustCall((req, res) => { req.on('timeout', common.mustNotCall()); res.on('timeout', common.mustNotCall()); res.end(); })); - const s = server.setTimeout(50, common.mustCall(function(socket) { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof https.Server); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, rejectUnauthorized: false }; - tls.connect(options, function() { - this.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); + const c = tls.connect(options, () => { + c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); // Keep-Alive }); })); From 0707a6b2b5a6ca54eb83aa26f56b7aeed519eca2 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 29 Jun 2017 16:21:23 -0700 Subject: [PATCH 018/174] test: refactor test-http-hostname-typechecking * Use common.mustCall() to confirm callback is invoked. * Change spacing of require statements to conform to test-writing guide. PR-URL: https://github.com/nodejs/node/pull/13993 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- test/parallel/test-http-hostname-typechecking.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-http-hostname-typechecking.js b/test/parallel/test-http-hostname-typechecking.js index c3b702896d4e39..d1a407cf28dcae 100644 --- a/test/parallel/test-http-hostname-typechecking.js +++ b/test/parallel/test-http-hostname-typechecking.js @@ -1,6 +1,6 @@ 'use strict'; - const common = require('../common'); + const assert = require('assert'); const http = require('http'); @@ -21,7 +21,7 @@ vals.forEach((v) => { // These values are OK and should not throw synchronously ['', undefined, null].forEach((v) => { assert.doesNotThrow(() => { - http.request({hostname: v}).on('error', common.noop).end(); - http.request({host: v}).on('error', common.noop).end(); + http.request({hostname: v}).on('error', common.mustCall()).end(); + http.request({host: v}).on('error', common.mustCall()).end(); }); }); From b9e07f9fec170b169f4caff1036b56cdb92cd571 Mon Sep 17 00:00:00 2001 From: Jaime Bernardo Date: Fri, 30 Jun 2017 19:35:52 +0100 Subject: [PATCH 019/174] test,fs: delay unlink in test-regress-GH-4027.js The sequential/test-regress-GH-4027 test is flaky with an increased system load, failing when the watched file is unlinked before the first state of the watched file is retrieved. After increasing the delay before unlinking and calling setTimeout after watchFile, the flakiness stopped reproducing. PR-URL: https://github.com/nodejs/node/pull/14010 Fixes: https://github.com/nodejs/node/issues/13800 Reviewed-By: Rich Trott Reviewed-By: Refael Ackermann --- test/sequential/test-regress-GH-4027.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/sequential/test-regress-GH-4027.js b/test/sequential/test-regress-GH-4027.js index e3e9e5a4de4ef6..6ab6afcfd6bc2e 100644 --- a/test/sequential/test-regress-GH-4027.js +++ b/test/sequential/test-regress-GH-4027.js @@ -29,10 +29,11 @@ common.refreshTmpDir(); const filename = path.join(common.tmpDir, 'watched'); fs.writeFileSync(filename, 'quis custodiet ipsos custodes'); -setTimeout(fs.unlinkSync, 100, filename); fs.watchFile(filename, { interval: 50 }, common.mustCall(function(curr, prev) { assert.strictEqual(prev.nlink, 1); assert.strictEqual(curr.nlink, 0); fs.unwatchFile(filename); })); + +setTimeout(fs.unlinkSync, common.platformTimeout(300), filename); From 0cc12fc64643cd272bafc740b879ad4ca8b4e908 Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Fri, 30 Jun 2017 20:52:53 +0300 Subject: [PATCH 020/174] test: fix require nits in some test-tls-* tests * Do not require if test is skipped. * Do not re-require without need. * Sort requiring by module names. PR-URL: https://github.com/nodejs/node/pull/14008 Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig --- test/internet/test-tls-add-ca-cert.js | 3 +- test/parallel/test-tls-alert-handling.js | 7 +++-- test/parallel/test-tls-alert.js | 9 +++--- test/parallel/test-tls-alpn-server-client.js | 3 +- test/parallel/test-tls-client-verify.js | 7 +++-- test/parallel/test-tls-cnnic-whitelist.js | 2 +- test/parallel/test-tls-npn-server-client.js | 10 +++---- test/parallel/test-tls-server-verify.js | 28 +++++++++---------- test/parallel/test-tls-sni-option.js | 9 +++--- test/parallel/test-tls-sni-server-client.js | 9 +++--- .../test-tls-startcom-wosign-whitelist.js | 5 ++-- 11 files changed, 50 insertions(+), 42 deletions(-) diff --git a/test/internet/test-tls-add-ca-cert.js b/test/internet/test-tls-add-ca-cert.js index 457dfdac7f1f32..1283230e911b4d 100644 --- a/test/internet/test-tls-add-ca-cert.js +++ b/test/internet/test-tls-add-ca-cert.js @@ -10,10 +10,11 @@ if (!common.hasCrypto) { const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-alert-handling.js b/test/parallel/test-tls-alert-handling.js index 5268f520f13958..d089ad223b1fd8 100644 --- a/test/parallel/test-tls-alert-handling.js +++ b/test/parallel/test-tls-alert-handling.js @@ -11,12 +11,13 @@ if (!common.hasCrypto) { return; } -const tls = require('tls'); -const net = require('net'); const fs = require('fs'); +const net = require('net'); +const path = require('path'); +const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-alert.js b/test/parallel/test-tls-alert.js index d12d45f529cfd4..ef79856108ea3f 100644 --- a/test/parallel/test-tls-alert.js +++ b/test/parallel/test-tls-alert.js @@ -21,7 +21,6 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); if (!common.opensslCli) { common.skip('node compiled without OpenSSL CLI.'); @@ -32,15 +31,17 @@ if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); +const { spawn } = require('child_process'); const fs = require('fs'); -const spawn = require('child_process').spawn; +const path = require('path'); +const tls = require('tls'); let success = false; function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-alpn-server-client.js b/test/parallel/test-tls-alpn-server-client.js index a397550d96863a..3d3453d32fdb82 100644 --- a/test/parallel/test-tls-alpn-server-client.js +++ b/test/parallel/test-tls-alpn-server-client.js @@ -14,10 +14,11 @@ if (!process.features.tls_alpn || !process.features.tls_npn) { const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-client-verify.js b/test/parallel/test-tls-client-verify.js index 93fa99f773566f..d713be3b0cf17d 100644 --- a/test/parallel/test-tls-client-verify.js +++ b/test/parallel/test-tls-client-verify.js @@ -21,15 +21,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); const fs = require('fs'); +const path = require('path'); +const tls = require('tls'); const hosterr = /Hostname\/IP doesn't match certificate's altnames/; const testCases = @@ -65,7 +66,7 @@ const testCases = ]; function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } diff --git a/test/parallel/test-tls-cnnic-whitelist.js b/test/parallel/test-tls-cnnic-whitelist.js index a33e631ddf7437..084531748656e2 100644 --- a/test/parallel/test-tls-cnnic-whitelist.js +++ b/test/parallel/test-tls-cnnic-whitelist.js @@ -8,9 +8,9 @@ if (!common.hasCrypto) { } const assert = require('assert'); -const tls = require('tls'); const fs = require('fs'); const path = require('path'); +const tls = require('tls'); function filenamePEM(n) { return path.join(common.fixturesDir, 'keys', `${n}.pem`); diff --git a/test/parallel/test-tls-npn-server-client.js b/test/parallel/test-tls-npn-server-client.js index ac617072f3a000..ffaf61b633bc1d 100644 --- a/test/parallel/test-tls-npn-server-client.js +++ b/test/parallel/test-tls-npn-server-client.js @@ -26,18 +26,18 @@ if (!process.features.tls_npn) { return; } -const assert = require('assert'); -const fs = require('fs'); - if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); +const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js index 65ddaa5e2dc3d0..86a735f64c98a4 100644 --- a/test/parallel/test-tls-server-verify.js +++ b/test/parallel/test-tls-server-verify.js @@ -27,6 +27,11 @@ if (!common.opensslCli) { return; } +if (!common.hasCrypto) { + common.skip('missing crypto'); + return; +} + // This is a rather complex test which sets up various TLS servers with node // and connects to them using the 'openssl s_client' command line utility // with various keys. Depending on the certificate authority and other @@ -35,6 +40,14 @@ if (!common.opensslCli) { // - accepted and "unauthorized", or // - accepted and "authorized". +const assert = require('assert'); +const { spawn } = require('child_process'); +const { SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION } = + require('crypto').constants; +const fs = require('fs'); +const path = require('path'); +const tls = require('tls'); + const testCases = [{ title: 'Do not request certs. Everyone is unauthorized.', requestCert: false, @@ -119,22 +132,9 @@ const testCases = } ]; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} -const tls = require('tls'); - -const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = - require('crypto').constants.SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION; - -const assert = require('assert'); -const fs = require('fs'); -const spawn = require('child_process').spawn; - function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } diff --git a/test/parallel/test-tls-sni-option.js b/test/parallel/test-tls-sni-option.js index 52fb90ec9314c5..ad7410b1631106 100644 --- a/test/parallel/test-tls-sni-option.js +++ b/test/parallel/test-tls-sni-option.js @@ -26,17 +26,18 @@ if (!process.features.tls_sni) { return; } -const assert = require('assert'); -const fs = require('fs'); - if (!common.hasCrypto) { common.skip('missing crypto'); return; } + +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-sni-server-client.js b/test/parallel/test-tls-sni-server-client.js index 0ee382ad38b5fc..300010cfa13cda 100644 --- a/test/parallel/test-tls-sni-server-client.js +++ b/test/parallel/test-tls-sni-server-client.js @@ -26,17 +26,18 @@ if (!process.features.tls_sni) { return; } -const assert = require('assert'); -const fs = require('fs'); - if (!common.hasCrypto) { common.skip('missing crypto'); return; } + +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-startcom-wosign-whitelist.js b/test/parallel/test-tls-startcom-wosign-whitelist.js index 21dbb55c156e8e..601c0e4393c2eb 100644 --- a/test/parallel/test-tls-startcom-wosign-whitelist.js +++ b/test/parallel/test-tls-startcom-wosign-whitelist.js @@ -1,15 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); const fs = require('fs'); const path = require('path'); +const tls = require('tls'); + let finished = 0; function filenamePEM(n) { From 32a8f368abacd5dc7c94ef3c1f15968a11de6320 Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Sat, 1 Jul 2017 02:29:09 +0300 Subject: [PATCH 021/174] test: simplify test skipping * Make common.skip() exit. Also add common.printSkipMessage() for partial skips. * Don't make needless things before skip PR-URL: https://github.com/nodejs/node/pull/14021 Fixes: https://github.com/nodejs/node/issues/14016 Reviewed-By: Refael Ackermann --- test/abort/test-abort-backtrace.js | 8 +++----- test/addons/load-long-path/test.js | 8 +++----- test/addons/openssl-binding/test.js | 5 ++--- .../test-stringbytes-external-at-max.js | 15 +++++---------- ...ingbytes-external-exceed-max-by-1-ascii.js | 15 +++++---------- ...ngbytes-external-exceed-max-by-1-base64.js | 15 +++++---------- ...ngbytes-external-exceed-max-by-1-binary.js | 15 +++++---------- ...tringbytes-external-exceed-max-by-1-hex.js | 15 +++++---------- ...ringbytes-external-exceed-max-by-1-utf8.js | 15 +++++---------- ...st-stringbytes-external-exceed-max-by-2.js | 15 +++++---------- .../test-stringbytes-external-exceed-max.js | 15 +++++---------- test/addons/symlinked-module/test.js | 1 - test/async-hooks/test-connection.ssl.js | 10 ++++------ test/async-hooks/test-crypto-pbkdf2.js | 5 ++--- test/async-hooks/test-crypto-randomBytes.js | 5 ++--- test/async-hooks/test-graph.connection.js | 10 ++++------ test/async-hooks/test-graph.shutdown.js | 9 +++------ test/async-hooks/test-graph.tcp.js | 9 +++------ test/async-hooks/test-graph.tls-write.js | 16 ++++++---------- test/async-hooks/test-tcpwrap.js | 9 +++------ test/async-hooks/test-tlswrap.js | 10 ++++------ test/async-hooks/test-ttywrap.writestream.js | 10 ++++++---- test/async-hooks/test-writewrap.js | 10 ++++------ test/common/README.md | 7 ++++++- test/common/index.js | 8 ++++++-- test/doctool/test-doctool-html.js | 9 ++++----- test/doctool/test-doctool-json.js | 9 ++++----- test/fixtures/tls-connect.js | 9 ++++----- test/inspector/test-inspector-ip-detection.js | 6 ++---- .../test-dgram-broadcast-multi-process.js | 8 +++----- .../test-dgram-multicast-multi-process.js | 10 ++++------ test/internet/test-dns-ipv6.js | 8 +++----- .../internet/test-http-https-default-ports.js | 5 ++--- test/internet/test-tls-add-ca-cert.js | 4 +--- .../internet/test-tls-connnect-melissadata.js | 4 +--- .../test-tls-reuse-host-from-socket.js | 5 ++--- test/known_issues/test-cwd-enoent-file.js | 1 - test/parallel/test-async-wrap-GH13045.js | 4 +--- .../test-async-wrap-uncaughtexception.js | 5 ++--- test/parallel/test-benchmark-crypto.js | 8 ++------ test/parallel/test-buffer-alloc.js | 2 +- .../parallel/test-child-process-fork-dgram.js | 8 +++----- test/parallel/test-cli-node-options.js | 2 +- .../test-cluster-bind-privileged-port.js | 16 ++++++---------- test/parallel/test-cluster-dgram-1.js | 9 +++------ test/parallel/test-cluster-dgram-2.js | 9 +++------ test/parallel/test-cluster-dgram-reuse.js | 8 +++----- test/parallel/test-cluster-disconnect-race.js | 8 +++----- .../test-cluster-disconnect-unshared-udp.js | 4 +--- test/parallel/test-cluster-http-pipe.js | 9 ++++----- ...ster-shared-handle-bind-privileged-port.js | 16 ++++++---------- test/parallel/test-crypto-authenticated.js | 12 +++++------- test/parallel/test-crypto-binary-default.js | 4 +--- test/parallel/test-crypto-certificate.js | 8 +++----- test/parallel/test-crypto-cipher-decipher.js | 10 ++++------ .../test-crypto-cipheriv-decipheriv.js | 8 +++----- test/parallel/test-crypto-deprecated.js | 8 +++----- test/parallel/test-crypto-dh-odd-key.js | 8 +++----- test/parallel/test-crypto-dh.js | 9 ++++----- test/parallel/test-crypto-domain.js | 8 +++----- test/parallel/test-crypto-domains.js | 11 +++++------ test/parallel/test-crypto-ecb.js | 13 +++++-------- test/parallel/test-crypto-engine.js | 4 +--- test/parallel/test-crypto-fips.js | 8 +++----- test/parallel/test-crypto-from-binary.js | 8 +++----- test/parallel/test-crypto-hash-stream-pipe.js | 4 +--- test/parallel/test-crypto-hash.js | 8 +++----- test/parallel/test-crypto-hmac.js | 8 +++----- .../test-crypto-lazy-transform-writable.js | 5 ++--- test/parallel/test-crypto-padding-aes256.js | 8 +++----- test/parallel/test-crypto-padding.js | 8 +++----- test/parallel/test-crypto-pbkdf2.js | 5 +---- test/parallel/test-crypto-random.js | 5 ++--- test/parallel/test-crypto-rsa-dsa.js | 10 ++++------ test/parallel/test-crypto-sign-verify.js | 12 ++++-------- test/parallel/test-crypto-stream.js | 8 +++----- test/parallel/test-crypto-verify-failure.js | 5 ++--- test/parallel/test-crypto.js | 4 +--- test/parallel/test-cwd-enoent-preload.js | 10 ++++------ test/parallel/test-cwd-enoent-repl.js | 10 ++++------ test/parallel/test-cwd-enoent.js | 10 ++++------ test/parallel/test-debug-usage.js | 8 +++----- .../test-dgram-bind-default-address.js | 12 +++++------- .../test-dgram-cluster-close-during-bind.js | 8 +++----- test/parallel/test-dgram-send-empty-array.js | 4 +--- test/parallel/test-dgram-send-empty-buffer.js | 7 ++----- test/parallel/test-dgram-send-empty-packet.js | 7 ++----- .../test-dgram-udp6-send-default-host.js | 8 +++----- test/parallel/test-dh-padding.js | 4 +--- test/parallel/test-domain-crypto.js | 4 +--- test/parallel/test-dsa-fips-invalid-key.js | 7 ++----- test/parallel/test-fs-long-path.js | 8 +++----- .../test-fs-read-file-sync-hostname.js | 8 +++----- test/parallel/test-fs-readdir-ucs2.js | 8 +++----- test/parallel/test-fs-readfile-error.js | 12 +++++------- test/parallel/test-fs-readfile-pipe-large.js | 8 +++----- test/parallel/test-fs-readfile-pipe.js | 6 ++---- .../test-fs-readfilesync-pipe-large.js | 8 +++----- .../test-fs-realpath-on-substed-drive.js | 11 ++++------- test/parallel/test-fs-realpath-pipe.js | 4 +--- test/parallel/test-fs-realpath.js | 16 ++++++++-------- test/parallel/test-fs-symlink.js | 8 +++----- test/parallel/test-fs-watch-encoding.js | 9 ++++----- test/parallel/test-fs-watch-recursive.js | 4 +--- test/parallel/test-http-chunk-problem.js | 7 +++---- test/parallel/test-http-default-port.js | 4 +--- test/parallel/test-http-dns-error.js | 6 ++---- test/parallel/test-http-full-response.js | 2 +- test/parallel/test-http-invalid-urls.js | 4 +--- test/parallel/test-http-localaddress.js | 8 +++----- .../test-http-url.parse-https.request.js | 9 +++------ test/parallel/test-https-agent-constructor.js | 5 ++--- .../test-https-agent-create-connection.js | 4 +--- .../test-https-agent-disable-session-reuse.js | 12 ++++-------- test/parallel/test-https-agent-getname.js | 4 +--- .../test-https-agent-secure-protocol.js | 7 ++----- test/parallel/test-https-agent-servername.js | 4 +--- .../test-https-agent-session-eviction.js | 4 +--- .../test-https-agent-session-reuse.js | 4 +--- test/parallel/test-https-agent-sni.js | 9 +++------ .../parallel/test-https-agent-sockets-leak.js | 4 +--- test/parallel/test-https-agent.js | 9 +++------ .../test-https-argument-of-creating.js | 4 +--- test/parallel/test-https-byteswritten.js | 8 +++----- .../test-https-client-checkServerIdentity.js | 9 +++------ test/parallel/test-https-client-get-url.js | 10 ++++------ test/parallel/test-https-client-reject.js | 9 +++------ test/parallel/test-https-client-resume.js | 9 +++------ test/parallel/test-https-close.js | 8 +++----- .../test-https-connect-address-family.js | 13 ++++--------- .../parallel/test-https-connecting-to-http.js | 9 +++------ test/parallel/test-https-drain.js | 9 +++------ test/parallel/test-https-eof-for-eom.js | 9 +++------ test/parallel/test-https-foafssl.js | 12 +++--------- test/parallel/test-https-host-headers.js | 10 ++++------ .../test-https-localaddress-bind-error.js | 8 +++----- test/parallel/test-https-localaddress.js | 16 ++++++---------- test/parallel/test-https-pfx.js | 8 +++----- test/parallel/test-https-req-split.js | 7 +++---- .../parallel/test-https-resume-after-renew.js | 4 +--- .../test-https-server-keep-alive-timeout.js | 5 ++--- test/parallel/test-https-simple.js | 4 +--- test/parallel/test-https-socket-options.js | 7 ++----- test/parallel/test-https-strict.js | 9 +++------ test/parallel/test-https-timeout-server-2.js | 9 +++------ test/parallel/test-https-timeout-server.js | 5 ++--- test/parallel/test-https-timeout.js | 5 ++--- test/parallel/test-https-truncate.js | 4 +--- .../test-https-unix-socket-self-signed.js | 4 +--- test/parallel/test-icu-data-dir.js | 5 ++--- test/parallel/test-icu-punycode.js | 4 +--- test/parallel/test-icu-stringwidth.js | 4 +--- test/parallel/test-icu-transcode.js | 4 +--- test/parallel/test-inspector-open.js | 3 +-- test/parallel/test-intl-v8BreakIterator.js | 5 ++--- test/parallel/test-intl.js | 3 +-- test/parallel/test-listen-fd-cluster.js | 8 +++----- .../test-listen-fd-detached-inherit.js | 8 +++----- test/parallel/test-listen-fd-detached.js | 8 +++----- test/parallel/test-listen-fd-server.js | 8 +++----- .../parallel/test-module-circular-symlinks.js | 1 - .../test-module-symlinked-peer-modules.js | 1 - test/parallel/test-net-access-byteswritten.js | 5 ++--- test/parallel/test-net-connect-options-fd.js | 8 +++----- .../parallel/test-net-connect-options-ipv6.js | 10 ++++------ .../parallel/test-net-socket-local-address.js | 10 ++++------ test/parallel/test-npm-install.js | 4 +--- test/parallel/test-openssl-ca-options.js | 5 ++--- test/parallel/test-pipe-writev.js | 8 +++----- test/parallel/test-preload.js | 10 ++++------ test/parallel/test-process-execpath.js | 8 +++----- test/parallel/test-process-getgroups.js | 5 ++--- ...est-process-remove-all-signal-listeners.js | 9 +++------ test/parallel/test-regress-GH-1531.js | 5 ++--- test/parallel/test-regress-GH-3542.js | 10 ++++------ test/parallel/test-regress-GH-9819.js | 8 +++----- test/parallel/test-repl-history-perm.js | 1 - test/parallel/test-repl-sigint-nested-eval.js | 8 +++----- test/parallel/test-repl-sigint.js | 8 +++----- test/parallel/test-require-long-path.js | 8 +++----- test/parallel/test-require-symlink.js | 4 +--- test/parallel/test-setproctitle.js | 10 ++++------ test/parallel/test-signal-handler.js | 4 +--- test/parallel/test-spawn-cmd-named-pipe.js | 8 +++----- test/parallel/test-tls-0-dns-altname.js | 9 +++------ test/parallel/test-tls-alert-handling.js | 12 ++++-------- test/parallel/test-tls-alert.js | 11 +++-------- test/parallel/test-tls-alpn-server-client.js | 5 +---- .../test-tls-async-cb-after-socket-end.js | 4 +--- test/parallel/test-tls-basic-validations.js | 4 +--- test/parallel/test-tls-cert-regression.js | 5 ++--- .../test-tls-check-server-identity.js | 4 +--- test/parallel/test-tls-cipher-list.js | 4 +--- test/parallel/test-tls-client-abort.js | 9 +++------ test/parallel/test-tls-client-abort2.js | 8 +++----- .../test-tls-client-default-ciphers.js | 8 +++----- test/parallel/test-tls-client-destroy-soon.js | 9 +++------ .../test-tls-client-getephemeralkeyinfo.js | 10 ++++------ test/parallel/test-tls-client-mindhsize.js | 10 ++++------ test/parallel/test-tls-client-reject.js | 9 +++------ test/parallel/test-tls-client-resume.js | 9 +++------ test/parallel/test-tls-client-verify.js | 5 +---- test/parallel/test-tls-close-error.js | 9 +++------ test/parallel/test-tls-close-notify.js | 6 ++---- test/parallel/test-tls-cnnic-whitelist.js | 4 +--- .../test-tls-connect-address-family.js | 13 ++++--------- .../parallel/test-tls-connect-given-socket.js | 10 ++++------ test/parallel/test-tls-connect-no-host.js | 5 ++--- test/parallel/test-tls-connect-pipe.js | 5 ++--- test/parallel/test-tls-connect-simple.js | 5 ++--- .../test-tls-connect-stream-writes.js | 4 +--- test/parallel/test-tls-connect.js | 6 ++---- .../parallel/test-tls-delayed-attach-error.js | 5 ++--- test/parallel/test-tls-delayed-attach.js | 9 +++------ .../parallel/test-tls-destroy-whilst-write.js | 5 ++--- test/parallel/test-tls-dhe.js | 13 ++++--------- test/parallel/test-tls-ecdh-disable.js | 12 +++--------- test/parallel/test-tls-ecdh.js | 8 ++------ test/parallel/test-tls-econnreset.js | 8 +++----- test/parallel/test-tls-empty-sni-context.js | 11 +++-------- test/parallel/test-tls-env-bad-extra-ca.js | 4 +--- test/parallel/test-tls-env-extra-ca.js | 4 +--- test/parallel/test-tls-external-accessor.js | 10 ++++------ test/parallel/test-tls-fast-writing.js | 9 +++------ .../test-tls-friendly-error-message.js | 9 +++------ test/parallel/test-tls-getcipher.js | 5 ++--- test/parallel/test-tls-getprotocol.js | 7 ++----- test/parallel/test-tls-handshake-error.js | 9 +++------ test/parallel/test-tls-handshake-nohang.js | 5 ++--- .../parallel/test-tls-hello-parser-failure.js | 4 +--- test/parallel/test-tls-honorcipherorder.js | 10 ++++------ test/parallel/test-tls-inception.js | 4 +--- test/parallel/test-tls-interleave.js | 5 ++--- test/parallel/test-tls-invoke-queued.js | 4 +--- test/parallel/test-tls-js-stream.js | 9 +++------ test/parallel/test-tls-junk-closes-server.js | 4 +--- test/parallel/test-tls-junk-server.js | 4 +--- test/parallel/test-tls-key-mismatch.js | 5 ++--- test/parallel/test-tls-legacy-deprecated.js | 5 ++--- test/parallel/test-tls-legacy-onselect.js | 5 ++--- test/parallel/test-tls-lookup.js | 5 ++--- test/parallel/test-tls-max-send-fragment.js | 9 +++------ test/parallel/test-tls-multi-key.js | 8 +++----- test/parallel/test-tls-no-cert-required.js | 8 +++----- test/parallel/test-tls-no-rsa-key.js | 9 +++------ test/parallel/test-tls-no-sslv23.js | 8 +++----- test/parallel/test-tls-no-sslv3.js | 19 +++++++------------ test/parallel/test-tls-npn-server-client.js | 12 ++++-------- test/parallel/test-tls-ocsp-callback.js | 14 +++++--------- test/parallel/test-tls-on-empty-socket.js | 5 ++--- test/parallel/test-tls-over-http-tunnel.js | 9 +++------ test/parallel/test-tls-parse-cert-string.js | 4 +--- test/parallel/test-tls-passphrase.js | 9 +++------ test/parallel/test-tls-pause.js | 9 +++------ .../test-tls-peer-certificate-encoding.js | 9 +++------ .../test-tls-peer-certificate-multi-keys.js | 9 +++------ test/parallel/test-tls-pfx-gh-5100-regr.js | 4 +--- test/parallel/test-tls-regr-gh-5108.js | 4 +--- test/parallel/test-tls-request-timeout.js | 9 +++------ .../test-tls-retain-handle-no-abort.js | 8 +++----- test/parallel/test-tls-securepair-fiftharg.js | 4 +--- test/parallel/test-tls-securepair-leak.js | 7 ++----- test/parallel/test-tls-securepair-server.js | 12 +++--------- .../test-tls-server-connection-server.js | 4 +--- ...rver-failed-handshake-emits-clienterror.js | 5 ++--- test/parallel/test-tls-server-verify.js | 12 ++++-------- test/parallel/test-tls-session-cache.js | 8 ++------ test/parallel/test-tls-set-ciphers.js | 8 ++------ test/parallel/test-tls-set-encoding.js | 10 +++------- test/parallel/test-tls-sni-option.js | 12 ++++-------- test/parallel/test-tls-sni-server-client.js | 12 ++++-------- test/parallel/test-tls-socket-close.js | 6 ++---- test/parallel/test-tls-socket-destroy.js | 4 +--- ...tls-socket-failed-handshake-emits-error.js | 5 ++--- .../test-tls-startcom-wosign-whitelist.js | 5 +---- test/parallel/test-tls-starttls-server.js | 4 +--- test/parallel/test-tls-ticket-cluster.js | 9 +++------ test/parallel/test-tls-ticket.js | 9 +++------ test/parallel/test-tls-timeout-server-2.js | 9 +++------ test/parallel/test-tls-timeout-server.js | 6 ++---- test/parallel/test-tls-two-cas-one-string.js | 4 +--- .../test-tls-wrap-econnreset-localaddress.js | 5 ++--- .../parallel/test-tls-wrap-econnreset-pipe.js | 5 ++--- .../test-tls-wrap-econnreset-socket.js | 5 ++--- test/parallel/test-tls-wrap-econnreset.js | 5 ++--- test/parallel/test-tls-wrap-event-emmiter.js | 5 ++--- test/parallel/test-tls-wrap-no-abort.js | 4 +--- test/parallel/test-tls-wrap-timeout.js | 5 ++--- test/parallel/test-tls-writewrap-leak.js | 4 +--- test/parallel/test-tls-zero-clear-in.js | 5 ++--- .../parallel/test-url-domain-ascii-unicode.js | 5 ++--- test/parallel/test-url-format-whatwg.js | 5 ++--- test/parallel/test-util-sigint-watchdog.js | 7 +++---- .../test-vm-sigint-existing-handler.js | 12 +++++------- test/parallel/test-vm-sigint.js | 11 ++++------- test/parallel/test-warn-sigprof.js | 4 +--- test/parallel/test-whatwg-url-constructor.js | 11 +++++------ test/parallel/test-whatwg-url-domainto.js | 4 +--- test/parallel/test-whatwg-url-historical.js | 7 +++---- test/parallel/test-whatwg-url-inspect.js | 9 ++++----- test/parallel/test-whatwg-url-origin.js | 9 ++++----- test/parallel/test-whatwg-url-parsing.js | 9 ++++----- test/parallel/test-whatwg-url-setters.js | 11 +++++------ test/parallel/test-whatwg-url-toascii.js | 9 ++++----- test/parallel/test-windows-abort-exitcode.js | 9 ++++----- test/parallel/test-zlib-random-byte-pipes.js | 11 ++++------- test/pummel/test-abort-fatal-error.js | 7 ++----- test/pummel/test-crypto-dh.js | 8 +++----- ...est-crypto-timing-safe-equal-benchmarks.js | 11 +++-------- test/pummel/test-dh-regr.js | 8 +++----- test/pummel/test-dtrace-jsstack.js | 8 +++----- test/pummel/test-https-ci-reneg-attack.js | 17 ++++++----------- test/pummel/test-https-large-response.js | 9 +++------ test/pummel/test-https-no-reader.js | 9 +++------ test/pummel/test-keep-alive.js | 8 +++----- test/pummel/test-regress-GH-892.js | 9 +++------ test/pummel/test-tls-ci-reneg-attack.js | 17 ++++++----------- test/pummel/test-tls-connect-memleak.js | 9 +++------ test/pummel/test-tls-securepair-client.js | 9 ++------- test/pummel/test-tls-server-large-request.js | 9 +++------ test/pummel/test-tls-session-timeout.js | 8 ++------ test/pummel/test-tls-throttle.js | 8 +++----- test/sequential/test-benchmark-http.js | 4 +--- .../test-buffer-creation-regression.js | 3 ++- test/sequential/test-child-process-emfile.js | 8 +++----- test/sequential/test-child-process-pass-fd.js | 10 ++++------ .../test-crypto-timing-safe-equal.js | 7 ++----- .../test-fs-readfile-tostring-fail.js | 7 ++----- .../test-https-set-timeout-server.js | 4 +--- test/sequential/test-net-server-address.js | 2 +- .../test-tick-processor-builtin.js | 12 ++++-------- .../test-tick-processor-cpp-core.js | 12 ++++-------- .../test-tick-processor-unknown.js | 8 ++------ 333 files changed, 896 insertions(+), 1633 deletions(-) diff --git a/test/abort/test-abort-backtrace.js b/test/abort/test-abort-backtrace.js index 7f72ee8e71c6a5..dd108171684018 100644 --- a/test/abort/test-abort-backtrace.js +++ b/test/abort/test-abort-backtrace.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Backtraces unimplemented on Windows.'); + const assert = require('assert'); const cp = require('child_process'); -if (common.isWindows) { - common.skip('Backtraces unimplemented on Windows.'); - return; -} - if (process.argv[2] === 'child') { process.abort(); } else { diff --git a/test/addons/load-long-path/test.js b/test/addons/load-long-path/test.js index 73d85a75a097a2..accb90d2638274 100644 --- a/test/addons/load-long-path/test.js +++ b/test/addons/load-long-path/test.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); +if (common.isWOW64) + common.skip('doesn\'t work on WOW64'); + const fs = require('fs'); const path = require('path'); const assert = require('assert'); -if (common.isWOW64) { - common.skip('doesn\'t work on WOW64'); - return; -} - common.refreshTmpDir(); // make a path that is more than 260 chars long. diff --git a/test/addons/openssl-binding/test.js b/test/addons/openssl-binding/test.js index 452f59f752f5e5..1e6c57ffd1e081 100644 --- a/test/addons/openssl-binding/test.js +++ b/test/addons/openssl-binding/test.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(0); -} + const assert = require('assert'); const binding = require(`./build/${common.buildType}/binding`); const bytes = new Uint8Array(1024); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js index 5dd727f8ffddd3..4c074773a21fc2 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js @@ -1,6 +1,10 @@ 'use strict'; const common = require('../../common'); +const skipMessage = 'intensive toString tests due to memory confinements'; +if (!common.enoughTestMem) + common.skip(skipMessage); + const binding = require(`./build/${common.buildType}/binding`); const assert = require('assert'); @@ -8,12 +12,6 @@ const assert = require('assert'); // v8::String::kMaxLength defined in v8.h const kStringMaxLength = process.binding('buffer').kStringMaxLength; -const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { - common.skip(skipMessage); - return; -} - let buf; try { buf = Buffer.allocUnsafe(kStringMaxLength); @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} const maxString = buf.toString('latin1'); assert.strictEqual(maxString.length, kStringMaxLength); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js index 2466c8ec42ed57..43b8c63f1e466e 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('ascii'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js index 16f0f5392e5206..a94a57e18037fd 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('base64'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js index 1028706b1d1aa9..996c01752da7c6 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('latin1'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js index caf6112011e2a8..17d9ae5d68f033 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('hex'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js index 4d3199a033e6d5..d3368ca7b2ea6b 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString(); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js index 786d0b679895e1..db007a53a44f3b 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} const maxString = buf.toString('utf16le'); assert.strictEqual(maxString.length, (kStringMaxLength + 2) / 2); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js index 36b0d4174a030b..319a8a93558c45 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('utf16le'); diff --git a/test/addons/symlinked-module/test.js b/test/addons/symlinked-module/test.js index d2025c54e4360b..d9455c027bd36b 100644 --- a/test/addons/symlinked-module/test.js +++ b/test/addons/symlinked-module/test.js @@ -22,7 +22,6 @@ try { } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('module identity test (no privs for symlinks)'); - return; } const sub = require('./submodule'); diff --git a/test/async-hooks/test-connection.ssl.js b/test/async-hooks/test-connection.ssl.js index ac3e069fb8a21d..faee0fdf080e42 100644 --- a/test/async-hooks/test-connection.ssl.js +++ b/test/async-hooks/test-connection.ssl.js @@ -1,16 +1,14 @@ 'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const initHooks = require('./init-hooks'); const tick = require('./tick'); -const common = require('../common'); const assert = require('assert'); const { checkInvocations } = require('./hook-checks'); -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const tls = require('tls'); const Connection = process.binding('crypto').Connection; const hooks = initHooks(); diff --git a/test/async-hooks/test-crypto-pbkdf2.js b/test/async-hooks/test-crypto-pbkdf2.js index 3023101f0b6640..2a0b44db8ce7a8 100644 --- a/test/async-hooks/test-crypto-pbkdf2.js +++ b/test/async-hooks/test-crypto-pbkdf2.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); diff --git a/test/async-hooks/test-crypto-randomBytes.js b/test/async-hooks/test-crypto-randomBytes.js index 49ffc6fdb612ea..76f8f7759503c4 100644 --- a/test/async-hooks/test-crypto-randomBytes.js +++ b/test/async-hooks/test-crypto-randomBytes.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); diff --git a/test/async-hooks/test-graph.connection.js b/test/async-hooks/test-graph.connection.js index 37ecc79bb06956..fcc764b5ccf218 100644 --- a/test/async-hooks/test-graph.connection.js +++ b/test/async-hooks/test-graph.connection.js @@ -1,13 +1,11 @@ 'use strict'; -const initHooks = require('./init-hooks'); const common = require('../common'); -const verifyGraph = require('./verify-graph'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); const tls = require('tls'); const Connection = process.binding('crypto').Connection; diff --git a/test/async-hooks/test-graph.shutdown.js b/test/async-hooks/test-graph.shutdown.js index 029a9c86b66763..136f01821217c1 100644 --- a/test/async-hooks/test-graph.shutdown.js +++ b/test/async-hooks/test-graph.shutdown.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const initHooks = require('./init-hooks'); -const verifyGraph = require('./verify-graph'); - -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('IPv6 support required'); - return; -} +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); const net = require('net'); const hooks = initHooks(); diff --git a/test/async-hooks/test-graph.tcp.js b/test/async-hooks/test-graph.tcp.js index f9703769b831b9..872615990733cc 100644 --- a/test/async-hooks/test-graph.tcp.js +++ b/test/async-hooks/test-graph.tcp.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const initHooks = require('./init-hooks'); -const verifyGraph = require('./verify-graph'); - -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('IPv6 support required'); - return; -} +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); const net = require('net'); const hooks = initHooks(); diff --git a/test/async-hooks/test-graph.tls-write.js b/test/async-hooks/test-graph.tls-write.js index 77a97bedbc5438..338a714c322314 100644 --- a/test/async-hooks/test-graph.tls-write.js +++ b/test/async-hooks/test-graph.tls-write.js @@ -1,21 +1,17 @@ 'use strict'; const common = require('../common'); -const initHooks = require('./init-hooks'); -const verifyGraph = require('./verify-graph'); -const fs = require('fs'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('IPv6 support required'); - return; -} +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); +const fs = require('fs'); const tls = require('tls'); + const hooks = initHooks(); hooks.enable(); diff --git a/test/async-hooks/test-tcpwrap.js b/test/async-hooks/test-tcpwrap.js index 0dce8c7d9f0bde..b4021753a072ed 100644 --- a/test/async-hooks/test-tcpwrap.js +++ b/test/async-hooks/test-tcpwrap.js @@ -2,16 +2,13 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('IPv6 support required'); + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); const { checkInvocations } = require('./hook-checks'); - -if (!common.hasIPv6) { - common.skip('IPv6 support required'); - return; -} - const net = require('net'); let tcp1, tcp2, tcp3; diff --git a/test/async-hooks/test-tlswrap.js b/test/async-hooks/test-tlswrap.js index 47cca62c182af9..878afac06311a9 100644 --- a/test/async-hooks/test-tlswrap.js +++ b/test/async-hooks/test-tlswrap.js @@ -1,18 +1,16 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); const fs = require('fs'); const { checkInvocations } = require('./hook-checks'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const tls = require('tls'); + const hooks = initHooks(); hooks.enable(); diff --git a/test/async-hooks/test-ttywrap.writestream.js b/test/async-hooks/test-ttywrap.writestream.js index b1cc768877d925..990460b53760fe 100644 --- a/test/async-hooks/test-ttywrap.writestream.js +++ b/test/async-hooks/test-ttywrap.writestream.js @@ -1,14 +1,16 @@ 'use strict'; const common = require('../common'); + +const tty_fd = common.getTTYfd(); +if (tty_fd < 0) + common.skip('no valid TTY fd available'); + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); const { checkInvocations } = require('./hook-checks'); -const tty_fd = common.getTTYfd(); -if (tty_fd < 0) - return common.skip('no valid TTY fd available'); const ttyStream = (() => { try { return new (require('tty').WriteStream)(tty_fd); @@ -17,7 +19,7 @@ const ttyStream = (() => { } })(); if (ttyStream === null) - return common.skip('no valid TTY fd available'); + common.skip('no valid TTY fd available'); const hooks = initHooks(); hooks.enable(); diff --git a/test/async-hooks/test-writewrap.js b/test/async-hooks/test-writewrap.js index 6253b09d4adccc..eca0d08f10f402 100644 --- a/test/async-hooks/test-writewrap.js +++ b/test/async-hooks/test-writewrap.js @@ -1,17 +1,15 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const initHooks = require('./init-hooks'); const fs = require('fs'); const { checkInvocations } = require('./hook-checks'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const tls = require('tls'); + const hooks = initHooks(); hooks.enable(); diff --git a/test/common/README.md b/test/common/README.md index f418115ce31805..78145b412fd6be 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -277,6 +277,11 @@ Path to the test sock. Port tests are running on. +### printSkipMessage(msg) +* `msg` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) + +Logs '1..0 # Skipped: ' + `msg` + ### refreshTmpDir * return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) @@ -298,7 +303,7 @@ 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` +Logs '1..0 # Skipped: ' + `msg` and exits with exit code `0`. ### spawnPwd(options) * `options` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) diff --git a/test/common/index.js b/test/common/index.js index 5c820211d72033..f92b535efc524f 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -571,10 +571,15 @@ exports.mustNotCall = function(msg) { }; }; -exports.skip = function(msg) { +exports.printSkipMessage = function(msg) { console.log(`1..0 # Skipped: ${msg}`); }; +exports.skip = function(msg) { + exports.printSkipMessage(msg); + process.exit(0); +}; + // A stream to push an array into a REPL function ArrayStream() { this.run = function(data) { @@ -718,7 +723,6 @@ exports.expectsError = function expectsError({code, type, message}) { exports.skipIfInspectorDisabled = function skipIfInspectorDisabled() { if (process.config.variables.v8_enable_inspector === 0) { exports.skip('V8 inspector is disabled'); - process.exit(0); } }; diff --git a/test/doctool/test-doctool-html.js b/test/doctool/test-doctool-html.js index 3af5a5409db103..64f1d7f8b142f5 100644 --- a/test/doctool/test-doctool-html.js +++ b/test/doctool/test-doctool-html.js @@ -1,17 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); - // The doctool currently uses js-yaml from the tool/eslint/ tree. try { require('../../tools/eslint/node_modules/js-yaml'); } catch (e) { - return common.skip('missing js-yaml (eslint not present)'); + common.skip('missing js-yaml (eslint not present)'); } +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const processIncludes = require('../../tools/doc/preprocess.js'); const html = require('../../tools/doc/html.js'); diff --git a/test/doctool/test-doctool-json.js b/test/doctool/test-doctool-json.js index 346a7f331e9d7f..4a4d3a895c3f20 100644 --- a/test/doctool/test-doctool-json.js +++ b/test/doctool/test-doctool-json.js @@ -1,17 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); - // The doctool currently uses js-yaml from the tool/eslint/ tree. try { require('../../tools/eslint/node_modules/js-yaml'); } catch (e) { - return common.skip('missing js-yaml (eslint not present)'); + common.skip('missing js-yaml (eslint not present)'); } +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const json = require('../../tools/doc/json.js'); // Outputs valid json with the expected fields when given simple markdown diff --git a/test/fixtures/tls-connect.js b/test/fixtures/tls-connect.js index a434a0316d6fb5..2ce75a53767724 100644 --- a/test/fixtures/tls-connect.js +++ b/test/fixtures/tls-connect.js @@ -4,14 +4,13 @@ 'use strict'; const common = require('../common'); -const fs = require('fs'); -const join = require('path').join; // Check if Node was compiled --without-ssl and if so exit early // as the require of tls will otherwise throw an Error. -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(0); -} + +const fs = require('fs'); +const join = require('path').join; const tls = require('tls'); const util = require('util'); diff --git a/test/inspector/test-inspector-ip-detection.js b/test/inspector/test-inspector-ip-detection.js index ad51c631645e4a..be5e34a977eb84 100644 --- a/test/inspector/test-inspector-ip-detection.js +++ b/test/inspector/test-inspector-ip-detection.js @@ -9,10 +9,8 @@ const os = require('os'); const ip = pickIPv4Address(); -if (!ip) { +if (!ip) common.skip('No IP address found'); - return; -} function checkListResponse(instance, err, response) { assert.ifError(err); @@ -29,7 +27,7 @@ function checkListResponse(instance, err, response) { function checkError(instance, error) { // Some OSes will not allow us to connect if (error.code === 'EHOSTUNREACH') { - common.skip('Unable to connect to self'); + common.printSkipMessage('Unable to connect to self'); } else { throw error; } diff --git a/test/internet/test-dgram-broadcast-multi-process.js b/test/internet/test-dgram-broadcast-multi-process.js index 79e139248454d5..0ec4bbd9ce5aa7 100644 --- a/test/internet/test-dgram-broadcast-multi-process.js +++ b/test/internet/test-dgram-broadcast-multi-process.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.inFreeBSDJail) + common.skip('in a FreeBSD jail'); + const assert = require('assert'); const dgram = require('dgram'); const util = require('util'); @@ -35,11 +38,6 @@ const messages = [ Buffer.from('Fourth message to send') ]; -if (common.inFreeBSDJail) { - common.skip('in a FreeBSD jail'); - return; -} - let bindAddress = null; // Take the first non-internal interface as the address for binding. diff --git a/test/internet/test-dgram-multicast-multi-process.js b/test/internet/test-dgram-multicast-multi-process.js index dac8abd6a7a436..a7854652eab49f 100644 --- a/test/internet/test-dgram-multicast-multi-process.js +++ b/test/internet/test-dgram-multicast-multi-process.js @@ -21,6 +21,10 @@ 'use strict'; const common = require('../common'); +// Skip test in FreeBSD jails. +if (common.inFreeBSDJail) + common.skip('In a FreeBSD jail'); + const assert = require('assert'); const dgram = require('dgram'); const fork = require('child_process').fork; @@ -37,12 +41,6 @@ const listeners = 3; let listening, sendSocket, done, timer, dead; -// Skip test in FreeBSD jails. -if (common.inFreeBSDJail) { - common.skip('In a FreeBSD jail'); - return; -} - function launchChildProcess() { const worker = fork(__filename, ['child']); workers[worker.pid] = worker; diff --git a/test/internet/test-dns-ipv6.js b/test/internet/test-dns-ipv6.js index 31f9df5eab8a51..9b9360c2a1628c 100644 --- a/test/internet/test-dns-ipv6.js +++ b/test/internet/test-dns-ipv6.js @@ -1,5 +1,8 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('this test, no IPv6 support'); + const assert = require('assert'); const dns = require('dns'); const net = require('net'); @@ -8,11 +11,6 @@ const isIPv6 = net.isIPv6; let running = false; const queue = []; -if (!common.hasIPv6) { - common.skip('this test, no IPv6 support'); - return; -} - function TEST(f) { function next() { const f = queue.shift(); diff --git a/test/internet/test-http-https-default-ports.js b/test/internet/test-http-https-default-ports.js index b0eb682519bae6..567b045dc6eacf 100644 --- a/test/internet/test-http-https-default-ports.js +++ b/test/internet/test-http-https-default-ports.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const https = require('https'); const http = require('http'); diff --git a/test/internet/test-tls-add-ca-cert.js b/test/internet/test-tls-add-ca-cert.js index 1283230e911b4d..299e01405d7dbd 100644 --- a/test/internet/test-tls-add-ca-cert.js +++ b/test/internet/test-tls-add-ca-cert.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} // Test interaction of compiled-in CAs with user-provided CAs. diff --git a/test/internet/test-tls-connnect-melissadata.js b/test/internet/test-tls-connnect-melissadata.js index f57b897099fc2d..ab5aa3950938b3 100644 --- a/test/internet/test-tls-connnect-melissadata.js +++ b/test/internet/test-tls-connnect-melissadata.js @@ -3,10 +3,8 @@ // certification between Starfield Class 2 and ValiCert Class 2 const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const tls = require('tls'); const socket = tls.connect(443, 'address.melissadata.net', function() { diff --git a/test/internet/test-tls-reuse-host-from-socket.js b/test/internet/test-tls-reuse-host-from-socket.js index fda9712156cb11..73ee91d3b2ea0d 100644 --- a/test/internet/test-tls-reuse-host-from-socket.js +++ b/test/internet/test-tls-reuse-host-from-socket.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); diff --git a/test/known_issues/test-cwd-enoent-file.js b/test/known_issues/test-cwd-enoent-file.js index 9431919804af4e..b2f59cbca7d48a 100644 --- a/test/known_issues/test-cwd-enoent-file.js +++ b/test/known_issues/test-cwd-enoent-file.js @@ -9,7 +9,6 @@ if (common.isSunOS || common.isWindows || common.isAix) { // The current working directory cannot be removed on these platforms. // Change this to common.skip() when this is no longer a known issue test. assert.fail('cannot rmdir current working directory'); - return; } const cp = require('child_process'); diff --git a/test/parallel/test-async-wrap-GH13045.js b/test/parallel/test-async-wrap-GH13045.js index 41c6f0cd19eb35..1382de8060813a 100644 --- a/test/parallel/test-async-wrap-GH13045.js +++ b/test/parallel/test-async-wrap-GH13045.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} // Refs: https://github.com/nodejs/node/issues/13045 // An HTTP Agent reuses a TLSSocket, and makes a failed call to `asyncReset`. diff --git a/test/parallel/test-async-wrap-uncaughtexception.js b/test/parallel/test-async-wrap-uncaughtexception.js index f5f81f10052966..9427e2fb787a9b 100644 --- a/test/parallel/test-async-wrap-uncaughtexception.js +++ b/test/parallel/test-async-wrap-uncaughtexception.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const async_hooks = require('async_hooks'); const call_log = [0, 0, 0, 0]; // [before, callback, exception, after]; diff --git a/test/parallel/test-benchmark-crypto.js b/test/parallel/test-benchmark-crypto.js index 55ab98ee2199df..e7f99ad29c0586 100644 --- a/test/parallel/test-benchmark-crypto.js +++ b/test/parallel/test-benchmark-crypto.js @@ -2,15 +2,11 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (common.hasFipsCrypto) { +if (common.hasFipsCrypto) common.skip('some benchmarks are FIPS-incompatible'); - return; -} // Minimal test for crypto benchmarks. This makes sure the benchmarks aren't // horribly broken but nothing more than that. diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index b5318110fa7182..8bc4ebc9f534ff 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -917,7 +917,7 @@ if (common.hasCrypto) { crypto.createHash('sha1').update(b2).digest('hex') ); } else { - common.skip('missing crypto'); + common.printSkipMessage('missing crypto'); } const ps = Buffer.poolSize; diff --git a/test/parallel/test-child-process-fork-dgram.js b/test/parallel/test-child-process-fork-dgram.js index be351cced04f0c..4aa36261dbb24b 100644 --- a/test/parallel/test-child-process-fork-dgram.js +++ b/test/parallel/test-child-process-fork-dgram.js @@ -28,15 +28,13 @@ */ const common = require('../common'); +if (common.isWindows) + common.skip('Sending dgram sockets to child processes is not supported'); + const dgram = require('dgram'); const fork = require('child_process').fork; const assert = require('assert'); -if (common.isWindows) { - common.skip('Sending dgram sockets to child processes is not supported'); - return; -} - if (process.argv[2] === 'child') { let childServer; diff --git a/test/parallel/test-cli-node-options.js b/test/parallel/test-cli-node-options.js index 0c39813cf62ccd..8622dafbe10af3 100644 --- a/test/parallel/test-cli-node-options.js +++ b/test/parallel/test-cli-node-options.js @@ -1,7 +1,7 @@ 'use strict'; const common = require('../common'); if (process.config.variables.node_without_node_options) - return common.skip('missing NODE_OPTIONS support'); + common.skip('missing NODE_OPTIONS support'); // Test options specified by env variable. diff --git a/test/parallel/test-cluster-bind-privileged-port.js b/test/parallel/test-cluster-bind-privileged-port.js index e726618ffbd31c..99f7a20c4946be 100644 --- a/test/parallel/test-cluster-bind-privileged-port.js +++ b/test/parallel/test-cluster-bind-privileged-port.js @@ -21,19 +21,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const cluster = require('cluster'); -const net = require('net'); - -if (common.isWindows) { +if (common.isWindows) common.skip('not reliable on Windows.'); - return; -} -if (process.getuid() === 0) { +if (process.getuid() === 0) common.skip('Test is not supposed to be run as root.'); - return; -} + +const assert = require('assert'); +const cluster = require('cluster'); +const net = require('net'); if (cluster.isMaster) { cluster.fork().on('exit', common.mustCall((exitCode) => { diff --git a/test/parallel/test-cluster-dgram-1.js b/test/parallel/test-cluster-dgram-1.js index 9e0ed3dfb9c7b8..3688c67f6c68c8 100644 --- a/test/parallel/test-cluster-dgram-1.js +++ b/test/parallel/test-cluster-dgram-1.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on Windows.'); + const NUM_WORKERS = 4; const PACKETS_PER_WORKER = 10; @@ -28,12 +31,6 @@ const assert = require('assert'); const cluster = require('cluster'); const dgram = require('dgram'); - -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on Windows.'); - return; -} - if (cluster.isMaster) master(); else diff --git a/test/parallel/test-cluster-dgram-2.js b/test/parallel/test-cluster-dgram-2.js index 9ae903b6eaf22b..7c1dae65600fc0 100644 --- a/test/parallel/test-cluster-dgram-2.js +++ b/test/parallel/test-cluster-dgram-2.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on Windows.'); + const NUM_WORKERS = 4; const PACKETS_PER_WORKER = 10; @@ -28,12 +31,6 @@ const cluster = require('cluster'); const dgram = require('dgram'); const assert = require('assert'); - -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on Windows.'); - return; -} - if (cluster.isMaster) master(); else diff --git a/test/parallel/test-cluster-dgram-reuse.js b/test/parallel/test-cluster-dgram-reuse.js index 1472dcc5238a63..51a4944e554856 100644 --- a/test/parallel/test-cluster-dgram-reuse.js +++ b/test/parallel/test-cluster-dgram-reuse.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on windows.'); + const assert = require('assert'); const cluster = require('cluster'); const dgram = require('dgram'); -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on windows.'); - return; -} - if (cluster.isMaster) { cluster.fork().on('exit', common.mustCall((code) => { assert.strictEqual(code, 0); diff --git a/test/parallel/test-cluster-disconnect-race.js b/test/parallel/test-cluster-disconnect-race.js index 7bb66ced3663ef..60d8697b671b84 100644 --- a/test/parallel/test-cluster-disconnect-race.js +++ b/test/parallel/test-cluster-disconnect-race.js @@ -4,15 +4,13 @@ // Ref: https://github.com/nodejs/node/issues/4205 const common = require('../common'); +if (common.isWindows) + common.skip('This test does not apply to Windows.'); + const assert = require('assert'); const net = require('net'); const cluster = require('cluster'); -if (common.isWindows) { - common.skip('This test does not apply to Windows.'); - return; -} - cluster.schedulingPolicy = cluster.SCHED_NONE; if (cluster.isMaster) { diff --git a/test/parallel/test-cluster-disconnect-unshared-udp.js b/test/parallel/test-cluster-disconnect-unshared-udp.js index 653ab6cc9c3be8..d34ce11b0285ab 100644 --- a/test/parallel/test-cluster-disconnect-unshared-udp.js +++ b/test/parallel/test-cluster-disconnect-unshared-udp.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (common.isWindows) { +if (common.isWindows) common.skip('on windows, because clustered dgram is ENOTSUP'); - return; -} const cluster = require('cluster'); const dgram = require('dgram'); diff --git a/test/parallel/test-cluster-http-pipe.js b/test/parallel/test-cluster-http-pipe.js index 93b457fd808013..96f741e80443b7 100644 --- a/test/parallel/test-cluster-http-pipe.js +++ b/test/parallel/test-cluster-http-pipe.js @@ -22,16 +22,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const cluster = require('cluster'); -const http = require('http'); - if (common.isWindows) { common.skip( 'It is not possible to send pipe handles over the IPC pipe on Windows'); - return; } +const assert = require('assert'); +const cluster = require('cluster'); +const http = require('http'); + if (cluster.isMaster) { common.refreshTmpDir(); const worker = cluster.fork(); diff --git a/test/parallel/test-cluster-shared-handle-bind-privileged-port.js b/test/parallel/test-cluster-shared-handle-bind-privileged-port.js index 419307d52ccf8a..8f05b28fed3308 100644 --- a/test/parallel/test-cluster-shared-handle-bind-privileged-port.js +++ b/test/parallel/test-cluster-shared-handle-bind-privileged-port.js @@ -21,19 +21,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const cluster = require('cluster'); -const net = require('net'); - -if (common.isWindows) { +if (common.isWindows) common.skip('not reliable on Windows'); - return; -} -if (process.getuid() === 0) { +if (process.getuid() === 0) common.skip('as this test should not be run as `root`'); - return; -} + +const assert = require('assert'); +const cluster = require('cluster'); +const net = require('net'); if (cluster.isMaster) { // Master opens and binds the socket and shares it with the worker. diff --git a/test/parallel/test-crypto-authenticated.js b/test/parallel/test-crypto-authenticated.js index 2d5370ba3eac2b..c03aa0efce54e0 100644 --- a/test/parallel/test-crypto-authenticated.js +++ b/test/parallel/test-crypto-authenticated.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; @@ -341,12 +339,12 @@ for (const i in TEST_CASES) { const test = TEST_CASES[i]; if (!ciphers.includes(test.algo)) { - common.skip(`unsupported ${test.algo} test`); + common.printSkipMessage(`unsupported ${test.algo} test`); continue; } if (common.hasFipsCrypto && test.iv.length < 24) { - common.skip('IV len < 12 bytes unsupported in FIPS mode'); + common.printSkipMessage('IV len < 12 bytes unsupported in FIPS mode'); continue; } diff --git a/test/parallel/test-crypto-binary-default.js b/test/parallel/test-crypto-binary-default.js index e92f70035bde78..5bb254057b5a7a 100644 --- a/test/parallel/test-crypto-binary-default.js +++ b/test/parallel/test-crypto-binary-default.js @@ -26,10 +26,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-certificate.js b/test/parallel/test-crypto-certificate.js index 831fed0f14e921..61d8ea8193d5bc 100644 --- a/test/parallel/test-crypto-certificate.js +++ b/test/parallel/test-crypto-certificate.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-cipher-decipher.js b/test/parallel/test-crypto-cipher-decipher.js index dfb68a7f920844..0104341653f7f5 100644 --- a/test/parallel/test-crypto-cipher-decipher.js +++ b/test/parallel/test-crypto-cipher-decipher.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (common.hasFipsCrypto) { + +if (common.hasFipsCrypto) common.skip('not supported in FIPS mode'); - return; -} + const crypto = require('crypto'); const assert = require('assert'); diff --git a/test/parallel/test-crypto-cipheriv-decipheriv.js b/test/parallel/test-crypto-cipheriv-decipheriv.js index 31a79d8bf175b8..96ca44fec82856 100644 --- a/test/parallel/test-crypto-cipheriv-decipheriv.js +++ b/test/parallel/test-crypto-cipheriv-decipheriv.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); function testCipher1(key, iv) { diff --git a/test/parallel/test-crypto-deprecated.js b/test/parallel/test-crypto-deprecated.js index 903862d6c8ed27..84f25316d49b61 100644 --- a/test/parallel/test-crypto-deprecated.js +++ b/test/parallel/test-crypto-deprecated.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); const tls = require('tls'); diff --git a/test/parallel/test-crypto-dh-odd-key.js b/test/parallel/test-crypto-dh-odd-key.js index 94f3d382655ae6..449c482d351c56 100644 --- a/test/parallel/test-crypto-dh-odd-key.js +++ b/test/parallel/test-crypto-dh-odd-key.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); function test() { diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js index 91a066d1bd22b1..3b51dc559063d6 100644 --- a/test/parallel/test-crypto-dh.js +++ b/test/parallel/test-crypto-dh.js @@ -1,12 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); + const DH_NOT_SUITABLE_GENERATOR = crypto.constants.DH_NOT_SUITABLE_GENERATOR; // Test Diffie-Hellman with two parties sharing a secret, diff --git a/test/parallel/test-crypto-domain.js b/test/parallel/test-crypto-domain.js index b41b57e3a258b5..d579331287c485 100644 --- a/test/parallel/test-crypto-domain.js +++ b/test/parallel/test-crypto-domain.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const domain = require('domain'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); function test(fn) { diff --git a/test/parallel/test-crypto-domains.js b/test/parallel/test-crypto-domains.js index 23ca991500d799..be87cad6ff6ff7 100644 --- a/test/parallel/test-crypto-domains.js +++ b/test/parallel/test-crypto-domains.js @@ -21,17 +21,16 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const domain = require('domain'); const assert = require('assert'); +const crypto = require('crypto'); + const d = domain.create(); const expect = ['pbkdf2', 'randomBytes', 'pseudoRandomBytes']; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} -const crypto = require('crypto'); - d.on('error', common.mustCall(function(e) { assert.strictEqual(e.message, expect.shift()); }, 3)); diff --git a/test/parallel/test-crypto-ecb.js b/test/parallel/test-crypto-ecb.js index d69cb9ea0d2754..4faf4af2c576fd 100644 --- a/test/parallel/test-crypto-ecb.js +++ b/test/parallel/test-crypto-ecb.js @@ -21,16 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (common.hasFipsCrypto) { + +if (common.hasFipsCrypto) common.skip('BF-ECB is not FIPS 140-2 compatible'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-engine.js b/test/parallel/test-crypto-engine.js index 8452087cc50c93..b2fe154d3c228f 100644 --- a/test/parallel/test-crypto-engine.js +++ b/test/parallel/test-crypto-engine.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-fips.js b/test/parallel/test-crypto-fips.js index a83170c49ae4b1..f1d81f078bd51f 100644 --- a/test/parallel/test-crypto-fips.js +++ b/test/parallel/test-crypto-fips.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const spawnSync = require('child_process').spawnSync; const path = require('path'); -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const FIPS_ENABLED = 1; const FIPS_DISABLED = 0; const FIPS_ERROR_STRING = 'Error: Cannot set FIPS mode'; diff --git a/test/parallel/test-crypto-from-binary.js b/test/parallel/test-crypto-from-binary.js index 785fff4388b43b..ed1be9b3157229 100644 --- a/test/parallel/test-crypto-from-binary.js +++ b/test/parallel/test-crypto-from-binary.js @@ -25,12 +25,10 @@ const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); const EXTERN_APEX = 0xFBEE9; diff --git a/test/parallel/test-crypto-hash-stream-pipe.js b/test/parallel/test-crypto-hash-stream-pipe.js index ee152dc028e2a4..0a240a2abbc7ef 100644 --- a/test/parallel/test-crypto-hash-stream-pipe.js +++ b/test/parallel/test-crypto-hash-stream-pipe.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-hash.js b/test/parallel/test-crypto-hash.js index 28f0f2f30349ba..f76e4f98c851bb 100644 --- a/test/parallel/test-crypto-hash.js +++ b/test/parallel/test-crypto-hash.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); const path = require('path'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); // Test hashing diff --git a/test/parallel/test-crypto-hmac.js b/test/parallel/test-crypto-hmac.js index 94c5cefa058d02..a10e8a731be023 100644 --- a/test/parallel/test-crypto-hmac.js +++ b/test/parallel/test-crypto-hmac.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); // Test for binding layer robustness diff --git a/test/parallel/test-crypto-lazy-transform-writable.js b/test/parallel/test-crypto-lazy-transform-writable.js index 9008ebc5f910a6..f12243b9f4d17c 100644 --- a/test/parallel/test-crypto-lazy-transform-writable.js +++ b/test/parallel/test-crypto-lazy-transform-writable.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const crypto = require('crypto'); const Stream = require('stream'); diff --git a/test/parallel/test-crypto-padding-aes256.js b/test/parallel/test-crypto-padding-aes256.js index 3e17a3fc3e5fc5..9fb80f3eed7856 100644 --- a/test/parallel/test-crypto-padding-aes256.js +++ b/test/parallel/test-crypto-padding-aes256.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-padding.js b/test/parallel/test-crypto-padding.js index 095f1ba407caff..6ad504d12c2ced 100644 --- a/test/parallel/test-crypto-padding.js +++ b/test/parallel/test-crypto-padding.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-pbkdf2.js b/test/parallel/test-crypto-pbkdf2.js index 9ed719c1f68358..f8f428652506fe 100644 --- a/test/parallel/test-crypto-pbkdf2.js +++ b/test/parallel/test-crypto-pbkdf2.js @@ -1,10 +1,7 @@ 'use strict'; const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-random.js b/test/parallel/test-crypto-random.js index c60e3b2681e118..eec6f00b5426e0 100644 --- a/test/parallel/test-crypto-random.js +++ b/test/parallel/test-crypto-random.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-rsa-dsa.js b/test/parallel/test-crypto-rsa-dsa.js index daa818705b8488..813df587325ba5 100644 --- a/test/parallel/test-crypto-rsa-dsa.js +++ b/test/parallel/test-crypto-rsa-dsa.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} -const constants = require('crypto').constants; const crypto = require('crypto'); +const constants = crypto.constants; const fixtDir = common.fixturesDir; // Test certificates diff --git a/test/parallel/test-crypto-sign-verify.js b/test/parallel/test-crypto-sign-verify.js index 2a64b6d072485b..5d19917c488f80 100644 --- a/test/parallel/test-crypto-sign-verify.js +++ b/test/parallel/test-crypto-sign-verify.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); const path = require('path'); const exec = require('child_process').exec; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); // Test certificates @@ -245,10 +243,8 @@ const modSize = 1024; // RSA-PSS Sign test by verifying with 'openssl dgst -verify' { - if (!common.opensslCli) { + if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; - } const pubfile = path.join(common.fixturesDir, 'keys/rsa_public_2048.pem'); const privfile = path.join(common.fixturesDir, 'keys/rsa_private_2048.pem'); diff --git a/test/parallel/test-crypto-stream.js b/test/parallel/test-crypto-stream.js index e40b36847b5602..1c3b8bbcbb1c41 100644 --- a/test/parallel/test-crypto-stream.js +++ b/test/parallel/test-crypto-stream.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const stream = require('stream'); const util = require('util'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); // Small stream to buffer converter diff --git a/test/parallel/test-crypto-verify-failure.js b/test/parallel/test-crypto-verify-failure.js index 1b3622fe01eea8..4bd70f388d878f 100644 --- a/test/parallel/test-crypto-verify-failure.js +++ b/test/parallel/test-crypto-verify-failure.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const crypto = require('crypto'); const tls = require('tls'); diff --git a/test/parallel/test-crypto.js b/test/parallel/test-crypto.js index a7638d3cd899a1..d45de9979b96ec 100644 --- a/test/parallel/test-crypto.js +++ b/test/parallel/test-crypto.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-cwd-enoent-preload.js b/test/parallel/test-cwd-enoent-preload.js index 5d44814d2fe430..8979547c0dea94 100644 --- a/test/parallel/test-cwd-enoent-preload.js +++ b/test/parallel/test-cwd-enoent-preload.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. +if (common.isSunOS || common.isWindows || common.isAix) + common.skip('cannot rmdir current working directory'); + const assert = require('assert'); const fs = require('fs'); const spawn = require('child_process').spawn; -// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAix) { - common.skip('cannot rmdir current working directory'); - return; -} - const dirname = `${common.tmpDir}/cwd-does-not-exist-${process.pid}`; const abspathFile = require('path').join(common.fixturesDir, 'a.js'); common.refreshTmpDir(); diff --git a/test/parallel/test-cwd-enoent-repl.js b/test/parallel/test-cwd-enoent-repl.js index c82083668aab43..bb41b1fccd8bf6 100644 --- a/test/parallel/test-cwd-enoent-repl.js +++ b/test/parallel/test-cwd-enoent-repl.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. +if (common.isSunOS || common.isWindows || common.isAix) + common.skip('cannot rmdir current working directory'); + const assert = require('assert'); const fs = require('fs'); const spawn = require('child_process').spawn; -// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAix) { - common.skip('cannot rmdir current working directory'); - return; -} - const dirname = `${common.tmpDir}/cwd-does-not-exist-${process.pid}`; common.refreshTmpDir(); fs.mkdirSync(dirname); diff --git a/test/parallel/test-cwd-enoent.js b/test/parallel/test-cwd-enoent.js index dac23e4084aaf5..27df46acf89ea4 100644 --- a/test/parallel/test-cwd-enoent.js +++ b/test/parallel/test-cwd-enoent.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. +if (common.isSunOS || common.isWindows || common.isAix) + common.skip('cannot rmdir current working directory'); + const assert = require('assert'); const fs = require('fs'); const spawn = require('child_process').spawn; -// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAix) { - common.skip('cannot rmdir current working directory'); - return; -} - const dirname = `${common.tmpDir}/cwd-does-not-exist-${process.pid}`; common.refreshTmpDir(); fs.mkdirSync(dirname); diff --git a/test/parallel/test-debug-usage.js b/test/parallel/test-debug-usage.js index e01ac8e15b8993..a264029f434a5a 100644 --- a/test/parallel/test-debug-usage.js +++ b/test/parallel/test-debug-usage.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const spawn = require('child_process').spawn; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const child = spawn(process.execPath, ['debug']); child.stderr.setEncoding('utf8'); diff --git a/test/parallel/test-dgram-bind-default-address.js b/test/parallel/test-dgram-bind-default-address.js index d0b5b6023445ca..762ead7c869e8d 100755 --- a/test/parallel/test-dgram-bind-default-address.js +++ b/test/parallel/test-dgram-bind-default-address.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - // skip test in FreeBSD jails since 0.0.0.0 will resolve to default interface -if (common.inFreeBSDJail) { +if (common.inFreeBSDJail) common.skip('In a FreeBSD jail'); - return; -} + +const assert = require('assert'); +const dgram = require('dgram'); dgram.createSocket('udp4').bind(0, common.mustCall(function() { assert.strictEqual(typeof this.address().port, 'number'); @@ -39,7 +37,7 @@ dgram.createSocket('udp4').bind(0, common.mustCall(function() { })); if (!common.hasIPv6) { - common.skip('udp6 part of test, because no IPv6 support'); + common.printSkipMessage('udp6 part of test, because no IPv6 support'); return; } diff --git a/test/parallel/test-dgram-cluster-close-during-bind.js b/test/parallel/test-dgram-cluster-close-during-bind.js index ec62693abfb645..4e8cdbf9d35cbb 100644 --- a/test/parallel/test-dgram-cluster-close-during-bind.js +++ b/test/parallel/test-dgram-cluster-close-during-bind.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on windows.'); + const assert = require('assert'); const cluster = require('cluster'); const dgram = require('dgram'); -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on windows.'); - return; -} - if (cluster.isMaster) { cluster.fork(); } else { diff --git a/test/parallel/test-dgram-send-empty-array.js b/test/parallel/test-dgram-send-empty-array.js index 1bfcacd9a40497..e6a391de945d07 100644 --- a/test/parallel/test-dgram-send-empty-array.js +++ b/test/parallel/test-dgram-send-empty-array.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (common.isOSX) { +if (common.isOSX) common.skip('because of 17894467 Apple bug'); - return; -} const assert = require('assert'); const dgram = require('dgram'); diff --git a/test/parallel/test-dgram-send-empty-buffer.js b/test/parallel/test-dgram-send-empty-buffer.js index 16c14909f62dff..554a3c9185c852 100644 --- a/test/parallel/test-dgram-send-empty-buffer.js +++ b/test/parallel/test-dgram-send-empty-buffer.js @@ -21,13 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (common.isOSX) { +if (common.isOSX) common.skip('because of 17894467 Apple bug'); - return; -} +const assert = require('assert'); const dgram = require('dgram'); const client = dgram.createSocket('udp4'); diff --git a/test/parallel/test-dgram-send-empty-packet.js b/test/parallel/test-dgram-send-empty-packet.js index 131e808aec0b72..b425e9eb1582cb 100644 --- a/test/parallel/test-dgram-send-empty-packet.js +++ b/test/parallel/test-dgram-send-empty-packet.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (common.isOSX) { +if (common.isOSX) common.skip('because of 17894467 Apple bug'); - return; -} +const assert = require('assert'); const dgram = require('dgram'); const client = dgram.createSocket('udp4'); diff --git a/test/parallel/test-dgram-udp6-send-default-host.js b/test/parallel/test-dgram-udp6-send-default-host.js index e893f248ecd87b..d801ca7e8dcd08 100644 --- a/test/parallel/test-dgram-udp6-send-default-host.js +++ b/test/parallel/test-dgram-udp6-send-default-host.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('no IPv6 support'); + const assert = require('assert'); const dgram = require('dgram'); -if (!common.hasIPv6) { - common.skip('no IPv6 support'); - return; -} - const client = dgram.createSocket('udp6'); const toSend = [Buffer.alloc(256, 'x'), diff --git a/test/parallel/test-dh-padding.js b/test/parallel/test-dh-padding.js index 6853533ee4e4a3..311b9d156ff174 100644 --- a/test/parallel/test-dh-padding.js +++ b/test/parallel/test-dh-padding.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('node compiled without OpenSSL.'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-domain-crypto.js b/test/parallel/test-domain-crypto.js index d0bdbf4720b913..3890a7b4641ade 100644 --- a/test/parallel/test-domain-crypto.js +++ b/test/parallel/test-domain-crypto.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('node compiled without OpenSSL.'); - return; -} const crypto = require('crypto'); diff --git a/test/parallel/test-dsa-fips-invalid-key.js b/test/parallel/test-dsa-fips-invalid-key.js index b22be9d077922b..b88c05a87cbf85 100644 --- a/test/parallel/test-dsa-fips-invalid-key.js +++ b/test/parallel/test-dsa-fips-invalid-key.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasFipsCrypto) { +if (!common.hasFipsCrypto) common.skip('node compiled without FIPS OpenSSL.'); - return; -} +const assert = require('assert'); const crypto = require('crypto'); const fs = require('fs'); diff --git a/test/parallel/test-fs-long-path.js b/test/parallel/test-fs-long-path.js index b8aa6a2ac871a1..ae60b16f1a3f97 100644 --- a/test/parallel/test-fs-long-path.js +++ b/test/parallel/test-fs-long-path.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('this test is Windows-specific.'); + const fs = require('fs'); const path = require('path'); const assert = require('assert'); -if (!common.isWindows) { - common.skip('this test is Windows-specific.'); - return; -} - // make a path that will be at least 260 chars long. const fileNameLen = Math.max(260 - common.tmpDir.length - 1, 1); const fileName = path.join(common.tmpDir, 'x'.repeat(fileNameLen)); diff --git a/test/parallel/test-fs-read-file-sync-hostname.js b/test/parallel/test-fs-read-file-sync-hostname.js index f7a03e552478a4..599f48b6ccfcfe 100644 --- a/test/parallel/test-fs-read-file-sync-hostname.js +++ b/test/parallel/test-fs-read-file-sync-hostname.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.isLinux) + common.skip('Test is linux specific.'); + const assert = require('assert'); const fs = require('fs'); -if (!common.isLinux) { - common.skip('Test is linux specific.'); - return; -} - // Test to make sure reading a file under the /proc directory works. See: // https://groups.google.com/forum/#!topic/nodejs-dev/rxZ_RoH1Gn0 const hostname = fs.readFileSync('/proc/sys/kernel/hostname'); diff --git a/test/parallel/test-fs-readdir-ucs2.js b/test/parallel/test-fs-readdir-ucs2.js index 4d5f53abd8ead9..e8e69d6ee2fcc7 100644 --- a/test/parallel/test-fs-readdir-ucs2.js +++ b/test/parallel/test-fs-readdir-ucs2.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.isLinux) + common.skip('Test is linux specific.'); + const path = require('path'); const fs = require('fs'); const assert = require('assert'); -if (!common.isLinux) { - common.skip('Test is linux specific.'); - return; -} - common.refreshTmpDir(); const filename = '\uD83D\uDC04'; const root = Buffer.from(`${common.tmpDir}${path.sep}`); diff --git a/test/parallel/test-fs-readfile-error.js b/test/parallel/test-fs-readfile-error.js index 208b478c12abee..d9ad834afcdc29 100644 --- a/test/parallel/test-fs-readfile-error.js +++ b/test/parallel/test-fs-readfile-error.js @@ -21,16 +21,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const exec = require('child_process').exec; -const path = require('path'); - // `fs.readFile('/')` does not fail on FreeBSD, because you can open and read // the directory there. -if (common.isFreeBSD) { +if (common.isFreeBSD) common.skip('platform not supported.'); - return; -} + +const assert = require('assert'); +const exec = require('child_process').exec; +const path = require('path'); function test(env, cb) { const filename = path.join(common.fixturesDir, 'test-fs-readfile-error.js'); diff --git a/test/parallel/test-fs-readfile-pipe-large.js b/test/parallel/test-fs-readfile-pipe-large.js index f0d1dd9c408610..46603b14fa0a56 100644 --- a/test/parallel/test-fs-readfile-pipe-large.js +++ b/test/parallel/test-fs-readfile-pipe-large.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const path = require('path'); // simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} +const assert = require('assert'); +const path = require('path'); const fs = require('fs'); if (process.argv[2] === 'child') { diff --git a/test/parallel/test-fs-readfile-pipe.js b/test/parallel/test-fs-readfile-pipe.js index 10fc6a925af47a..e15c2c10476c66 100644 --- a/test/parallel/test-fs-readfile-pipe.js +++ b/test/parallel/test-fs-readfile-pipe.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); // simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} +const assert = require('assert'); const fs = require('fs'); const dataExpected = fs.readFileSync(__filename, 'utf8'); diff --git a/test/parallel/test-fs-readfilesync-pipe-large.js b/test/parallel/test-fs-readfilesync-pipe-large.js index 01e41047774c9b..daa53bf3de0cc3 100644 --- a/test/parallel/test-fs-readfilesync-pipe-large.js +++ b/test/parallel/test-fs-readfilesync-pipe-large.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const path = require('path'); // simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} +const assert = require('assert'); +const path = require('path'); const fs = require('fs'); if (process.argv[2] === 'child') { diff --git a/test/parallel/test-fs-realpath-on-substed-drive.js b/test/parallel/test-fs-realpath-on-substed-drive.js index f8d9e86de5e618..a3d38d9f279707 100644 --- a/test/parallel/test-fs-realpath-on-substed-drive.js +++ b/test/parallel/test-fs-realpath-on-substed-drive.js @@ -1,14 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('Test for Windows only'); + const assert = require('assert'); const fs = require('fs'); const spawnSync = require('child_process').spawnSync; -if (!common.isWindows) { - common.skip('Test for Windows only'); - return; -} let result; // create a subst drive @@ -21,10 +20,8 @@ for (i = 0; i < driveLetters.length; ++i) { if (result.status === 0) break; } -if (i === driveLetters.length) { +if (i === driveLetters.length) common.skip('Cannot create subst drive'); - return; -} // schedule cleanup (and check if all callbacks where called) process.on('exit', function() { diff --git a/test/parallel/test-fs-realpath-pipe.js b/test/parallel/test-fs-realpath-pipe.js index 89bdc08229a9c3..0f30b07f0a9bf1 100644 --- a/test/parallel/test-fs-realpath-pipe.js +++ b/test/parallel/test-fs-realpath-pipe.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} const assert = require('assert'); diff --git a/test/parallel/test-fs-realpath.js b/test/parallel/test-fs-realpath.js index 1c9f7a7d90e2c0..a9ec65168d0cce 100644 --- a/test/parallel/test-fs-realpath.js +++ b/test/parallel/test-fs-realpath.js @@ -103,7 +103,7 @@ function test_simple_error_callback(cb) { function test_simple_relative_symlink(callback) { console.log('test_simple_relative_symlink'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const entry = `${tmpDir}/symlink`; @@ -152,7 +152,7 @@ function test_simple_absolute_symlink(callback) { function test_deep_relative_file_symlink(callback) { console.log('test_deep_relative_file_symlink'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } @@ -182,7 +182,7 @@ function test_deep_relative_file_symlink(callback) { function test_deep_relative_dir_symlink(callback) { console.log('test_deep_relative_dir_symlink'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const expected = path.join(common.fixturesDir, 'cycles', 'folder'); @@ -210,7 +210,7 @@ function test_deep_relative_dir_symlink(callback) { function test_cyclic_link_protection(callback) { console.log('test_cyclic_link_protection'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const entry = path.join(tmpDir, '/cycles/realpath-3a'); @@ -237,7 +237,7 @@ function test_cyclic_link_protection(callback) { function test_cyclic_link_overprotection(callback) { console.log('test_cyclic_link_overprotection'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const cycles = `${tmpDir}/cycles`; @@ -258,7 +258,7 @@ function test_cyclic_link_overprotection(callback) { function test_relative_input_cwd(callback) { console.log('test_relative_input_cwd'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } @@ -297,7 +297,7 @@ function test_deep_symlink_mix(callback) { if (common.isWindows) { // This one is a mix of files and directories, and it's quite tricky // to get the file/dir links sorted out correctly. - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } @@ -384,7 +384,7 @@ assertEqualPath( function test_up_multiple(cb) { console.error('test_up_multiple'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } function cleanup() { diff --git a/test/parallel/test-fs-symlink.js b/test/parallel/test-fs-symlink.js index 2ceb4d10936a3f..9e19958b628749 100644 --- a/test/parallel/test-fs-symlink.js +++ b/test/parallel/test-fs-symlink.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (!common.canCreateSymLink()) + common.skip('insufficient privileges'); + const assert = require('assert'); const path = require('path'); const fs = require('fs'); @@ -28,11 +31,6 @@ const fs = require('fs'); let linkTime; let fileTime; -if (!common.canCreateSymLink()) { - common.skip('insufficient privileges'); - return; -} - common.refreshTmpDir(); // test creating and reading symbolic link diff --git a/test/parallel/test-fs-watch-encoding.js b/test/parallel/test-fs-watch-encoding.js index 04f5ffaad97a97..b9488f7a7f8421 100644 --- a/test/parallel/test-fs-watch-encoding.js +++ b/test/parallel/test-fs-watch-encoding.js @@ -11,17 +11,16 @@ // On SmartOS, the watch events fire but the filename is null. const common = require('../common'); -const fs = require('fs'); -const path = require('path'); // fs-watch on folders have limited capability in AIX. // The testcase makes use of folder watching, and causes // hang. This behavior is documented. Skip this for AIX. -if (common.isAix) { +if (common.isAix) common.skip('folder watch capability is limited in AIX.'); - return; -} + +const fs = require('fs'); +const path = require('path'); common.refreshTmpDir(); diff --git a/test/parallel/test-fs-watch-recursive.js b/test/parallel/test-fs-watch-recursive.js index 5fb13623dff543..8e27abb2517692 100644 --- a/test/parallel/test-fs-watch-recursive.js +++ b/test/parallel/test-fs-watch-recursive.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!(common.isOSX || common.isWindows)) { +if (!(common.isOSX || common.isWindows)) common.skip('recursive option is darwin/windows specific'); - return; -} const assert = require('assert'); const path = require('path'); diff --git a/test/parallel/test-http-chunk-problem.js b/test/parallel/test-http-chunk-problem.js index 822aab804f036d..46a7406e74595a 100644 --- a/test/parallel/test-http-chunk-problem.js +++ b/test/parallel/test-http-chunk-problem.js @@ -1,11 +1,10 @@ 'use strict'; // http://groups.google.com/group/nodejs/browse_thread/thread/f66cd3c960406919 const common = require('../common'); -const assert = require('assert'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); if (process.argv[2] === 'request') { const http = require('http'); diff --git a/test/parallel/test-http-default-port.js b/test/parallel/test-http-default-port.js index d53c69c1b0d607..beae62d3998e50 100644 --- a/test/parallel/test-http-default-port.js +++ b/test/parallel/test-http-default-port.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const http = require('http'); const https = require('https'); diff --git a/test/parallel/test-http-dns-error.js b/test/parallel/test-http-dns-error.js index 4a724b0b41a056..76634c5a830a72 100644 --- a/test/parallel/test-http-dns-error.js +++ b/test/parallel/test-http-dns-error.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const http = require('http'); @@ -57,7 +55,7 @@ function test(mod) { if (common.hasCrypto) { test(https); } else { - common.skip('missing crypto'); + common.printSkipMessage('missing crypto'); } test(http); diff --git a/test/parallel/test-http-full-response.js b/test/parallel/test-http-full-response.js index dc52a5bc2f1b6d..42213432090355 100644 --- a/test/parallel/test-http-full-response.js +++ b/test/parallel/test-http-full-response.js @@ -43,7 +43,7 @@ function runAb(opts, callback) { exec(command, function(err, stdout, stderr) { if (err) { if (/ab|apr/i.test(stderr)) { - common.skip(`problem spawning \`ab\`.\n${stderr}`); + common.printSkipMessage(`problem spawning \`ab\`.\n${stderr}`); process.reallyExit(0); } process.exit(); diff --git a/test/parallel/test-http-invalid-urls.js b/test/parallel/test-http-invalid-urls.js index 65cca822f9b2a5..039270fe430108 100644 --- a/test/parallel/test-http-invalid-urls.js +++ b/test/parallel/test-http-invalid-urls.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const http = require('http'); diff --git a/test/parallel/test-http-localaddress.js b/test/parallel/test-http-localaddress.js index 35f2c15f8d9138..0ed048688eefae 100644 --- a/test/parallel/test-http-localaddress.js +++ b/test/parallel/test-http-localaddress.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasMultiLocalhost()) + common.skip('platform-specific test.'); + const http = require('http'); const assert = require('assert'); -if (!common.hasMultiLocalhost()) { - common.skip('platform-specific test.'); - return; -} - const server = http.createServer(function(req, res) { console.log(`Connect from: ${req.connection.remoteAddress}`); assert.strictEqual('127.0.0.2', req.connection.remoteAddress); diff --git a/test/parallel/test-http-url.parse-https.request.js b/test/parallel/test-http-url.parse-https.request.js index 5c625cf4475fe0..b644e7530ff828 100644 --- a/test/parallel/test-http-url.parse-https.request.js +++ b/test/parallel/test-http-url.parse-https.request.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const url = require('url'); const fs = require('fs'); diff --git a/test/parallel/test-https-agent-constructor.js b/test/parallel/test-https-agent-constructor.js index fe77381c858c8e..29bb9eaa98067d 100644 --- a/test/parallel/test-https-agent-constructor.js +++ b/test/parallel/test-https-agent-constructor.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-create-connection.js b/test/parallel/test-https-agent-create-connection.js index a1f0c4ace4cab6..267030232dcf9b 100644 --- a/test/parallel/test-https-agent-create-connection.js +++ b/test/parallel/test-https-agent-create-connection.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-disable-session-reuse.js b/test/parallel/test-https-agent-disable-session-reuse.js index 0331cd4e283c17..4f92547e999ac2 100644 --- a/test/parallel/test-https-agent-disable-session-reuse.js +++ b/test/parallel/test-https-agent-disable-session-reuse.js @@ -1,18 +1,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} - -const TOTAL_REQS = 2; +const assert = require('assert'); const https = require('https'); - const fs = require('fs'); +const TOTAL_REQS = 2; + const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`), cert: fs.readFileSync(`${common.fixturesDir}/keys/agent1-cert.pem`) diff --git a/test/parallel/test-https-agent-getname.js b/test/parallel/test-https-agent-getname.js index 9b4f29602b79c6..0986f8472de871 100644 --- a/test/parallel/test-https-agent-getname.js +++ b/test/parallel/test-https-agent-getname.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-secure-protocol.js b/test/parallel/test-https-agent-secure-protocol.js index c11d9f8ca870e7..4839dd7c460d6a 100644 --- a/test/parallel/test-https-agent-secure-protocol.js +++ b/test/parallel/test-https-agent-secure-protocol.js @@ -1,12 +1,9 @@ 'use strict'; -const assert = require('assert'); const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-https-agent-servername.js b/test/parallel/test-https-agent-servername.js index 8562d021c997ad..625fa45c7c1d67 100644 --- a/test/parallel/test-https-agent-servername.js +++ b/test/parallel/test-https-agent-servername.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-https-agent-session-eviction.js b/test/parallel/test-https-agent-session-eviction.js index acead806ed066e..567ed809e646c3 100644 --- a/test/parallel/test-https-agent-session-eviction.js +++ b/test/parallel/test-https-agent-session-eviction.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-session-reuse.js b/test/parallel/test-https-agent-session-reuse.js index a9977d8ce9a915..f850144eaab169 100644 --- a/test/parallel/test-https-agent-session-reuse.js +++ b/test/parallel/test-https-agent-session-reuse.js @@ -2,10 +2,8 @@ const common = require('../common'); const assert = require('assert'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const https = require('https'); const crypto = require('crypto'); diff --git a/test/parallel/test-https-agent-sni.js b/test/parallel/test-https-agent-sni.js index fb7bee16ec004a..a06ce439fa43d9 100644 --- a/test/parallel/test-https-agent-sni.js +++ b/test/parallel/test-https-agent-sni.js @@ -1,13 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-https-agent-sockets-leak.js b/test/parallel/test-https-agent-sockets-leak.js index bc86b9c24128b3..2fc477c0b33c7b 100644 --- a/test/parallel/test-https-agent-sockets-leak.js +++ b/test/parallel/test-https-agent-sockets-leak.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const https = require('https'); diff --git a/test/parallel/test-https-agent.js b/test/parallel/test-https-agent.js index add9913358fe43..e2e71cd31a769c 100644 --- a/test/parallel/test-https-agent.js +++ b/test/parallel/test-https-agent.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-https-argument-of-creating.js b/test/parallel/test-https-argument-of-creating.js index 87d934316f887c..5a4150eb1cca6d 100644 --- a/test/parallel/test-https-argument-of-creating.js +++ b/test/parallel/test-https-argument-of-creating.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-byteswritten.js b/test/parallel/test-https-byteswritten.js index cad824c5fed5f7..8f4d761c02b7d4 100644 --- a/test/parallel/test-https-byteswritten.js +++ b/test/parallel/test-https-byteswritten.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/parallel/test-https-client-checkServerIdentity.js b/test/parallel/test-https-client-checkServerIdentity.js index a70af2c42946b6..9842fc1f357eb0 100644 --- a/test/parallel/test-https-client-checkServerIdentity.js +++ b/test/parallel/test-https-client-checkServerIdentity.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-client-get-url.js b/test/parallel/test-https-client-get-url.js index 05a3824637a3e1..f0e919ca648b05 100644 --- a/test/parallel/test-https-client-get-url.js +++ b/test/parallel/test-https-client-get-url.js @@ -21,19 +21,17 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + // disable strict server certificate validation by the client process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const assert = require('assert'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); - const fs = require('fs'); const url = require('url'); + const URL = url.URL; const options = { diff --git a/test/parallel/test-https-client-reject.js b/test/parallel/test-https-client-reject.js index 95c3ca1a3b8ac6..82a7851e4e11a6 100644 --- a/test/parallel/test-https-client-reject.js +++ b/test/parallel/test-https-client-reject.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-client-resume.js b/test/parallel/test-https-client-resume.js index 95e1da56d0c46a..d61d91964b0eec 100644 --- a/test/parallel/test-https-client-resume.js +++ b/test/parallel/test-https-client-resume.js @@ -24,14 +24,11 @@ // Cache session and close connection. Use session on second connection. // ASSERT resumption. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-https-close.js b/test/parallel/test-https-close.js index e32e25314746cb..6b22192e99a5b7 100644 --- a/test/parallel/test-https-close.js +++ b/test/parallel/test-https-close.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const fs = require('fs'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const fs = require('fs'); const https = require('https'); const options = { diff --git a/test/parallel/test-https-connect-address-family.js b/test/parallel/test-https-connect-address-family.js index e7f41ce861cb27..76a12ef5d5dc0e 100644 --- a/test/parallel/test-https-connect-address-family.js +++ b/test/parallel/test-https-connect-address-family.js @@ -1,14 +1,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('no IPv6 support'); - return; -} const assert = require('assert'); const https = require('https'); @@ -37,10 +33,9 @@ function runTest() { dns.lookup('localhost', {family: 6, all: true}, (err, addresses) => { if (err) { - if (err.code === 'ENOTFOUND') { + if (err.code === 'ENOTFOUND') common.skip('localhost does not resolve to ::1'); - return; - } + throw err; } diff --git a/test/parallel/test-https-connecting-to-http.js b/test/parallel/test-https-connecting-to-http.js index 168be7c2d984e8..195ad38ed44a31 100644 --- a/test/parallel/test-https-connecting-to-http.js +++ b/test/parallel/test-https-connecting-to-http.js @@ -23,14 +23,11 @@ // This tests the situation where you try to connect a https client // to an http server. You should get an error and exit. const common = require('../common'); -const http = require('http'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const http = require('http'); +const https = require('https'); const server = http.createServer(common.mustNotCall()); server.listen(0, common.mustCall(function() { diff --git a/test/parallel/test-https-drain.js b/test/parallel/test-https-drain.js index ed0a11ae832a43..f9316a261b9877 100644 --- a/test/parallel/test-https-drain.js +++ b/test/parallel/test-https-drain.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-eof-for-eom.js b/test/parallel/test-https-eof-for-eom.js index 3300dabb54aa7b..3c724fe6342dfc 100644 --- a/test/parallel/test-https-eof-for-eom.js +++ b/test/parallel/test-https-eof-for-eom.js @@ -29,15 +29,12 @@ // correctly. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const https = require('https'); const tls = require('tls'); - const fs = require('fs'); const options = { diff --git a/test/parallel/test-https-foafssl.js b/test/parallel/test-https-foafssl.js index 9900cf7a643c10..d8beefc22b252f 100644 --- a/test/parallel/test-https-foafssl.js +++ b/test/parallel/test-https-foafssl.js @@ -21,22 +21,16 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} const assert = require('assert'); const join = require('path').join; - const fs = require('fs'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/parallel/test-https-host-headers.js b/test/parallel/test-https-host-headers.js index adb8952871ca54..1181d300bf29b8 100644 --- a/test/parallel/test-https-host-headers.js +++ b/test/parallel/test-https-host-headers.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); + const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`), cert: fs.readFileSync(`${common.fixturesDir}/keys/agent1-cert.pem`) diff --git a/test/parallel/test-https-localaddress-bind-error.js b/test/parallel/test-https-localaddress-bind-error.js index 0b046cfa85c52b..a22db1e9e61594 100644 --- a/test/parallel/test-https-localaddress-bind-error.js +++ b/test/parallel/test-https-localaddress-bind-error.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/parallel/test-https-localaddress.js b/test/parallel/test-https-localaddress.js index bcd1d6fdbd71e6..1c5669be30c1fa 100644 --- a/test/parallel/test-https-localaddress.js +++ b/test/parallel/test-https-localaddress.js @@ -21,19 +21,15 @@ 'use strict'; const common = require('../common'); -const fs = require('fs'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); -if (!common.hasMultiLocalhost()) { +if (!common.hasMultiLocalhost()) common.skip('platform-specific test.'); - return; -} + +const fs = require('fs'); +const assert = require('assert'); +const https = require('https'); const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`), diff --git a/test/parallel/test-https-pfx.js b/test/parallel/test-https-pfx.js index 9d7a1d888cef10..d7561f74246286 100644 --- a/test/parallel/test-https-pfx.js +++ b/test/parallel/test-https-pfx.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const pfx = fs.readFileSync(`${common.fixturesDir}/test_cert.pfx`); diff --git a/test/parallel/test-https-req-split.js b/test/parallel/test-https-req-split.js index 0abd74be61720e..d0306cb714fb71 100644 --- a/test/parallel/test-https-req-split.js +++ b/test/parallel/test-https-req-split.js @@ -21,13 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + // disable strict server certificate validation by the client process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const tls = require('tls'); diff --git a/test/parallel/test-https-resume-after-renew.js b/test/parallel/test-https-resume-after-renew.js index c9e208ab97141f..eb319230371342 100644 --- a/test/parallel/test-https-resume-after-renew.js +++ b/test/parallel/test-https-resume-after-renew.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const https = require('https'); diff --git a/test/parallel/test-https-server-keep-alive-timeout.js b/test/parallel/test-https-server-keep-alive-timeout.js index d1e9ed67889ac6..01d0fa6078b021 100644 --- a/test/parallel/test-https-server-keep-alive-timeout.js +++ b/test/parallel/test-https-server-keep-alive-timeout.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const https = require('https'); const tls = require('tls'); diff --git a/test/parallel/test-https-simple.js b/test/parallel/test-https-simple.js index 3ad2806f6afa59..b79d1b943f355b 100644 --- a/test/parallel/test-https-simple.js +++ b/test/parallel/test-https-simple.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-socket-options.js b/test/parallel/test-https-socket-options.js index 3718d3809cc9b9..75c5f51bb0c80a 100644 --- a/test/parallel/test-https-socket-options.js +++ b/test/parallel/test-https-socket-options.js @@ -22,14 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const https = require('https'); const fs = require('fs'); - const http = require('http'); const options = { diff --git a/test/parallel/test-https-strict.js b/test/parallel/test-https-strict.js index f28164a322a88a..060151332d2768 100644 --- a/test/parallel/test-https-strict.js +++ b/test/parallel/test-https-strict.js @@ -21,17 +21,14 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + // disable strict server certificate validation by the client process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const assert = require('assert'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); - const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-timeout-server-2.js b/test/parallel/test-https-timeout-server-2.js index 08144f108b2a99..269c06569f6ba7 100644 --- a/test/parallel/test-https-timeout-server-2.js +++ b/test/parallel/test-https-timeout-server-2.js @@ -22,14 +22,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-https-timeout-server.js b/test/parallel/test-https-timeout-server.js index 7d33e552115c2a..17218ba8055f99 100644 --- a/test/parallel/test-https-timeout-server.js +++ b/test/parallel/test-https-timeout-server.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-timeout.js b/test/parallel/test-https-timeout.js index e75a8566e429df..ad1fcb3ed232e4 100644 --- a/test/parallel/test-https-timeout.js +++ b/test/parallel/test-https-timeout.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-https-truncate.js b/test/parallel/test-https-truncate.js index d15efc9abce3a3..dcefcca104ef36 100644 --- a/test/parallel/test-https-truncate.js +++ b/test/parallel/test-https-truncate.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-unix-socket-self-signed.js b/test/parallel/test-https-unix-socket-self-signed.js index f503b84591cad7..df6773f8390675 100644 --- a/test/parallel/test-https-unix-socket-self-signed.js +++ b/test/parallel/test-https-unix-socket-self-signed.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} common.refreshTmpDir(); diff --git a/test/parallel/test-icu-data-dir.js b/test/parallel/test-icu-data-dir.js index 5619d934020ace..eb9b07e3a49275 100644 --- a/test/parallel/test-icu-data-dir.js +++ b/test/parallel/test-icu-data-dir.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!(common.hasIntl && common.hasSmallICU)) { +if (!(common.hasIntl && common.hasSmallICU)) common.skip('missing Intl'); - return; -} + const assert = require('assert'); const { spawnSync } = require('child_process'); diff --git a/test/parallel/test-icu-punycode.js b/test/parallel/test-icu-punycode.js index 9488568267a140..7abcae461774c0 100644 --- a/test/parallel/test-icu-punycode.js +++ b/test/parallel/test-icu-punycode.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const icu = process.binding('icu'); const assert = require('assert'); diff --git a/test/parallel/test-icu-stringwidth.js b/test/parallel/test-icu-stringwidth.js index 7c8c2e948e0eba..3c8021049c3413 100644 --- a/test/parallel/test-icu-stringwidth.js +++ b/test/parallel/test-icu-stringwidth.js @@ -2,10 +2,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const assert = require('assert'); const readline = require('internal/readline'); diff --git a/test/parallel/test-icu-transcode.js b/test/parallel/test-icu-transcode.js index 1c77427b1545bc..d7794c30b7ac25 100644 --- a/test/parallel/test-icu-transcode.js +++ b/test/parallel/test-icu-transcode.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const buffer = require('buffer'); const assert = require('assert'); diff --git a/test/parallel/test-inspector-open.js b/test/parallel/test-inspector-open.js index bc7d15a554aa06..346393d6fac646 100644 --- a/test/parallel/test-inspector-open.js +++ b/test/parallel/test-inspector-open.js @@ -1,5 +1,6 @@ 'use strict'; const common = require('../common'); +common.skipIfInspectorDisabled(); // Test inspector open()/close()/url() API. It uses ephemeral ports so can be // run safely in parallel. @@ -9,8 +10,6 @@ const fork = require('child_process').fork; const net = require('net'); const url = require('url'); -common.skipIfInspectorDisabled(); - if (process.env.BE_CHILD) return beChild(); diff --git a/test/parallel/test-intl-v8BreakIterator.js b/test/parallel/test-intl-v8BreakIterator.js index 70f0f782bbc7e7..6e9c9dbe3a1bcb 100644 --- a/test/parallel/test-intl-v8BreakIterator.js +++ b/test/parallel/test-intl-v8BreakIterator.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl || Intl.v8BreakIterator === undefined) { - return common.skip('missing Intl'); -} +if (!common.hasIntl || Intl.v8BreakIterator === undefined) + common.skip('missing Intl'); const assert = require('assert'); const warning = 'Intl.v8BreakIterator is deprecated and will be removed soon.'; diff --git a/test/parallel/test-intl.js b/test/parallel/test-intl.js index 1e061d8f51dea5..ff9569774d0db4 100644 --- a/test/parallel/test-intl.js +++ b/test/parallel/test-intl.js @@ -52,7 +52,6 @@ if (!common.hasIntl) { `"Intl" object is NOT present but v8_enable_i18n_support is ${enablei18n}`; assert.strictEqual(enablei18n, 0, erMsg); common.skip('Intl tests because Intl object not present.'); - } else { const erMsg = `"Intl" object is present but v8_enable_i18n_support is ${ @@ -72,7 +71,7 @@ if (!common.hasIntl) { // If list is specified and doesn't contain 'en' then return. if (process.config.variables.icu_locales && !haveLocale('en')) { - common.skip( + common.printSkipMessage( 'detailed Intl tests because English is not listed as supported.'); // Smoke test. Does it format anything, or fail? console.log(`Date(0) formatted to: ${dtf.format(date0)}`); diff --git a/test/parallel/test-listen-fd-cluster.js b/test/parallel/test-listen-fd-cluster.js index 688083f2a893cc..4f74a5b22d6eb8 100644 --- a/test/parallel/test-listen-fd-cluster.js +++ b/test/parallel/test-listen-fd-cluster.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); @@ -28,11 +31,6 @@ const cluster = require('cluster'); console.error('Cluster listen fd test', process.argv[2] || 'runner'); -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - // Process relationship is: // // parent: the test main script diff --git a/test/parallel/test-listen-fd-detached-inherit.js b/test/parallel/test-listen-fd-detached-inherit.js index f3f33055ac7d7a..aad8d663c915c8 100644 --- a/test/parallel/test-listen-fd-detached-inherit.js +++ b/test/parallel/test-listen-fd-detached-inherit.js @@ -21,16 +21,14 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); const spawn = require('child_process').spawn; -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - switch (process.argv[2]) { case 'child': return child(); case 'parent': return parent(); diff --git a/test/parallel/test-listen-fd-detached.js b/test/parallel/test-listen-fd-detached.js index 8a40cce56bced8..cc9cb6471e408b 100644 --- a/test/parallel/test-listen-fd-detached.js +++ b/test/parallel/test-listen-fd-detached.js @@ -21,16 +21,14 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); const spawn = require('child_process').spawn; -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - switch (process.argv[2]) { case 'child': return child(); case 'parent': return parent(); diff --git a/test/parallel/test-listen-fd-server.js b/test/parallel/test-listen-fd-server.js index 3d238a8019a0d9..b21b5ee55d2e31 100644 --- a/test/parallel/test-listen-fd-server.js +++ b/test/parallel/test-listen-fd-server.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - switch (process.argv[2]) { case 'child': return child(); } diff --git a/test/parallel/test-module-circular-symlinks.js b/test/parallel/test-module-circular-symlinks.js index a04022c6564bbd..b5e04a9c622da8 100644 --- a/test/parallel/test-module-circular-symlinks.js +++ b/test/parallel/test-module-circular-symlinks.js @@ -50,7 +50,6 @@ try { } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('insufficient privileges for symlinks'); - return; } fs.writeFileSync(path.join(tmpDir, 'index.js'), diff --git a/test/parallel/test-module-symlinked-peer-modules.js b/test/parallel/test-module-symlinked-peer-modules.js index 83aca75ed197a8..5fe3169ee87382 100644 --- a/test/parallel/test-module-symlinked-peer-modules.js +++ b/test/parallel/test-module-symlinked-peer-modules.js @@ -46,7 +46,6 @@ try { } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('insufficient privileges for symlinks'); - return; } fs.writeFileSync(path.join(moduleA, 'package.json'), diff --git a/test/parallel/test-net-access-byteswritten.js b/test/parallel/test-net-access-byteswritten.js index 5b734e7c6dc853..c928ab27c6d146 100644 --- a/test/parallel/test-net-access-byteswritten.js +++ b/test/parallel/test-net-access-byteswritten.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-net-connect-options-fd.js b/test/parallel/test-net-connect-options-fd.js index 9e3859f84314b8..68e63f0ba4cbc9 100644 --- a/test/parallel/test-net-connect-options-fd.js +++ b/test/parallel/test-net-connect-options-fd.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Does not support wrapping sockets with fd on Windows'); + const assert = require('assert'); const net = require('net'); const path = require('path'); const Pipe = process.binding('pipe_wrap').Pipe; -if (common.isWindows) { - common.skip('Does not support wrapping sockets with fd on Windows'); - return; -} - common.refreshTmpDir(); function testClients(getSocketOpt, getConnectOpt, getConnectCb) { diff --git a/test/parallel/test-net-connect-options-ipv6.js b/test/parallel/test-net-connect-options-ipv6.js index 6ac6c29e10fd08..29b07645c452d3 100644 --- a/test/parallel/test-net-connect-options-ipv6.js +++ b/test/parallel/test-net-connect-options-ipv6.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('no IPv6 support'); + const assert = require('assert'); const net = require('net'); -if (!common.hasIPv6) { - common.skip('no IPv6 support'); - return; -} - const hosts = common.localIPv6Hosts; let hostIdx = 0; let host = hosts[hostIdx]; @@ -81,8 +79,8 @@ function tryConnect() { if (host) tryConnect(); else { - common.skip('no IPv6 localhost support'); server.close(); + common.skip('no IPv6 localhost support'); } return; } diff --git a/test/parallel/test-net-socket-local-address.js b/test/parallel/test-net-socket-local-address.js index 19749bde9552b6..c4f11db76bc4f2 100644 --- a/test/parallel/test-net-socket-local-address.js +++ b/test/parallel/test-net-socket-local-address.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - // skip test in FreeBSD jails -if (common.inFreeBSDJail) { +if (common.inFreeBSDJail) common.skip('In a FreeBSD jail'); - return; -} + +const assert = require('assert'); +const net = require('net'); let conns = 0; const clientLocalPorts = []; diff --git a/test/parallel/test-npm-install.js b/test/parallel/test-npm-install.js index 75e2c92d5a7937..1faa698b15fc22 100644 --- a/test/parallel/test-npm-install.js +++ b/test/parallel/test-npm-install.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const path = require('path'); const spawn = require('child_process').spawn; diff --git a/test/parallel/test-openssl-ca-options.js b/test/parallel/test-openssl-ca-options.js index 144a7dfe3d00e8..f8f777e2682584 100644 --- a/test/parallel/test-openssl-ca-options.js +++ b/test/parallel/test-openssl-ca-options.js @@ -2,10 +2,9 @@ // This test checks the usage of --use-bundled-ca and --use-openssl-ca arguments // to verify that both are not used at the same time. const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const os = require('os'); const childProcess = require('child_process'); diff --git a/test/parallel/test-pipe-writev.js b/test/parallel/test-pipe-writev.js index 6440b5f623761d..db95a4b181849f 100644 --- a/test/parallel/test-pipe-writev.js +++ b/test/parallel/test-pipe-writev.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Unix-specific test'); + const assert = require('assert'); const net = require('net'); -if (common.isWindows) { - common.skip('Unix-specific test'); - return; -} - common.refreshTmpDir(); const server = net.createServer((connection) => { diff --git a/test/parallel/test-preload.js b/test/parallel/test-preload.js index 9d24fbb3652fa6..a5f8a0c2765046 100644 --- a/test/parallel/test-preload.js +++ b/test/parallel/test-preload.js @@ -1,16 +1,14 @@ 'use strict'; const common = require('../common'); +// Refs: https://github.com/nodejs/node/pull/2253 +if (common.isSunOS) + common.skip('unreliable on SunOS'); + const assert = require('assert'); const path = require('path'); const childProcess = require('child_process'); -// Refs: https://github.com/nodejs/node/pull/2253 -if (common.isSunOS) { - common.skip('unreliable on SunOS'); - return; -} - const nodeBinary = process.argv[0]; const preloadOption = (preloads) => { diff --git a/test/parallel/test-process-execpath.js b/test/parallel/test-process-execpath.js index 5ac8a3f2238a7c..d70d1dfd389875 100644 --- a/test/parallel/test-process-execpath.js +++ b/test/parallel/test-process-execpath.js @@ -1,5 +1,8 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('symlinks are weird on windows'); + const assert = require('assert'); const child_process = require('child_process'); const path = require('path'); @@ -7,11 +10,6 @@ const fs = require('fs'); assert.strictEqual(process.execPath, fs.realpathSync(process.execPath)); -if (common.isWindows) { - common.skip('symlinks are weird on windows'); - return; -} - if (process.argv[2] === 'child') { // The console.log() output is part of the test here. console.log(process.execPath); diff --git a/test/parallel/test-process-getgroups.js b/test/parallel/test-process-getgroups.js index 952e0d95ef9d95..3479cf7028b28b 100644 --- a/test/parallel/test-process-getgroups.js +++ b/test/parallel/test-process-getgroups.js @@ -24,10 +24,9 @@ const common = require('../common'); // Check `id -G` and `process.getgroups()` return same groups. -if (common.isOSX) { +if (common.isOSX) common.skip('Output of `id -G` is unreliable on Darwin.'); - return; -} + const assert = require('assert'); const exec = require('child_process').exec; diff --git a/test/parallel/test-process-remove-all-signal-listeners.js b/test/parallel/test-process-remove-all-signal-listeners.js index 85db45ff88c7c8..759820c2dc56d4 100644 --- a/test/parallel/test-process-remove-all-signal-listeners.js +++ b/test/parallel/test-process-remove-all-signal-listeners.js @@ -1,15 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Win32 does not support signals.'); + const assert = require('assert'); const spawn = require('child_process').spawn; -if (common.isWindows) { - common.skip('Win32 doesn\'t have signals, just a kind of ' + - 'emulation, insufficient for this test to apply.'); - return; -} - if (process.argv[2] !== '--do-test') { // We are the master, fork a child so we can verify it exits with correct // status. diff --git a/test/parallel/test-regress-GH-1531.js b/test/parallel/test-regress-GH-1531.js index 3cf342b869d418..7d1f4a0dbec4c1 100644 --- a/test/parallel/test-regress-GH-1531.js +++ b/test/parallel/test-regress-GH-1531.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-regress-GH-3542.js b/test/parallel/test-regress-GH-3542.js index cc0285f7475697..b652c95c9ac881 100644 --- a/test/parallel/test-regress-GH-3542.js +++ b/test/parallel/test-regress-GH-3542.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// This test is only relevant on Windows. +if (!common.isWindows) + common.skip('Windows specific test.'); + const assert = require('assert'); const fs = require('fs'); const path = require('path'); -// This test is only relevant on Windows. -if (!common.isWindows) { - common.skip('Windows specific test.'); - return; -} - function test(p) { const result = fs.realpathSync(p); assert.strictEqual(result.toLowerCase(), path.resolve(p).toLowerCase()); diff --git a/test/parallel/test-regress-GH-9819.js b/test/parallel/test-regress-GH-9819.js index fb9bb489a081cf..7eed1c512f7942 100644 --- a/test/parallel/test-regress-GH-9819.js +++ b/test/parallel/test-regress-GH-9819.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const execFile = require('child_process').execFile; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const setup = 'const enc = { toString: () => { throw new Error("xyz"); } };'; const scripts = [ diff --git a/test/parallel/test-repl-history-perm.js b/test/parallel/test-repl-history-perm.js index ebca7c9725652f..3b58986dc08efc 100644 --- a/test/parallel/test-repl-history-perm.js +++ b/test/parallel/test-repl-history-perm.js @@ -7,7 +7,6 @@ if (common.isWindows) { common.skip('Win32 uses ACLs for file permissions, ' + 'modes are always 0666 and says nothing about group/other ' + 'read access.'); - return; } const assert = require('assert'); diff --git a/test/parallel/test-repl-sigint-nested-eval.js b/test/parallel/test-repl-sigint-nested-eval.js index 030c86be8e8dd4..7f15b7dfeb8b9d 100644 --- a/test/parallel/test-repl-sigint-nested-eval.js +++ b/test/parallel/test-repl-sigint-nested-eval.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -const spawn = require('child_process').spawn; - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const spawn = require('child_process').spawn; + process.env.REPL_TEST_PPID = process.pid; const child = spawn(process.execPath, [ '-i' ], { stdio: [null, null, 2] diff --git a/test/parallel/test-repl-sigint.js b/test/parallel/test-repl-sigint.js index 61bc75cc6ffe67..818111c39bf578 100644 --- a/test/parallel/test-repl-sigint.js +++ b/test/parallel/test-repl-sigint.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -const spawn = require('child_process').spawn; - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const spawn = require('child_process').spawn; + process.env.REPL_TEST_PPID = process.pid; const child = spawn(process.execPath, [ '-i' ], { stdio: [null, null, 2] diff --git a/test/parallel/test-require-long-path.js b/test/parallel/test-require-long-path.js index 1a8ce1b7dfd2c3..aaaf07d48ae897 100644 --- a/test/parallel/test-require-long-path.js +++ b/test/parallel/test-require-long-path.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('this test is Windows-specific.'); + const fs = require('fs'); const path = require('path'); -if (!common.isWindows) { - common.skip('this test is Windows-specific.'); - return; -} - // make a path that is more than 260 chars long. const dirNameLen = Math.max(260 - common.tmpDir.length, 1); const dirName = path.join(common.tmpDir, 'x'.repeat(dirNameLen)); diff --git a/test/parallel/test-require-symlink.js b/test/parallel/test-require-symlink.js index 964f856829ac35..d5dc03e49dfc37 100644 --- a/test/parallel/test-require-symlink.js +++ b/test/parallel/test-require-symlink.js @@ -27,10 +27,8 @@ if (common.isWindows) { // On Windows, creating symlinks requires admin privileges. // We'll only try to run symlink test if we have enough privileges. exec('whoami /priv', function(err, o) { - if (err || !o.includes('SeCreateSymbolicLinkPrivilege')) { + if (err || !o.includes('SeCreateSymbolicLinkPrivilege')) common.skip('insufficient privileges'); - return; - } test(); }); diff --git a/test/parallel/test-setproctitle.js b/test/parallel/test-setproctitle.js index 672b6f037d8a61..f4e25a6e8ce71b 100644 --- a/test/parallel/test-setproctitle.js +++ b/test/parallel/test-setproctitle.js @@ -3,9 +3,8 @@ const common = require('../common'); // FIXME add sunos support -if (common.isSunOS) { - return common.skip(`Unsupported platform [${process.platform}]`); -} +if (common.isSunOS) + common.skip(`Unsupported platform [${process.platform}]`); const assert = require('assert'); const exec = require('child_process').exec; @@ -21,9 +20,8 @@ process.title = title; assert.strictEqual(process.title, title); // Test setting the title but do not try to run `ps` on Windows. -if (common.isWindows) { - return common.skip('Windows does not have "ps" utility'); -} +if (common.isWindows) + common.skip('Windows does not have "ps" utility'); // To pass this test on alpine, since Busybox `ps` does not // support `-p` switch, use `ps -o` and `grep` instead. diff --git a/test/parallel/test-signal-handler.js b/test/parallel/test-signal-handler.js index db34a036e45660..a5c900695a54cb 100644 --- a/test/parallel/test-signal-handler.js +++ b/test/parallel/test-signal-handler.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (common.isWindows) { +if (common.isWindows) common.skip('SIGUSR1 and SIGHUP signals are not supported'); - return; -} console.log(`process.pid: ${process.pid}`); diff --git a/test/parallel/test-spawn-cmd-named-pipe.js b/test/parallel/test-spawn-cmd-named-pipe.js index 94a34b640d1e3c..30d0ec2c263fcb 100644 --- a/test/parallel/test-spawn-cmd-named-pipe.js +++ b/test/parallel/test-spawn-cmd-named-pipe.js @@ -1,12 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - // This test is intended for Windows only -if (!common.isWindows) { +if (!common.isWindows) common.skip('this test is Windows-specific.'); - return; -} + +const assert = require('assert'); if (!process.argv[2]) { // parent diff --git a/test/parallel/test-tls-0-dns-altname.js b/test/parallel/test-tls-0-dns-altname.js index 7ac40eeda162b6..0b1c7f6496ce39 100644 --- a/test/parallel/test-tls-0-dns-altname.js +++ b/test/parallel/test-tls-0-dns-altname.js @@ -21,16 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); +if (!common.hasCrypto) + common.skip('missing crypto'); // Check getPeerCertificate can properly handle '\0' for fix CVE-2009-2408. -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-alert-handling.js b/test/parallel/test-tls-alert-handling.js index d089ad223b1fd8..0b3447243db7f3 100644 --- a/test/parallel/test-tls-alert-handling.js +++ b/test/parallel/test-tls-alert-handling.js @@ -1,15 +1,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-alert.js b/test/parallel/test-tls-alert.js index ef79856108ea3f..8aa56eaf755ab6 100644 --- a/test/parallel/test-tls-alert.js +++ b/test/parallel/test-tls-alert.js @@ -21,16 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const assert = require('assert'); const { spawn } = require('child_process'); diff --git a/test/parallel/test-tls-alpn-server-client.js b/test/parallel/test-tls-alpn-server-client.js index 3d3453d32fdb82..56f925b8a97945 100644 --- a/test/parallel/test-tls-alpn-server-client.js +++ b/test/parallel/test-tls-alpn-server-client.js @@ -1,15 +1,12 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} if (!process.features.tls_alpn || !process.features.tls_npn) { common.skip( 'Skipping because node compiled without NPN or ALPN feature of OpenSSL.'); - return; } const assert = require('assert'); diff --git a/test/parallel/test-tls-async-cb-after-socket-end.js b/test/parallel/test-tls-async-cb-after-socket-end.js index be499b84503472..6b4d2bd9f58c9c 100644 --- a/test/parallel/test-tls-async-cb-after-socket-end.js +++ b/test/parallel/test-tls-async-cb-after-socket-end.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const path = require('path'); const fs = require('fs'); diff --git a/test/parallel/test-tls-basic-validations.js b/test/parallel/test-tls-basic-validations.js index a6775c06033a2c..1d494b4ed3b76f 100644 --- a/test/parallel/test-tls-basic-validations.js +++ b/test/parallel/test-tls-basic-validations.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-cert-regression.js b/test/parallel/test-tls-cert-regression.js index 0a128275c3874d..ab967bb2c6e11c 100644 --- a/test/parallel/test-tls-cert-regression.js +++ b/test/parallel/test-tls-cert-regression.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); diff --git a/test/parallel/test-tls-check-server-identity.js b/test/parallel/test-tls-check-server-identity.js index e608df5a5a1ae1..1623e70a2af2ec 100644 --- a/test/parallel/test-tls-check-server-identity.js +++ b/test/parallel/test-tls-check-server-identity.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const util = require('util'); diff --git a/test/parallel/test-tls-cipher-list.js b/test/parallel/test-tls-cipher-list.js index 912fb6412859bf..4a39ee9391a7c1 100644 --- a/test/parallel/test-tls-cipher-list.js +++ b/test/parallel/test-tls-cipher-list.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const spawn = require('child_process').spawn; diff --git a/test/parallel/test-tls-client-abort.js b/test/parallel/test-tls-client-abort.js index 15928a04f67876..14f96104e16aef 100644 --- a/test/parallel/test-tls-client-abort.js +++ b/test/parallel/test-tls-client-abort.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-client-abort2.js b/test/parallel/test-tls-client-abort2.js index a652edfa8fe389..59b592d2556699 100644 --- a/test/parallel/test-tls-client-abort2.js +++ b/test/parallel/test-tls-client-abort2.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const conn = tls.connect(0, common.mustNotCall()); diff --git a/test/parallel/test-tls-client-default-ciphers.js b/test/parallel/test-tls-client-default-ciphers.js index 9eefe21e95732e..0630fe947e7f50 100644 --- a/test/parallel/test-tls-client-default-ciphers.js +++ b/test/parallel/test-tls-client-default-ciphers.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); function Done() {} diff --git a/test/parallel/test-tls-client-destroy-soon.js b/test/parallel/test-tls-client-destroy-soon.js index 8d1f3e90234d43..a94e8fbdb98afd 100644 --- a/test/parallel/test-tls-client-destroy-soon.js +++ b/test/parallel/test-tls-client-destroy-soon.js @@ -25,14 +25,11 @@ // ASSERT resumption. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-client-getephemeralkeyinfo.js b/test/parallel/test-tls-client-getephemeralkeyinfo.js index f3da64ed376607..53e0144ac73d97 100644 --- a/test/parallel/test-tls-client-getephemeralkeyinfo.js +++ b/test/parallel/test-tls-client-getephemeralkeyinfo.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(); -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); + const key = fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`); const cert = fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`); diff --git a/test/parallel/test-tls-client-mindhsize.js b/test/parallel/test-tls-client-mindhsize.js index 10fe196b539647..230c6e08458cb1 100644 --- a/test/parallel/test-tls-client-mindhsize.js +++ b/test/parallel/test-tls-client-mindhsize.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(); -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); + const key = fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`); const cert = fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`); diff --git a/test/parallel/test-tls-client-reject.js b/test/parallel/test-tls-client-reject.js index 43cf337e672627..a11e0fe28028ca 100644 --- a/test/parallel/test-tls-client-reject.js +++ b/test/parallel/test-tls-client-reject.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-client-resume.js b/test/parallel/test-tls-client-resume.js index aa23f3331b596c..fccdf6d930c09c 100644 --- a/test/parallel/test-tls-client-resume.js +++ b/test/parallel/test-tls-client-resume.js @@ -25,14 +25,11 @@ // ASSERT resumption. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-client-verify.js b/test/parallel/test-tls-client-verify.js index d713be3b0cf17d..217185166584a4 100644 --- a/test/parallel/test-tls-client-verify.js +++ b/test/parallel/test-tls-client-verify.js @@ -21,11 +21,8 @@ 'use strict'; const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-close-error.js b/test/parallel/test-tls-close-error.js index 978f7659508999..9973adde122024 100644 --- a/test/parallel/test-tls-close-error.js +++ b/test/parallel/test-tls-close-error.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-close-notify.js b/test/parallel/test-tls-close-notify.js index 625909c9c5edab..500aec26c8d200 100644 --- a/test/parallel/test-tls-close-notify.js +++ b/test/parallel/test-tls-close-notify.js @@ -22,12 +22,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const tls = require('tls'); const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-cnnic-whitelist.js b/test/parallel/test-tls-cnnic-whitelist.js index 084531748656e2..84b71c7e64b1be 100644 --- a/test/parallel/test-tls-cnnic-whitelist.js +++ b/test/parallel/test-tls-cnnic-whitelist.js @@ -2,10 +2,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect-address-family.js b/test/parallel/test-tls-connect-address-family.js index f22831f395a8dd..afacd5a39027a0 100644 --- a/test/parallel/test-tls-connect-address-family.js +++ b/test/parallel/test-tls-connect-address-family.js @@ -1,14 +1,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('no IPv6 support'); - return; -} const assert = require('assert'); const tls = require('tls'); @@ -36,10 +32,9 @@ function runTest() { dns.lookup('localhost', {family: 6, all: true}, (err, addresses) => { if (err) { - if (err.code === 'ENOTFOUND') { + if (err.code === 'ENOTFOUND') common.skip('localhost does not resolve to ::1'); - return; - } + throw err; } diff --git a/test/parallel/test-tls-connect-given-socket.js b/test/parallel/test-tls-connect-given-socket.js index 08553916194116..d922d7d4d53223 100644 --- a/test/parallel/test-tls-connect-given-socket.js +++ b/test/parallel/test-tls-connect-given-socket.js @@ -21,17 +21,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const net = require('net'); const fs = require('fs'); const path = require('path'); + const options = { key: fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')), cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem')) diff --git a/test/parallel/test-tls-connect-no-host.js b/test/parallel/test-tls-connect-no-host.js index 2e4bcfbc6d4787..f63c821a7f6a35 100644 --- a/test/parallel/test-tls-connect-no-host.js +++ b/test/parallel/test-tls-connect-no-host.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const assert = require('assert'); diff --git a/test/parallel/test-tls-connect-pipe.js b/test/parallel/test-tls-connect-pipe.js index 836471a0c50fb4..8a3abe3312ec2d 100644 --- a/test/parallel/test-tls-connect-pipe.js +++ b/test/parallel/test-tls-connect-pipe.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect-simple.js b/test/parallel/test-tls-connect-simple.js index 7e0d1b462bff7d..d6211d05c8cab1 100644 --- a/test/parallel/test-tls-connect-simple.js +++ b/test/parallel/test-tls-connect-simple.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect-stream-writes.js b/test/parallel/test-tls-connect-stream-writes.js index 637e54f535dada..4a8b53b4de185b 100644 --- a/test/parallel/test-tls-connect-stream-writes.js +++ b/test/parallel/test-tls-connect-stream-writes.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect.js b/test/parallel/test-tls-connect.js index 1908dba6574124..5e73196bc1f8a2 100644 --- a/test/parallel/test-tls-connect.js +++ b/test/parallel/test-tls-connect.js @@ -22,12 +22,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-delayed-attach-error.js b/test/parallel/test-tls-delayed-attach-error.js index 35da6d0e42efed..9d37f15efe4846 100644 --- a/test/parallel/test-tls-delayed-attach-error.js +++ b/test/parallel/test-tls-delayed-attach-error.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-delayed-attach.js b/test/parallel/test-tls-delayed-attach.js index fa8baa81f85fa0..9ab611566583b4 100644 --- a/test/parallel/test-tls-delayed-attach.js +++ b/test/parallel/test-tls-delayed-attach.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-destroy-whilst-write.js b/test/parallel/test-tls-destroy-whilst-write.js index b4f9766d998630..d157c7bf3f82b5 100644 --- a/test/parallel/test-tls-destroy-whilst-write.js +++ b/test/parallel/test-tls-destroy-whilst-write.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const stream = require('stream'); diff --git a/test/parallel/test-tls-dhe.js b/test/parallel/test-tls-dhe.js index 2f86e82be7fc96..fe17206fdcdc14 100644 --- a/test/parallel/test-tls-dhe.js +++ b/test/parallel/test-tls-dhe.js @@ -22,22 +22,17 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const spawn = require('child_process').spawn; const fs = require('fs'); + const key = fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`); const cert = fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`); let nsuccess = 0; diff --git a/test/parallel/test-tls-ecdh-disable.js b/test/parallel/test-tls-ecdh-disable.js index 732ebe4d1bdafc..65ee8fd69198c7 100644 --- a/test/parallel/test-tls-ecdh-disable.js +++ b/test/parallel/test-tls-ecdh-disable.js @@ -21,20 +21,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const exec = require('child_process').exec; const fs = require('fs'); diff --git a/test/parallel/test-tls-ecdh.js b/test/parallel/test-tls-ecdh.js index 32e77456bdc045..856c1a96fb8048 100644 --- a/test/parallel/test-tls-ecdh.js +++ b/test/parallel/test-tls-ecdh.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-econnreset.js b/test/parallel/test-tls-econnreset.js index 798c10ca4c141c..8a6536890e8636 100644 --- a/test/parallel/test-tls-econnreset.js +++ b/test/parallel/test-tls-econnreset.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const cacert = diff --git a/test/parallel/test-tls-empty-sni-context.js b/test/parallel/test-tls-empty-sni-context.js index 4974e6323e8726..9a8e3449f0cbea 100644 --- a/test/parallel/test-tls-empty-sni-context.js +++ b/test/parallel/test-tls-empty-sni-context.js @@ -1,18 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); -if (!process.features.tls_sni) { +if (!process.features.tls_sni) common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} const assert = require('assert'); - -if (!common.hasCrypto) { - return common.skip('missing crypto'); -} - const tls = require('tls'); const options = { diff --git a/test/parallel/test-tls-env-bad-extra-ca.js b/test/parallel/test-tls-env-bad-extra-ca.js index 57e4c1cfaf3af6..ece93f33539d71 100644 --- a/test/parallel/test-tls-env-bad-extra-ca.js +++ b/test/parallel/test-tls-env-bad-extra-ca.js @@ -3,10 +3,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-env-extra-ca.js b/test/parallel/test-tls-env-extra-ca.js index e2de272184e5f4..be7c826b85cc1f 100644 --- a/test/parallel/test-tls-env-extra-ca.js +++ b/test/parallel/test-tls-env-extra-ca.js @@ -3,10 +3,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-external-accessor.js b/test/parallel/test-tls-external-accessor.js index 08a4ad16e8b4d4..2d7b1f62b98977 100644 --- a/test/parallel/test-tls-external-accessor.js +++ b/test/parallel/test-tls-external-accessor.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -// Ensure accessing ._external doesn't hit an assert in the accessor method. +const assert = require('assert'); const tls = require('tls'); + +// Ensure accessing ._external doesn't hit an assert in the accessor method. { const pctx = tls.createSecureContext().context; const cctx = Object.create(pctx); diff --git a/test/parallel/test-tls-fast-writing.js b/test/parallel/test-tls-fast-writing.js index 05722d895943bb..b846f732d2fb0e 100644 --- a/test/parallel/test-tls-fast-writing.js +++ b/test/parallel/test-tls-fast-writing.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const dir = common.fixturesDir; diff --git a/test/parallel/test-tls-friendly-error-message.js b/test/parallel/test-tls-friendly-error-message.js index c476fb20fe47f0..644b298fb9a40c 100644 --- a/test/parallel/test-tls-friendly-error-message.js +++ b/test/parallel/test-tls-friendly-error-message.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const key = fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`); diff --git a/test/parallel/test-tls-getcipher.js b/test/parallel/test-tls-getcipher.js index d2c5b9eab4d170..acf07ef0a03320 100644 --- a/test/parallel/test-tls-getcipher.js +++ b/test/parallel/test-tls-getcipher.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-getprotocol.js b/test/parallel/test-tls-getprotocol.js index 393b8fb3fe028a..dd96aa6f7494a6 100644 --- a/test/parallel/test-tls-getprotocol.js +++ b/test/parallel/test-tls-getprotocol.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-handshake-error.js b/test/parallel/test-tls-handshake-error.js index 3bd74baa9772b9..e4a4addd37be1d 100644 --- a/test/parallel/test-tls-handshake-error.js +++ b/test/parallel/test-tls-handshake-error.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-handshake-nohang.js b/test/parallel/test-tls-handshake-nohang.js index 791ba8df84b3a0..e724fcd3422b00 100644 --- a/test/parallel/test-tls-handshake-nohang.js +++ b/test/parallel/test-tls-handshake-nohang.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); // neither should hang diff --git a/test/parallel/test-tls-hello-parser-failure.js b/test/parallel/test-tls-hello-parser-failure.js index a6e272aa2aab99..ed4c4f7b991f47 100644 --- a/test/parallel/test-tls-hello-parser-failure.js +++ b/test/parallel/test-tls-hello-parser-failure.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-honorcipherorder.js b/test/parallel/test-tls-honorcipherorder.js index a6d51d5dfeea6d..a9d35a01baca51 100644 --- a/test/parallel/test-tls-honorcipherorder.js +++ b/test/parallel/test-tls-honorcipherorder.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); + let nconns = 0; // We explicitly set TLS version to 1.2 so as to be safe when the diff --git a/test/parallel/test-tls-inception.js b/test/parallel/test-tls-inception.js index 38f922107b0b9a..267fa391a73e20 100644 --- a/test/parallel/test-tls-inception.js +++ b/test/parallel/test-tls-inception.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-interleave.js b/test/parallel/test-tls-interleave.js index 131915911fbe9c..d704a35e6881df 100644 --- a/test/parallel/test-tls-interleave.js +++ b/test/parallel/test-tls-interleave.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-invoke-queued.js b/test/parallel/test-tls-invoke-queued.js index 4437507516b921..b1027dd943386c 100644 --- a/test/parallel/test-tls-invoke-queued.js +++ b/test/parallel/test-tls-invoke-queued.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-js-stream.js b/test/parallel/test-tls-js-stream.js index 6553d6862dd4e9..f535a46cce593b 100644 --- a/test/parallel/test-tls-js-stream.js +++ b/test/parallel/test-tls-js-stream.js @@ -1,13 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const stream = require('stream'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-junk-closes-server.js b/test/parallel/test-tls-junk-closes-server.js index a1ffb32c2408f4..b0e29ec9f8cffc 100644 --- a/test/parallel/test-tls-junk-closes-server.js +++ b/test/parallel/test-tls-junk-closes-server.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-junk-server.js b/test/parallel/test-tls-junk-server.js index 9b5ab6fdcc649d..3270dec745c1ba 100644 --- a/test/parallel/test-tls-junk-server.js +++ b/test/parallel/test-tls-junk-server.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-tls-key-mismatch.js b/test/parallel/test-tls-key-mismatch.js index ac261122ea6bbf..ed5a15c258ae75 100644 --- a/test/parallel/test-tls-key-mismatch.js +++ b/test/parallel/test-tls-key-mismatch.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-legacy-deprecated.js b/test/parallel/test-tls-legacy-deprecated.js index b50c63e7763dfd..4a6120c71b1f77 100644 --- a/test/parallel/test-tls-legacy-deprecated.js +++ b/test/parallel/test-tls-legacy-deprecated.js @@ -1,10 +1,9 @@ // Flags: --no-warnings 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-legacy-onselect.js b/test/parallel/test-tls-legacy-onselect.js index 9af65c43a0661c..efcc5c2c92b889 100644 --- a/test/parallel/test-tls-legacy-onselect.js +++ b/test/parallel/test-tls-legacy-onselect.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); diff --git a/test/parallel/test-tls-lookup.js b/test/parallel/test-tls-lookup.js index cebb85c4b2a60f..4656d3e5cc6a1e 100644 --- a/test/parallel/test-tls-lookup.js +++ b/test/parallel/test-tls-lookup.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-max-send-fragment.js b/test/parallel/test-tls-max-send-fragment.js index 86ee1a4f14a7ba..1cbcb8e272d6c8 100644 --- a/test/parallel/test-tls-max-send-fragment.js +++ b/test/parallel/test-tls-max-send-fragment.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const buf = Buffer.allocUnsafe(10000); diff --git a/test/parallel/test-tls-multi-key.js b/test/parallel/test-tls-multi-key.js index 6158f7d4057657..6e1a3c8777eeba 100644 --- a/test/parallel/test-tls-multi-key.js +++ b/test/parallel/test-tls-multi-key.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-no-cert-required.js b/test/parallel/test-tls-no-cert-required.js index 06139307c43ce6..11c86efa08e1b4 100644 --- a/test/parallel/test-tls-no-cert-required.js +++ b/test/parallel/test-tls-no-cert-required.js @@ -20,13 +20,11 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -const assert = require('assert'); const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); // Omitting the cert or pfx option to tls.createServer() should not throw. diff --git a/test/parallel/test-tls-no-rsa-key.js b/test/parallel/test-tls-no-rsa-key.js index 60ac0ab148b1ac..4551928acdcf38 100644 --- a/test/parallel/test-tls-no-rsa-key.js +++ b/test/parallel/test-tls-no-rsa-key.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-no-sslv23.js b/test/parallel/test-tls-no-sslv23.js index 564efab26da22c..737f42b530d93a 100644 --- a/test/parallel/test-tls-no-sslv23.js +++ b/test/parallel/test-tls-no-sslv23.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); assert.throws(function() { diff --git a/test/parallel/test-tls-no-sslv3.js b/test/parallel/test-tls-no-sslv3.js index 2c2c51eb9be5fd..0a118dbe7e9d49 100644 --- a/test/parallel/test-tls-no-sslv3.js +++ b/test/parallel/test-tls-no-sslv3.js @@ -1,21 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +if (common.opensslCli === false) + common.skip('node compiled without OpenSSL CLI.'); + +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const spawn = require('child_process').spawn; -if (common.opensslCli === false) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - const cert = fs.readFileSync(`${common.fixturesDir}/test_cert.pem`); const key = fs.readFileSync(`${common.fixturesDir}/test_key.pem`); const server = tls.createServer({ cert: cert, key: key }, common.mustNotCall()); @@ -48,7 +43,7 @@ server.on('tlsClientError', (err) => errors.push(err)); process.on('exit', function() { if (/unknown option -ssl3/.test(stderr)) { - common.skip('`openssl s_client -ssl3` not supported.'); + common.printSkipMessage('`openssl s_client -ssl3` not supported.'); } else { assert.strictEqual(errors.length, 1); assert(/:wrong version number/.test(errors[0].message)); diff --git a/test/parallel/test-tls-npn-server-client.js b/test/parallel/test-tls-npn-server-client.js index ffaf61b633bc1d..6a528732a3202a 100644 --- a/test/parallel/test-tls-npn-server-client.js +++ b/test/parallel/test-tls-npn-server-client.js @@ -21,15 +21,11 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_npn) { - common.skip('Skipping because node compiled without NPN feature of OpenSSL.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!process.features.tls_npn) + common.skip('Skipping because node compiled without NPN feature of OpenSSL.'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-ocsp-callback.js b/test/parallel/test-tls-ocsp-callback.js index a839384925c0a2..b4437c6a9b35f5 100644 --- a/test/parallel/test-tls-ocsp-callback.js +++ b/test/parallel/test-tls-ocsp-callback.js @@ -22,19 +22,15 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_ocsp) { +if (!process.features.tls_ocsp) common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} -if (!common.opensslCli) { + +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const assert = require('assert'); diff --git a/test/parallel/test-tls-on-empty-socket.js b/test/parallel/test-tls-on-empty-socket.js index 38537fd640c71a..5b66edd0c2076a 100644 --- a/test/parallel/test-tls-on-empty-socket.js +++ b/test/parallel/test-tls-on-empty-socket.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-over-http-tunnel.js b/test/parallel/test-tls-over-http-tunnel.js index 638886e92e92c9..5ff05b8504fdf8 100644 --- a/test/parallel/test-tls-over-http-tunnel.js +++ b/test/parallel/test-tls-over-http-tunnel.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const net = require('net'); const http = require('http'); diff --git a/test/parallel/test-tls-parse-cert-string.js b/test/parallel/test-tls-parse-cert-string.js index c6cdbf2e36e677..2e940805c0b958 100644 --- a/test/parallel/test-tls-parse-cert-string.js +++ b/test/parallel/test-tls-parse-cert-string.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-passphrase.js b/test/parallel/test-tls-passphrase.js index 20b5961fb47f66..c8cc06d35e4cd9 100644 --- a/test/parallel/test-tls-passphrase.js +++ b/test/parallel/test-tls-passphrase.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-pause.js b/test/parallel/test-tls-pause.js index a08b435f678508..647b13c62a298c 100644 --- a/test/parallel/test-tls-pause.js +++ b/test/parallel/test-tls-pause.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-peer-certificate-encoding.js b/test/parallel/test-tls-peer-certificate-encoding.js index 95f14c7b8ee12a..76781e0953470e 100644 --- a/test/parallel/test-tls-peer-certificate-encoding.js +++ b/test/parallel/test-tls-peer-certificate-encoding.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const util = require('util'); const join = require('path').join; diff --git a/test/parallel/test-tls-peer-certificate-multi-keys.js b/test/parallel/test-tls-peer-certificate-multi-keys.js index a58c747bd41ea1..226772386253f4 100644 --- a/test/parallel/test-tls-peer-certificate-multi-keys.js +++ b/test/parallel/test-tls-peer-certificate-multi-keys.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const util = require('util'); const join = require('path').join; diff --git a/test/parallel/test-tls-pfx-gh-5100-regr.js b/test/parallel/test-tls-pfx-gh-5100-regr.js index 142a7de10b841a..c47ad5f89d4721 100644 --- a/test/parallel/test-tls-pfx-gh-5100-regr.js +++ b/test/parallel/test-tls-pfx-gh-5100-regr.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('node compiled without crypto.'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-regr-gh-5108.js b/test/parallel/test-tls-regr-gh-5108.js index 6f4392007bc856..9bb07fe7ca3b3e 100644 --- a/test/parallel/test-tls-regr-gh-5108.js +++ b/test/parallel/test-tls-regr-gh-5108.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-request-timeout.js b/test/parallel/test-tls-request-timeout.js index c529d972d2185e..216b69bb21269c 100644 --- a/test/parallel/test-tls-request-timeout.js +++ b/test/parallel/test-tls-request-timeout.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-retain-handle-no-abort.js b/test/parallel/test-tls-retain-handle-no-abort.js index a3a2aebcd6ab2c..4be64c15969f22 100644 --- a/test/parallel/test-tls-retain-handle-no-abort.js +++ b/test/parallel/test-tls-retain-handle-no-abort.js @@ -1,12 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); const util = require('util'); diff --git a/test/parallel/test-tls-securepair-fiftharg.js b/test/parallel/test-tls-securepair-fiftharg.js index 2b69ce88f4f9aa..236f719157f11e 100644 --- a/test/parallel/test-tls-securepair-fiftharg.js +++ b/test/parallel/test-tls-securepair-fiftharg.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-securepair-leak.js b/test/parallel/test-tls-securepair-leak.js index b513bcd4c7c73a..cbc7c7daddd74b 100644 --- a/test/parallel/test-tls-securepair-leak.js +++ b/test/parallel/test-tls-securepair-leak.js @@ -2,13 +2,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const { createSecureContext } = require('tls'); const { createSecurePair } = require('_tls_legacy'); diff --git a/test/parallel/test-tls-securepair-server.js b/test/parallel/test-tls-securepair-server.js index 00e8cd591ff2c9..6aebc80722120f 100644 --- a/test/parallel/test-tls-securepair-server.js +++ b/test/parallel/test-tls-securepair-server.js @@ -21,20 +21,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const join = require('path').join; const net = require('net'); const fs = require('fs'); diff --git a/test/parallel/test-tls-server-connection-server.js b/test/parallel/test-tls-server-connection-server.js index 1c54eb635ad449..7eef14d23b5371 100644 --- a/test/parallel/test-tls-server-connection-server.js +++ b/test/parallel/test-tls-server-connection-server.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js b/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js index 0290bcc629a3e3..8efb4ec53866d5 100644 --- a/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js +++ b/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); const assert = require('assert'); diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js index 86a735f64c98a4..dcae05eb968565 100644 --- a/test/parallel/test-tls-server-verify.js +++ b/test/parallel/test-tls-server-verify.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); // This is a rather complex test which sets up various TLS servers with node // and connects to them using the 'openssl s_client' command line utility diff --git a/test/parallel/test-tls-session-cache.js b/test/parallel/test-tls-session-cache.js index e87c62d3ed9416..805c21b3ade248 100644 --- a/test/parallel/test-tls-session-cache.js +++ b/test/parallel/test-tls-session-cache.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} doTest({ tickets: false }, function() { doTest({ tickets: true }, function() { diff --git a/test/parallel/test-tls-set-ciphers.js b/test/parallel/test-tls-set-ciphers.js index 4b7923891bd5b4..2c7177389b125d 100644 --- a/test/parallel/test-tls-set-ciphers.js +++ b/test/parallel/test-tls-set-ciphers.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const exec = require('child_process').exec; diff --git a/test/parallel/test-tls-set-encoding.js b/test/parallel/test-tls-set-encoding.js index 7023132d7373e3..c9ff52b9b2fc05 100644 --- a/test/parallel/test-tls-set-encoding.js +++ b/test/parallel/test-tls-set-encoding.js @@ -21,17 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); - const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`), cert: fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`) diff --git a/test/parallel/test-tls-sni-option.js b/test/parallel/test-tls-sni-option.js index ad7410b1631106..f744b6db54c9ce 100644 --- a/test/parallel/test-tls-sni-option.js +++ b/test/parallel/test-tls-sni-option.js @@ -21,15 +21,11 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_sni) { - common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!process.features.tls_sni) + common.skip('node compiled without OpenSSL or with old OpenSSL version.'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-sni-server-client.js b/test/parallel/test-tls-sni-server-client.js index 300010cfa13cda..83fd50c06603d1 100644 --- a/test/parallel/test-tls-sni-server-client.js +++ b/test/parallel/test-tls-sni-server-client.js @@ -21,15 +21,11 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_sni) { - common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!process.features.tls_sni) + common.skip('node compiled without OpenSSL or with old OpenSSL version.'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-socket-close.js b/test/parallel/test-tls-socket-close.js index 25282ada9ed31a..f9a77bf4648b46 100644 --- a/test/parallel/test-tls-socket-close.js +++ b/test/parallel/test-tls-socket-close.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const assert = require('assert'); +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-socket-destroy.js b/test/parallel/test-tls-socket-destroy.js index 0a72ac6232e865..b101a872c23422 100644 --- a/test/parallel/test-tls-socket-destroy.js +++ b/test/parallel/test-tls-socket-destroy.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-socket-failed-handshake-emits-error.js b/test/parallel/test-tls-socket-failed-handshake-emits-error.js index 106a14a7df8ec6..16175b8898115e 100644 --- a/test/parallel/test-tls-socket-failed-handshake-emits-error.js +++ b/test/parallel/test-tls-socket-failed-handshake-emits-error.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); const assert = require('assert'); diff --git a/test/parallel/test-tls-startcom-wosign-whitelist.js b/test/parallel/test-tls-startcom-wosign-whitelist.js index 601c0e4393c2eb..92d595e80cfae6 100644 --- a/test/parallel/test-tls-startcom-wosign-whitelist.js +++ b/test/parallel/test-tls-startcom-wosign-whitelist.js @@ -1,10 +1,7 @@ 'use strict'; const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-starttls-server.js b/test/parallel/test-tls-starttls-server.js index d588fee34d5feb..28d1db88598cfd 100644 --- a/test/parallel/test-tls-starttls-server.js +++ b/test/parallel/test-tls-starttls-server.js @@ -5,10 +5,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-ticket-cluster.js b/test/parallel/test-tls-ticket-cluster.js index 8654dd9ceb32f1..486aef8358715c 100644 --- a/test/parallel/test-tls-ticket-cluster.js +++ b/test/parallel/test-tls-ticket-cluster.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const cluster = require('cluster'); const fs = require('fs'); const join = require('path').join; diff --git a/test/parallel/test-tls-ticket.js b/test/parallel/test-tls-ticket.js index b2541e06ab8872..bf1ce0d5eb421b 100644 --- a/test/parallel/test-tls-ticket.js +++ b/test/parallel/test-tls-ticket.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const net = require('net'); const crypto = require('crypto'); diff --git a/test/parallel/test-tls-timeout-server-2.js b/test/parallel/test-tls-timeout-server-2.js index bf6dcc385bc2b5..8513b29f2e94cd 100644 --- a/test/parallel/test-tls-timeout-server-2.js +++ b/test/parallel/test-tls-timeout-server-2.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-timeout-server.js b/test/parallel/test-tls-timeout-server.js index b43bb169f34388..a3d9a8164707aa 100644 --- a/test/parallel/test-tls-timeout-server.js +++ b/test/parallel/test-tls-timeout-server.js @@ -22,12 +22,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const tls = require('tls'); const net = require('net'); const fs = require('fs'); diff --git a/test/parallel/test-tls-two-cas-one-string.js b/test/parallel/test-tls-two-cas-one-string.js index 3f948b86a585e8..897635d7b18c02 100644 --- a/test/parallel/test-tls-two-cas-one-string.js +++ b/test/parallel/test-tls-two-cas-one-string.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-econnreset-localaddress.js b/test/parallel/test-tls-wrap-econnreset-localaddress.js index 5052d4377a446d..9df145ac374ab7 100644 --- a/test/parallel/test-tls-wrap-econnreset-localaddress.js +++ b/test/parallel/test-tls-wrap-econnreset-localaddress.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-econnreset-pipe.js b/test/parallel/test-tls-wrap-econnreset-pipe.js index f31e058e6aaeed..ef6efaedc34aa7 100644 --- a/test/parallel/test-tls-wrap-econnreset-pipe.js +++ b/test/parallel/test-tls-wrap-econnreset-pipe.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); const net = require('net'); diff --git a/test/parallel/test-tls-wrap-econnreset-socket.js b/test/parallel/test-tls-wrap-econnreset-socket.js index 479d7524aa3611..672da9876fd005 100644 --- a/test/parallel/test-tls-wrap-econnreset-socket.js +++ b/test/parallel/test-tls-wrap-econnreset-socket.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-econnreset.js b/test/parallel/test-tls-wrap-econnreset.js index ed0fe9b1a31b29..5c6db86b75e06a 100644 --- a/test/parallel/test-tls-wrap-econnreset.js +++ b/test/parallel/test-tls-wrap-econnreset.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-event-emmiter.js b/test/parallel/test-tls-wrap-event-emmiter.js index 417b21804a4075..82953f1333e5da 100644 --- a/test/parallel/test-tls-wrap-event-emmiter.js +++ b/test/parallel/test-tls-wrap-event-emmiter.js @@ -6,10 +6,9 @@ */ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const TlsSocket = require('tls').TLSSocket; diff --git a/test/parallel/test-tls-wrap-no-abort.js b/test/parallel/test-tls-wrap-no-abort.js index c18b17a6406321..21a472ee3bc7a7 100644 --- a/test/parallel/test-tls-wrap-no-abort.js +++ b/test/parallel/test-tls-wrap-no-abort.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const util = require('util'); const TLSWrap = process.binding('tls_wrap').TLSWrap; diff --git a/test/parallel/test-tls-wrap-timeout.js b/test/parallel/test-tls-wrap-timeout.js index 64fbcc7fc7f270..b4cff368182fa3 100644 --- a/test/parallel/test-tls-wrap-timeout.js +++ b/test/parallel/test-tls-wrap-timeout.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-writewrap-leak.js b/test/parallel/test-tls-writewrap-leak.js index 0d61f279312dcf..7035764cba5394 100644 --- a/test/parallel/test-tls-writewrap-leak.js +++ b/test/parallel/test-tls-writewrap-leak.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const net = require('net'); diff --git a/test/parallel/test-tls-zero-clear-in.js b/test/parallel/test-tls-zero-clear-in.js index 10d0efaf0b470b..84c03d292c1dbe 100644 --- a/test/parallel/test-tls-zero-clear-in.js +++ b/test/parallel/test-tls-zero-clear-in.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-url-domain-ascii-unicode.js b/test/parallel/test-url-domain-ascii-unicode.js index 2be8ac7f5fec8b..49259a7ab0f4c4 100644 --- a/test/parallel/test-url-domain-ascii-unicode.js +++ b/test/parallel/test-url-domain-ascii-unicode.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} + const strictEqual = require('assert').strictEqual; const url = require('url'); diff --git a/test/parallel/test-url-format-whatwg.js b/test/parallel/test-url-format-whatwg.js index f7363fdbb998b0..d484760c808584 100644 --- a/test/parallel/test-url-format-whatwg.js +++ b/test/parallel/test-url-format-whatwg.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} + const assert = require('assert'); const url = require('url'); const URL = url.URL; diff --git a/test/parallel/test-util-sigint-watchdog.js b/test/parallel/test-util-sigint-watchdog.js index 207f44b011c3a2..6debd18d0500ff 100644 --- a/test/parallel/test-util-sigint-watchdog.js +++ b/test/parallel/test-util-sigint-watchdog.js @@ -1,14 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const binding = process.binding('util'); - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const binding = process.binding('util'); + [(next) => { // Test with no signal observed. binding.startSigintWatchdog(); diff --git a/test/parallel/test-vm-sigint-existing-handler.js b/test/parallel/test-vm-sigint-existing-handler.js index 9bd5d338797a35..217d56dd972421 100644 --- a/test/parallel/test-vm-sigint-existing-handler.js +++ b/test/parallel/test-vm-sigint-existing-handler.js @@ -1,8 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) { + // No way to send CTRL_C_EVENT to processes from JS right now. + common.skip('platform not supported'); +} + const assert = require('assert'); const vm = require('vm'); - const spawn = require('child_process').spawn; const methods = [ @@ -10,12 +14,6 @@ const methods = [ 'runInContext' ]; -if (common.isWindows) { - // No way to send CTRL_C_EVENT to processes from JS right now. - common.skip('platform not supported'); - return; -} - if (process.argv[2] === 'child') { const method = process.argv[3]; assert.ok(method); diff --git a/test/parallel/test-vm-sigint.js b/test/parallel/test-vm-sigint.js index b1ad616405453d..ae205edb3d0abd 100644 --- a/test/parallel/test-vm-sigint.js +++ b/test/parallel/test-vm-sigint.js @@ -1,17 +1,14 @@ 'use strict'; const common = require('../common'); - -const assert = require('assert'); -const vm = require('vm'); - -const spawn = require('child_process').spawn; - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const vm = require('vm'); +const spawn = require('child_process').spawn; + if (process.argv[2] === 'child') { const method = process.argv[3]; const listeners = +process.argv[4]; diff --git a/test/parallel/test-warn-sigprof.js b/test/parallel/test-warn-sigprof.js index eedbe33d84ff2a..3404490c2a179d 100644 --- a/test/parallel/test-warn-sigprof.js +++ b/test/parallel/test-warn-sigprof.js @@ -6,10 +6,8 @@ const common = require('../common'); common.skipIfInspectorDisabled(); -if (common.isWindows) { +if (common.isWindows) common.skip('test does not apply to Windows'); - return; -} common.expectWarning('Warning', 'process.on(SIGPROF) is reserved while debugging'); diff --git a/test/parallel/test-whatwg-url-constructor.js b/test/parallel/test-whatwg-url-constructor.js index b67f63baf139b7..290f9266b54f41 100644 --- a/test/parallel/test-whatwg-url-constructor.js +++ b/test/parallel/test-whatwg-url-constructor.js @@ -1,16 +1,15 @@ 'use strict'; const common = require('../common'); -const path = require('path'); -const { URL, URLSearchParams } = require('url'); -const { test, assert_equals, assert_true, assert_throws } = - require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const path = require('path'); +const { URL, URLSearchParams } = require('url'); +const { test, assert_equals, assert_true, assert_throws } = + require('../common/wpt'); + const request = { response: require(path.join(common.fixturesDir, 'url-tests')) }; diff --git a/test/parallel/test-whatwg-url-domainto.js b/test/parallel/test-whatwg-url-domainto.js index b399f24136e14b..bfd5e94d2e5dd8 100644 --- a/test/parallel/test-whatwg-url-domainto.js +++ b/test/parallel/test-whatwg-url-domainto.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const assert = require('assert'); const { domainToASCII, domainToUnicode } = require('url'); diff --git a/test/parallel/test-whatwg-url-historical.js b/test/parallel/test-whatwg-url-historical.js index 0f7c0e70cd6392..7848b1c1873a70 100644 --- a/test/parallel/test-whatwg-url-historical.js +++ b/test/parallel/test-whatwg-url-historical.js @@ -1,14 +1,13 @@ 'use strict'; const common = require('../common'); -const URL = require('url').URL; -const { test, assert_equals, assert_throws } = require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const URL = require('url').URL; +const { test, assert_equals, assert_throws } = require('../common/wpt'); + /* eslint-disable */ /* WPT Refs: https://github.com/w3c/web-platform-tests/blob/8791bed/url/historical.html diff --git a/test/parallel/test-whatwg-url-inspect.js b/test/parallel/test-whatwg-url-inspect.js index 8db1a20e5be152..5758b39b8af83d 100644 --- a/test/parallel/test-whatwg-url-inspect.js +++ b/test/parallel/test-whatwg-url-inspect.js @@ -1,16 +1,15 @@ 'use strict'; const common = require('../common'); -const util = require('util'); -const URL = require('url').URL; -const assert = require('assert'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const util = require('util'); +const URL = require('url').URL; +const assert = require('assert'); + // Tests below are not from WPT. const url = new URL('https://username:password@host.name:8080/path/name/?que=ry#hash'); diff --git a/test/parallel/test-whatwg-url-origin.js b/test/parallel/test-whatwg-url-origin.js index b5b54f887f09eb..732100e142a509 100644 --- a/test/parallel/test-whatwg-url-origin.js +++ b/test/parallel/test-whatwg-url-origin.js @@ -1,15 +1,14 @@ 'use strict'; const common = require('../common'); -const path = require('path'); -const URL = require('url').URL; -const { test, assert_equals } = require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const path = require('path'); +const URL = require('url').URL; +const { test, assert_equals } = require('../common/wpt'); + const request = { response: require(path.join(common.fixturesDir, 'url-tests')) }; diff --git a/test/parallel/test-whatwg-url-parsing.js b/test/parallel/test-whatwg-url-parsing.js index 0e8f3b6d77cb56..35658d94a912bc 100644 --- a/test/parallel/test-whatwg-url-parsing.js +++ b/test/parallel/test-whatwg-url-parsing.js @@ -1,16 +1,15 @@ 'use strict'; const common = require('../common'); -const URL = require('url').URL; -const path = require('path'); -const assert = require('assert'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const URL = require('url').URL; +const path = require('path'); +const assert = require('assert'); + // Tests below are not from WPT. const tests = require(path.join(common.fixturesDir, 'url-tests')); const failureTests = tests.filter((test) => test.failure).concat([ diff --git a/test/parallel/test-whatwg-url-setters.js b/test/parallel/test-whatwg-url-setters.js index 60a482decc32f3..938c2aa2538765 100644 --- a/test/parallel/test-whatwg-url-setters.js +++ b/test/parallel/test-whatwg-url-setters.js @@ -1,6 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasIntl) { + // A handful of the tests fail when ICU is not included. + common.skip('missing Intl'); +} + const assert = require('assert'); const path = require('path'); const URL = require('url').URL; @@ -8,12 +13,6 @@ const { test, assert_equals } = require('../common/wpt'); const additionalTestCases = require( path.join(common.fixturesDir, 'url-setter-tests-additional.js')); -if (!common.hasIntl) { - // A handful of the tests fail when ICU is not included. - common.skip('missing Intl'); - return; -} - const request = { response: require(path.join(common.fixturesDir, 'url-setter-tests')) }; diff --git a/test/parallel/test-whatwg-url-toascii.js b/test/parallel/test-whatwg-url-toascii.js index bd986c96a47a84..851240ce650a70 100644 --- a/test/parallel/test-whatwg-url-toascii.js +++ b/test/parallel/test-whatwg-url-toascii.js @@ -1,15 +1,14 @@ 'use strict'; const common = require('../common'); -const path = require('path'); -const { URL } = require('url'); -const { test, assert_equals, assert_throws } = require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const path = require('path'); +const { URL } = require('url'); +const { test, assert_equals, assert_throws } = require('../common/wpt'); + const request = { response: require(path.join(common.fixturesDir, 'url-toascii')) }; diff --git a/test/parallel/test-windows-abort-exitcode.js b/test/parallel/test-windows-abort-exitcode.js index c5c5fa6f3a5e78..d61a91315bb679 100644 --- a/test/parallel/test-windows-abort-exitcode.js +++ b/test/parallel/test-windows-abort-exitcode.js @@ -1,17 +1,16 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('test is windows specific'); + const assert = require('assert'); +const spawn = require('child_process').spawn; // This test makes sure that an aborted node process // exits with code 3 on Windows. // Spawn a child, force an abort, and then check the // exit code in the parent. -const spawn = require('child_process').spawn; -if (!common.isWindows) { - common.skip('test is windows specific'); - return; -} if (process.argv[2] === 'child') { process.abort(); } else { diff --git a/test/parallel/test-zlib-random-byte-pipes.js b/test/parallel/test-zlib-random-byte-pipes.js index 4ccfd2dc228255..f15b31c2f42c96 100644 --- a/test/parallel/test-zlib-random-byte-pipes.js +++ b/test/parallel/test-zlib-random-byte-pipes.js @@ -21,19 +21,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const crypto = require('crypto'); +const assert = require('assert'); +const crypto = require('crypto'); const stream = require('stream'); -const Stream = stream.Stream; const util = require('util'); const zlib = require('zlib'); +const Stream = stream.Stream; // emit random bytes, and keep a shasum function RandomReadStream(opt) { diff --git a/test/pummel/test-abort-fatal-error.js b/test/pummel/test-abort-fatal-error.js index 6208a13261bdfa..176a16c9eac8de 100644 --- a/test/pummel/test-abort-fatal-error.js +++ b/test/pummel/test-abort-fatal-error.js @@ -21,13 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (common.isWindows) { +if (common.isWindows) common.skip('no RLIMIT_NOFILE on Windows'); - return; -} +const assert = require('assert'); const exec = require('child_process').exec; let cmdline = `ulimit -c 0; ${process.execPath}`; diff --git a/test/pummel/test-crypto-dh.js b/test/pummel/test-crypto-dh.js index 2268994b4d2f16..f64f982c0e1100 100644 --- a/test/pummel/test-crypto-dh.js +++ b/test/pummel/test-crypto-dh.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('node compiled without OpenSSL.'); + const assert = require('assert'); const crypto = require('crypto'); -if (!common.hasCrypto) { - common.skip('node compiled without OpenSSL.'); - return; -} - assert.throws( function() { crypto.getDiffieHellman('unknown-group'); diff --git a/test/pummel/test-crypto-timing-safe-equal-benchmarks.js b/test/pummel/test-crypto-timing-safe-equal-benchmarks.js index 5560a4a256b5fe..4aad5ed20cbe39 100644 --- a/test/pummel/test-crypto-timing-safe-equal-benchmarks.js +++ b/test/pummel/test-crypto-timing-safe-equal-benchmarks.js @@ -1,17 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip('memory-intensive test'); - return; -} +const assert = require('assert'); const crypto = require('crypto'); const BENCHMARK_FUNC_PATH = diff --git a/test/pummel/test-dh-regr.js b/test/pummel/test-dh-regr.js index 092d91428eb4e7..b8e0ca3f1f88cc 100644 --- a/test/pummel/test-dh-regr.js +++ b/test/pummel/test-dh-regr.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); const p = crypto.createDiffieHellman(1024).getPrime(); diff --git a/test/pummel/test-dtrace-jsstack.js b/test/pummel/test-dtrace-jsstack.js index d69e96b2511711..41d10bf1d84e05 100644 --- a/test/pummel/test-dtrace-jsstack.js +++ b/test/pummel/test-dtrace-jsstack.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.isSunOS) + common.skip('no DTRACE support'); + const assert = require('assert'); const os = require('os'); -if (!common.isSunOS) { - common.skip('no DTRACE support'); - return; -} - /* * Some functions to create a recognizable stack. */ diff --git a/test/pummel/test-https-ci-reneg-attack.js b/test/pummel/test-https-ci-reneg-attack.js index 6cc8c51fe21114..fbe0e37873c79a 100644 --- a/test/pummel/test-https-ci-reneg-attack.js +++ b/test/pummel/test-https-ci-reneg-attack.js @@ -21,23 +21,18 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); + const assert = require('assert'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const tls = require('tls'); const https = require('https'); - const fs = require('fs'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - // renegotiation limits to test const LIMITS = [0, 1, 2, 3, 5, 10, 16]; diff --git a/test/pummel/test-https-large-response.js b/test/pummel/test-https-large-response.js index 17038bf7bde563..7775ccca63e1c3 100644 --- a/test/pummel/test-https-large-response.js +++ b/test/pummel/test-https-large-response.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/pummel/test-https-no-reader.js b/test/pummel/test-https-no-reader.js index cc77993a7312f6..b8071b9ba97819 100644 --- a/test/pummel/test-https-no-reader.js +++ b/test/pummel/test-https-no-reader.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/pummel/test-keep-alive.js b/test/pummel/test-keep-alive.js index 26e19786913f22..d2387495c1c288 100644 --- a/test/pummel/test-keep-alive.js +++ b/test/pummel/test-keep-alive.js @@ -23,16 +23,14 @@ // This test requires the program 'wrk' const common = require('../common'); +if (common.isWindows) + common.skip('no `wrk` on windows'); + const assert = require('assert'); const spawn = require('child_process').spawn; const http = require('http'); const url = require('url'); -if (common.isWindows) { - common.skip('no `wrk` on windows'); - return; -} - const body = 'hello world\n'; const server = http.createServer(function(req, res) { res.writeHead(200, { diff --git a/test/pummel/test-regress-GH-892.js b/test/pummel/test-regress-GH-892.js index 1a7e3ad1cb0377..b1d46adbabb362 100644 --- a/test/pummel/test-regress-GH-892.js +++ b/test/pummel/test-regress-GH-892.js @@ -27,15 +27,12 @@ // TLS server causes the child process to exit cleanly before having sent // the entire buffer. const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); - const fs = require('fs'); const bytesExpected = 1024 * 1024 * 32; diff --git a/test/pummel/test-tls-ci-reneg-attack.js b/test/pummel/test-tls-ci-reneg-attack.js index 4bbaacebf4b6e8..905d922db3a7b5 100644 --- a/test/pummel/test-tls-ci-reneg-attack.js +++ b/test/pummel/test-tls-ci-reneg-attack.js @@ -21,22 +21,17 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); + const assert = require('assert'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const tls = require('tls'); - const fs = require('fs'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - // renegotiation limits to test const LIMITS = [0, 1, 2, 3, 5, 10, 16]; diff --git a/test/pummel/test-tls-connect-memleak.js b/test/pummel/test-tls-connect-memleak.js index d4797e194026f9..c086933a3e0474 100644 --- a/test/pummel/test-tls-connect-memleak.js +++ b/test/pummel/test-tls-connect-memleak.js @@ -23,14 +23,11 @@ // Flags: --expose-gc const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); assert.strictEqual( diff --git a/test/pummel/test-tls-securepair-client.js b/test/pummel/test-tls-securepair-client.js index f147d019c9388f..e9bae682d7290a 100644 --- a/test/pummel/test-tls-securepair-client.js +++ b/test/pummel/test-tls-securepair-client.js @@ -20,19 +20,14 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -// const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const join = require('path').join; const net = require('net'); diff --git a/test/pummel/test-tls-server-large-request.js b/test/pummel/test-tls-server-large-request.js index 021fb7913b586b..3255633ec7c41f 100644 --- a/test/pummel/test-tls-server-large-request.js +++ b/test/pummel/test-tls-server-large-request.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const stream = require('stream'); const util = require('util'); diff --git a/test/pummel/test-tls-session-timeout.js b/test/pummel/test-tls-session-timeout.js index 1bb3592042275f..9b175da77e62a7 100644 --- a/test/pummel/test-tls-session-timeout.js +++ b/test/pummel/test-tls-session-timeout.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} doTest(); diff --git a/test/pummel/test-tls-throttle.js b/test/pummel/test-tls-throttle.js index a9e2442ef2bcfa..2d0ea1c673a70c 100644 --- a/test/pummel/test-tls-throttle.js +++ b/test/pummel/test-tls-throttle.js @@ -24,12 +24,10 @@ // seconds. Makes sure that pause and resume work properly. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/sequential/test-benchmark-http.js b/test/sequential/test-benchmark-http.js index ce3d58e5d8d4b8..34fbc3732b20b9 100644 --- a/test/sequential/test-benchmark-http.js +++ b/test/sequential/test-benchmark-http.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip('Insufficient memory for HTTP benchmark test'); - return; -} // Minimal test for http benchmarks. This makes sure the benchmarks aren't // horribly broken but nothing more than that. diff --git a/test/sequential/test-buffer-creation-regression.js b/test/sequential/test-buffer-creation-regression.js index 8137e4830a9cb0..8c3a09848c9fa9 100644 --- a/test/sequential/test-buffer-creation-regression.js +++ b/test/sequential/test-buffer-creation-regression.js @@ -29,7 +29,8 @@ try { arrayBuffer = new ArrayBuffer(size); } catch (e) { if (e instanceof RangeError && acceptableOOMErrors.includes(e.message)) - return common.skip(`Unable to allocate ${size} bytes for ArrayBuffer`); + common.skip(`Unable to allocate ${size} bytes for ArrayBuffer`); + throw e; } diff --git a/test/sequential/test-child-process-emfile.js b/test/sequential/test-child-process-emfile.js index 59756e4c7b2e7c..e81b3a0ffec9cb 100644 --- a/test/sequential/test-child-process-emfile.js +++ b/test/sequential/test-child-process-emfile.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('no RLIMIT_NOFILE on Windows'); + const assert = require('assert'); const child_process = require('child_process'); const fs = require('fs'); -if (common.isWindows) { - common.skip('no RLIMIT_NOFILE on Windows'); - return; -} - const ulimit = Number(child_process.execSync('ulimit -Hn')); if (ulimit > 64 || Number.isNaN(ulimit)) { // Sorry about this nonsense. It can be replaced if diff --git a/test/sequential/test-child-process-pass-fd.js b/test/sequential/test-child-process-pass-fd.js index b2481270faf065..8cc11f6c11f5b4 100644 --- a/test/sequential/test-child-process-pass-fd.js +++ b/test/sequential/test-child-process-pass-fd.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if ((process.config.variables.arm_version === '6') || + (process.config.variables.arm_version === '7')) + common.skip('Too slow for armv6 and armv7 bots'); + const assert = require('assert'); const fork = require('child_process').fork; const net = require('net'); -if ((process.config.variables.arm_version === '6') || - (process.config.variables.arm_version === '7')) { - common.skip('Too slow for armv6 and armv7 bots'); - return; -} - const N = 80; if (process.argv[2] !== 'child') { diff --git a/test/sequential/test-crypto-timing-safe-equal.js b/test/sequential/test-crypto-timing-safe-equal.js index 7a1f8d2993669b..2847af9ef8bdb5 100644 --- a/test/sequential/test-crypto-timing-safe-equal.js +++ b/test/sequential/test-crypto-timing-safe-equal.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const crypto = require('crypto'); assert.strictEqual( diff --git a/test/sequential/test-fs-readfile-tostring-fail.js b/test/sequential/test-fs-readfile-tostring-fail.js index ee962652fc14b5..2eb6ce0732dd70 100644 --- a/test/sequential/test-fs-readfile-tostring-fail.js +++ b/test/sequential/test-fs-readfile-tostring-fail.js @@ -2,11 +2,8 @@ const common = require('../common'); -if (!common.enoughTestMem) { - const skipMessage = 'intensive toString tests due to memory confinements'; - common.skip(skipMessage); - return; -} +if (!common.enoughTestMem) + common.skip('intensive toString tests due to memory confinements'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/sequential/test-https-set-timeout-server.js b/test/sequential/test-https-set-timeout-server.js index aa4eb5714ffa58..e1b9430583ff39 100644 --- a/test/sequential/test-https-set-timeout-server.js +++ b/test/sequential/test-https-set-timeout-server.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/sequential/test-net-server-address.js b/test/sequential/test-net-server-address.js index a6e09a86532dbc..52a8c1ac820e24 100644 --- a/test/sequential/test-net-server-address.js +++ b/test/sequential/test-net-server-address.js @@ -40,7 +40,7 @@ server_ipv4 })); if (!common.hasIPv6) { - common.skip('ipv6 part of test, no IPv6 support'); + common.printSkipMessage('ipv6 part of test, no IPv6 support'); return; } diff --git a/test/tick-processor/test-tick-processor-builtin.js b/test/tick-processor/test-tick-processor-builtin.js index afe08bdb0b672b..0fb839f8d1321c 100644 --- a/test/tick-processor/test-tick-processor-builtin.js +++ b/test/tick-processor/test-tick-processor-builtin.js @@ -1,19 +1,15 @@ 'use strict'; const common = require('../common'); +if (!common.enoughTestCpu) + common.skip('test is CPU-intensive'); + if (common.isWindows || common.isSunOS || common.isAix || common.isLinuxPPCBE || - common.isFreeBSD) { + common.isFreeBSD) common.skip('C++ symbols are not mapped for this os.'); - return; -} - -if (!common.enoughTestCpu) { - common.skip('test is CPU-intensive'); - return; -} const base = require('./tick-processor-base.js'); diff --git a/test/tick-processor/test-tick-processor-cpp-core.js b/test/tick-processor/test-tick-processor-cpp-core.js index 72eb25e91c394a..dc1aed41a79ea6 100644 --- a/test/tick-processor/test-tick-processor-cpp-core.js +++ b/test/tick-processor/test-tick-processor-cpp-core.js @@ -1,19 +1,15 @@ 'use strict'; const common = require('../common'); +if (!common.enoughTestCpu) + common.skip('test is CPU-intensive'); + if (common.isWindows || common.isSunOS || common.isAix || common.isLinuxPPCBE || - common.isFreeBSD) { + common.isFreeBSD) common.skip('C++ symbols are not mapped for this os.'); - return; -} - -if (!common.enoughTestCpu) { - common.skip('test is CPU-intensive'); - return; -} const base = require('./tick-processor-base.js'); diff --git a/test/tick-processor/test-tick-processor-unknown.js b/test/tick-processor/test-tick-processor-unknown.js index ab3d110ccff012..c0f5f332b260fe 100644 --- a/test/tick-processor/test-tick-processor-unknown.js +++ b/test/tick-processor/test-tick-processor-unknown.js @@ -6,15 +6,11 @@ const common = require('../common'); // the full 64 bits and the result is that it does not process the // addresses correctly and runs out of memory // Disabling until we get a fix upstreamed into V8 -if (common.isAix) { +if (common.isAix) common.skip('AIX address range too big for scripts.'); - return; -} -if (!common.enoughTestCpu) { +if (!common.enoughTestCpu) common.skip('test is CPU-intensive'); - return; -} const base = require('./tick-processor-base.js'); From d288cf10ccfeb4139b9e14a4bc50a17de8d3d778 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 1 Jul 2017 08:14:28 -0700 Subject: [PATCH 022/174] test: skip test-fs-readdir-ucs2 if no support If the filesystem does not support UCS2, do not run the test. PR-URL: https://github.com/nodejs/node/pull/14029 Fixes: https://github.com/nodejs/node/issues/14028 Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Refael Ackermann Reviewed-By: Richard Lau --- test/parallel/parallel.status | 1 - test/parallel/test-fs-readdir-ucs2.js | 16 +++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 5a0e7735b6277d..fda5e01e500078 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -13,7 +13,6 @@ prefix parallel [$system==macos] [$arch==arm || $arch==arm64] -test-fs-readdir-ucs2 : PASS,FLAKY test-npm-install: PASS,FLAKY [$system==solaris] # Also applies to SmartOS diff --git a/test/parallel/test-fs-readdir-ucs2.js b/test/parallel/test-fs-readdir-ucs2.js index e8e69d6ee2fcc7..debcfb7750becd 100644 --- a/test/parallel/test-fs-readdir-ucs2.js +++ b/test/parallel/test-fs-readdir-ucs2.js @@ -14,16 +14,18 @@ const root = Buffer.from(`${common.tmpDir}${path.sep}`); const filebuff = Buffer.from(filename, 'ucs2'); const fullpath = Buffer.concat([root, filebuff]); -fs.closeSync(fs.openSync(fullpath, 'w+')); +try { + fs.closeSync(fs.openSync(fullpath, 'w+')); +} catch (e) { + if (e.code === 'EINVAL') + common.skip('test requires filesystem that supports UCS2'); + throw e; +} -fs.readdir(common.tmpDir, 'ucs2', (err, list) => { +fs.readdir(common.tmpDir, 'ucs2', common.mustCall((err, list) => { assert.ifError(err); assert.strictEqual(1, list.length); const fn = list[0]; assert.deepStrictEqual(filebuff, Buffer.from(fn, 'ucs2')); assert.strictEqual(fn, filename); -}); - -process.on('exit', () => { - fs.unlinkSync(fullpath); -}); +})); From e71b98f9f7c3f89e9b075ce8a711bc7d67bd7406 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 3 Jul 2017 14:00:41 -0700 Subject: [PATCH 023/174] test: restore no-op function in test Remove common.mustCall() in test that might connect to a server already running on the local host. PR-URL: https://github.com/nodejs/node/pull/14065 Reviewed-By: Anna Henningsen Reviewed-By: Refael Ackermann Reviewed-By: Yuta Hiroto Reviewed-By: Luigi Pinca --- test/parallel/test-http-hostname-typechecking.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-http-hostname-typechecking.js b/test/parallel/test-http-hostname-typechecking.js index d1a407cf28dcae..74813e0582d853 100644 --- a/test/parallel/test-http-hostname-typechecking.js +++ b/test/parallel/test-http-hostname-typechecking.js @@ -1,5 +1,5 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const http = require('http'); @@ -21,7 +21,7 @@ vals.forEach((v) => { // These values are OK and should not throw synchronously ['', undefined, null].forEach((v) => { assert.doesNotThrow(() => { - http.request({hostname: v}).on('error', common.mustCall()).end(); - http.request({host: v}).on('error', common.mustCall()).end(); + http.request({hostname: v}).on('error', () => {}).end(); + http.request({host: v}).on('error', () => {}).end(); }); }); From d4a6ca6ed322c814e4542d84ae27763793b37f00 Mon Sep 17 00:00:00 2001 From: Natanael Log Date: Sat, 1 Jul 2017 15:10:36 +0200 Subject: [PATCH 024/174] doc, util, console: clarify ambiguous docs Add clarification to the documentation on util.format() and console.log() regarding how excessive arguments are treated when the first argument is a non-format string compared to when it is not a string at all. PR-URL: https://github.com/nodejs/node/pull/14027 Fixes: https://github.com/nodejs/node/issues/13908 Reviewed-By: Vse Mozhet Byt Reviewed-By: Luigi Pinca Reviewed-By: Franziska Hinkelmann Reviewed-By: Colin Ihrig --- doc/api/console.md | 4 +--- doc/api/util.md | 11 ++++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/doc/api/console.md b/doc/api/console.md index 3411d3ce0afba2..4939ed77bef1b8 100644 --- a/doc/api/console.md +++ b/doc/api/console.md @@ -246,9 +246,7 @@ console.log('count:', count); // Prints: count: 5, to stdout ``` -If formatting elements (e.g. `%d`) are not found in the first string then -[`util.inspect()`][] is called on each argument and the resulting string -values are concatenated. See [`util.format()`][] for more information. +See [`util.format()`][] for more information. ### console.time(label) + ```js [ '4.4.4.4', @@ -314,7 +314,7 @@ function will contain an array of objects with the following properties: For example: - + ```js { flags: 's', @@ -374,7 +374,7 @@ be an object with the following properties: * `expire` * `minttl` - + ```js { nsname: 'ns.example.com', @@ -405,7 +405,7 @@ be an array of objects with the following properties: * `port` * `name` - + ```js { priority: 10, @@ -459,12 +459,12 @@ will be present on the object: Here is a example of the `ret` object passed to the callback: - + ```js [ { type: 'A', address: '127.0.0.1', ttl: 299 }, { type: 'CNAME', value: 'example.com' }, { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, - { type: 'NS', value: 'ns1.example.com', type: 'NS' }, + { type: 'NS', value: 'ns1.example.com' }, { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, { type: 'SOA', nsname: 'ns1.example.com', diff --git a/doc/api/http.md b/doc/api/http.md index 85e877f7a411f9..e71b22649ea59c 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -12,7 +12,7 @@ user is able to stream data. HTTP message headers are represented by an object like this: - + ```js { 'content-length': '123', 'content-type': 'text/plain', diff --git a/doc/api/os.md b/doc/api/os.md index 6afa69d39edb1d..3b4b9526cb48cc 100644 --- a/doc/api/os.md +++ b/doc/api/os.md @@ -254,7 +254,7 @@ The properties available on the assigned network address object include: * `scopeid` {number} The numeric IPv6 scope ID (only specified when `family` is `IPv6`) - + ```js { lo: [ diff --git a/doc/api/process.md b/doc/api/process.md index 9a8323de1741cf..82d854109973c2 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -528,7 +528,7 @@ running the `./configure` script. An example of the possible output looks like: - + ```js { target_defaults: @@ -792,7 +792,7 @@ See environ(7). An example of this object looks like: - + ```js { TERM: 'xterm-256color', @@ -1224,7 +1224,7 @@ console.log(process.memoryUsage()); Will generate: - + ```js { rss: 4935680, @@ -1396,7 +1396,7 @@ tarball. For example: - + ```js { name: 'node', @@ -1758,7 +1758,7 @@ console.log(process.versions); Will generate an object similar to: - + ```js { http_parser: '2.3.0', diff --git a/doc/api/querystring.md b/doc/api/querystring.md index 9216414f8a194e..c6b89235c14d43 100644 --- a/doc/api/querystring.md +++ b/doc/api/querystring.md @@ -59,7 +59,7 @@ collection of key and value pairs. For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: - + ```js { foo: 'bar', diff --git a/doc/api/repl.md b/doc/api/repl.md index 9d6bdfb112d6cf..d18b34a5eab724 100644 --- a/doc/api/repl.md +++ b/doc/api/repl.md @@ -40,7 +40,7 @@ The following special commands are supported by all REPL instances: `> .load ./file/to/load.js` * `.editor` - Enter editor mode (`-D` to finish, `-C` to cancel) - + ```js > .editor // Entering editor mode (^D to finish, ^C to cancel) @@ -76,7 +76,7 @@ evaluation function when the `repl.REPLServer` instance is created. The default evaluator supports direct evaluation of JavaScript expressions: - + ```js > 1 + 1 2 @@ -105,7 +105,7 @@ repl.start('> ').context.m = msg; Properties in the `context` object appear as local within the REPL: - + ```js $ node repl_test.js > m @@ -135,7 +135,7 @@ REPL environment when used. For instance, unless otherwise declared as a global or scoped variable, the input `fs` will be evaluated on-demand as `global.fs = require('fs')`. - + ```js > fs.createReadStream('./some/file'); ``` @@ -146,7 +146,7 @@ The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable `_` (underscore). Explicitly setting `_` to a value will disable this behavior. - + ```js > [ 'a', 'b', 'c' ] [ 'a', 'b', 'c' ] @@ -293,7 +293,7 @@ r.on('reset', initializeContext); When this code is executed, the global `'m'` variable can be modified but then reset to its initial value using the `.clear` command: - + ```js $ ./node example.js > m @@ -443,7 +443,7 @@ Node.js itself uses the `repl` module to provide its own interactive interface for executing JavaScript. This can be used by executing the Node.js binary without passing any arguments (or by passing the `-i` argument): - + ```js $ node > const a = [1, 2, 3]; diff --git a/doc/api/v8.md b/doc/api/v8.md index 32b0fe71eec55e..e9ee98a4844cf6 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -116,7 +116,7 @@ swapped out by the operating system. For example: - + ```js { total_heap_size: 7326976, diff --git a/tools/eslint/node_modules/ccount/history.md b/tools/eslint/node_modules/ccount/history.md deleted file mode 100644 index 908b6f7578944e..00000000000000 --- a/tools/eslint/node_modules/ccount/history.md +++ /dev/null @@ -1,11 +0,0 @@ - - - - -1.0.1 / 2016-07-23 -================== - -* Rewrite module ([`c3cd494`](https://github.com/wooorm/ccount/commit/c3cd494)) - -1.0.0 / 2015-07-12 -================== diff --git a/tools/eslint/node_modules/ccount/index.js b/tools/eslint/node_modules/ccount/index.js deleted file mode 100644 index 0d72d6e52763cc..00000000000000 --- a/tools/eslint/node_modules/ccount/index.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module ccount - * @fileoverview Count characters. - */ - -'use strict'; - -/* Expose. */ -module.exports = ccount; - -/** - * Count how many characters `character` occur in `value`. - * - * @example - * ccount('foo(bar(baz)', '(') // 2 - * ccount('foo(bar(baz)', ')') // 1 - * - * @param {string} value - Content, coerced to string. - * @param {string} character - Single character to look - * for. - * @return {number} - Count. - * @throws {Error} - when `character` is not a single - * character. - */ -function ccount(value, character) { - var count = 0; - var index; - - value = String(value); - - if (typeof character !== 'string' || character.length !== 1) { - throw new Error('Expected character'); - } - - index = value.indexOf(character); - - while (index !== -1) { - count++; - index = value.indexOf(character, index + 1); - } - - return count; -} diff --git a/tools/eslint/node_modules/ccount/readme.md b/tools/eslint/node_modules/ccount/readme.md deleted file mode 100644 index d773d12c8c59e5..00000000000000 --- a/tools/eslint/node_modules/ccount/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# ccount [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] - - - -Count characters. - -## Installation - -[npm][npm-install]: - -```bash -npm install ccount -``` - -## Usage - -```javascript -var ccount = require('ccount'); - -ccount('foo(bar(baz)', '(') // 2 -ccount('foo(bar(baz)', ')') // 1 -``` - -## API - -### `ccount(value, character)` - -Get the total count of `character` in `value`. - -###### Parameters - -* `value` (`string`) — Content, coerced to string. -* `character` (`string`) — Single character to look for. - -###### Returns - -`number` — Number of times `character` occurred in `value`. - -## License - -[MIT][license] © [Titus Wormer][author] - - - -[travis-badge]: https://img.shields.io/travis/wooorm/ccount.svg - -[travis]: https://travis-ci.org/wooorm/ccount - -[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/ccount.svg - -[codecov]: https://codecov.io/github/wooorm/ccount - -[npm-install]: https://docs.npmjs.com/cli/install - -[license]: LICENSE - -[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/character-entities-html4/index.json b/tools/eslint/node_modules/character-entities-html4/index.json deleted file mode 100644 index fa0d7bc7c770c8..00000000000000 --- a/tools/eslint/node_modules/character-entities-html4/index.json +++ /dev/null @@ -1,254 +0,0 @@ -{ - "nbsp": " ", - "iexcl": "¡", - "cent": "¢", - "pound": "£", - "curren": "¤", - "yen": "¥", - "brvbar": "¦", - "sect": "§", - "uml": "¨", - "copy": "©", - "ordf": "ª", - "laquo": "«", - "not": "¬", - "shy": "­", - "reg": "®", - "macr": "¯", - "deg": "°", - "plusmn": "±", - "sup2": "²", - "sup3": "³", - "acute": "´", - "micro": "µ", - "para": "¶", - "middot": "·", - "cedil": "¸", - "sup1": "¹", - "ordm": "º", - "raquo": "»", - "frac14": "¼", - "frac12": "½", - "frac34": "¾", - "iquest": "¿", - "Agrave": "À", - "Aacute": "Á", - "Acirc": "Â", - "Atilde": "Ã", - "Auml": "Ä", - "Aring": "Å", - "AElig": "Æ", - "Ccedil": "Ç", - "Egrave": "È", - "Eacute": "É", - "Ecirc": "Ê", - "Euml": "Ë", - "Igrave": "Ì", - "Iacute": "Í", - "Icirc": "Î", - "Iuml": "Ï", - "ETH": "Ð", - "Ntilde": "Ñ", - "Ograve": "Ò", - "Oacute": "Ó", - "Ocirc": "Ô", - "Otilde": "Õ", - "Ouml": "Ö", - "times": "×", - "Oslash": "Ø", - "Ugrave": "Ù", - "Uacute": "Ú", - "Ucirc": "Û", - "Uuml": "Ü", - "Yacute": "Ý", - "THORN": "Þ", - "szlig": "ß", - "agrave": "à", - "aacute": "á", - "acirc": "â", - "atilde": "ã", - "auml": "ä", - "aring": "å", - "aelig": "æ", - "ccedil": "ç", - "egrave": "è", - "eacute": "é", - "ecirc": "ê", - "euml": "ë", - "igrave": "ì", - "iacute": "í", - "icirc": "î", - "iuml": "ï", - "eth": "ð", - "ntilde": "ñ", - "ograve": "ò", - "oacute": "ó", - "ocirc": "ô", - "otilde": "õ", - "ouml": "ö", - "divide": "÷", - "oslash": "ø", - "ugrave": "ù", - "uacute": "ú", - "ucirc": "û", - "uuml": "ü", - "yacute": "ý", - "thorn": "þ", - "yuml": "ÿ", - "fnof": "ƒ", - "Alpha": "Α", - "Beta": "Β", - "Gamma": "Γ", - "Delta": "Δ", - "Epsilon": "Ε", - "Zeta": "Ζ", - "Eta": "Η", - "Theta": "Θ", - "Iota": "Ι", - "Kappa": "Κ", - "Lambda": "Λ", - "Mu": "Μ", - "Nu": "Ν", - "Xi": "Ξ", - "Omicron": "Ο", - "Pi": "Π", - "Rho": "Ρ", - "Sigma": "Σ", - "Tau": "Τ", - "Upsilon": "Υ", - "Phi": "Φ", - "Chi": "Χ", - "Psi": "Ψ", - "Omega": "Ω", - "alpha": "α", - "beta": "β", - "gamma": "γ", - "delta": "δ", - "epsilon": "ε", - "zeta": "ζ", - "eta": "η", - "theta": "θ", - "iota": "ι", - "kappa": "κ", - "lambda": "λ", - "mu": "μ", - "nu": "ν", - "xi": "ξ", - "omicron": "ο", - "pi": "π", - "rho": "ρ", - "sigmaf": "ς", - "sigma": "σ", - "tau": "τ", - "upsilon": "υ", - "phi": "φ", - "chi": "χ", - "psi": "ψ", - "omega": "ω", - "thetasym": "ϑ", - "upsih": "ϒ", - "piv": "ϖ", - "bull": "•", - "hellip": "…", - "prime": "′", - "Prime": "″", - "oline": "‾", - "frasl": "⁄", - "weierp": "℘", - "image": "ℑ", - "real": "ℜ", - "trade": "™", - "alefsym": "ℵ", - "larr": "←", - "uarr": "↑", - "rarr": "→", - "darr": "↓", - "harr": "↔", - "crarr": "↵", - "lArr": "⇐", - "uArr": "⇑", - "rArr": "⇒", - "dArr": "⇓", - "hArr": "⇔", - "forall": "∀", - "part": "∂", - "exist": "∃", - "empty": "∅", - "nabla": "∇", - "isin": "∈", - "notin": "∉", - "ni": "∋", - "prod": "∏", - "sum": "∑", - "minus": "−", - "lowast": "∗", - "radic": "√", - "prop": "∝", - "infin": "∞", - "ang": "∠", - "and": "∧", - "or": "∨", - "cap": "∩", - "cup": "∪", - "int": "∫", - "there4": "∴", - "sim": "∼", - "cong": "≅", - "asymp": "≈", - "ne": "≠", - "equiv": "≡", - "le": "≤", - "ge": "≥", - "sub": "⊂", - "sup": "⊃", - "nsub": "⊄", - "sube": "⊆", - "supe": "⊇", - "oplus": "⊕", - "otimes": "⊗", - "perp": "⊥", - "sdot": "⋅", - "lceil": "⌈", - "rceil": "⌉", - "lfloor": "⌊", - "rfloor": "⌋", - "lang": "〈", - "rang": "〉", - "loz": "◊", - "spades": "♠", - "clubs": "♣", - "hearts": "♥", - "diams": "♦", - "quot": "\"", - "amp": "&", - "lt": "<", - "gt": ">", - "OElig": "Œ", - "oelig": "œ", - "Scaron": "Š", - "scaron": "š", - "Yuml": "Ÿ", - "circ": "ˆ", - "tilde": "˜", - "ensp": " ", - "emsp": " ", - "thinsp": " ", - "zwnj": "‌", - "zwj": "‍", - "lrm": "‎", - "rlm": "‏", - "ndash": "–", - "mdash": "—", - "lsquo": "‘", - "rsquo": "’", - "sbquo": "‚", - "ldquo": "“", - "rdquo": "”", - "bdquo": "„", - "dagger": "†", - "Dagger": "‡", - "permil": "‰", - "lsaquo": "‹", - "rsaquo": "›", - "euro": "€" -} diff --git a/tools/eslint/node_modules/character-entities-html4/package.json b/tools/eslint/node_modules/character-entities-html4/package.json deleted file mode 100644 index 9540ae4f9514bf..00000000000000 --- a/tools/eslint/node_modules/character-entities-html4/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_from": "character-entities-html4@^1.0.0", - "_id": "character-entities-html4@1.1.0", - "_inBundle": false, - "_integrity": "sha1-GrCFUdPOH6HfCNAPucod77FHoGw=", - "_location": "/character-entities-html4", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "character-entities-html4@^1.0.0", - "name": "character-entities-html4", - "escapedName": "character-entities-html4", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/stringify-entities" - ], - "_resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.0.tgz", - "_shasum": "1ab08551d3ce1fa1df08d00fb9ca1defb147a06c", - "_spec": "character-entities-html4@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/stringify-entities", - "author": { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com", - "url": "http://wooorm.com" - }, - "bugs": { - "url": "https://github.com/wooorm/character-entities-html4/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com", - "url": "http://wooorm.com" - } - ], - "dependencies": {}, - "deprecated": false, - "description": "HTML4 character entity information", - "devDependencies": { - "bail": "^1.0.1", - "browserify": "^13.0.1", - "concat-stream": "^1.5.2", - "esmangle": "^1.0.1", - "nyc": "^8.0.0", - "remark-cli": "^2.0.0", - "remark-preset-wooorm": "^1.0.0", - "tape": "^4.0.0", - "xo": "^0.17.0" - }, - "files": [ - "index.json" - ], - "homepage": "https://github.com/wooorm/character-entities-html4#readme", - "keywords": [ - "html", - "html4", - "entity", - "entities", - "character", - "reference", - "name", - "replacement" - ], - "license": "MIT", - "main": "index.json", - "name": "character-entities-html4", - "remarkConfig": { - "output": true, - "presets": "wooorm" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/wooorm/character-entities-html4.git" - }, - "scripts": { - "build": "npm run build-md && npm run build-generate && npm run build-bundle && npm run build-mangle", - "build-bundle": "browserify index.json --bare -s characterEntitiesHTML4 > character-entities-html4.js", - "build-generate": "node build", - "build-mangle": "esmangle character-entities-html4.js > character-entities-html4.min.js", - "build-md": "remark . --quiet --frail", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", - "test-api": "node test", - "test-coverage": "nyc --reporter lcov tape test.js" - }, - "version": "1.1.0", - "xo": { - "space": true, - "ignores": [ - "character-entities-html4.js" - ] - } -} diff --git a/tools/eslint/node_modules/character-entities-html4/readme.md b/tools/eslint/node_modules/character-entities-html4/readme.md deleted file mode 100644 index d607a6483e2d8f..00000000000000 --- a/tools/eslint/node_modules/character-entities-html4/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# character-entities-html4 [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] - -HTML4 character entity information. - -## Installation - -[npm][npm-install]: - -```bash -npm install character-entities-html4 -``` - -## Usage - -```js -console.log(characterEntities.AElig); // Æ -console.log(characterEntities.aelig); // æ -console.log(characterEntities.amp); // & -console.log(characterEntities.apos); // undefined -``` - -## API - -### `characterEntitiesHTML4` - -Mapping between (case-sensitive) character entity names to replacements. - -## Support - -See [w3.org][html]. - -## License - -[MIT][license] © [Titus Wormer][author] - - - -[travis-badge]: https://img.shields.io/travis/wooorm/character-entities-html4.svg - -[travis]: https://travis-ci.org/wooorm/character-entities-html4 - -[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/character-entities-html4.svg - -[codecov]: https://codecov.io/github/wooorm/character-entities-html4 - -[npm-install]: https://docs.npmjs.com/cli/install - -[license]: LICENSE - -[author]: http://wooorm.com - -[html]: http://www.w3.org/TR/html4/sgml/entities.html diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/README.md b/tools/eslint/node_modules/eslint-plugin-markdown/README.md index 4f212022c81355..749c18832358a1 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/README.md +++ b/tools/eslint/node_modules/eslint-plugin-markdown/README.md @@ -102,6 +102,26 @@ Each code block in a file is linted separately, so configuration comments apply alert("Hello, world!"); ``` +## Skipping Blocks + +Sometimes it can be useful to have code blocks marked with `js` even though they don't contain valid JavaScript syntax, such as commented JSON blobs that need `js` syntax highlighting. Standard `eslint-disable` comments only silence rule reporting, but ESLint still reports any syntax errors it finds. In cases where a code block should not even be parsed, insert a non-standard `` comment before the block, and this plugin will hide the following block from ESLint. Neither rule nor syntax errors will be reported. + + There are comments in this JSON, so we use `js` syntax for better + highlighting. Skip the block to prevent warnings about invalid syntax. + + + + ```js + { + // This code block is hidden from ESLint. + "hello": "world" + } + ``` + + ```js + console.log("This code block is linted normally."); + ``` + ## Unsatisfiable Rules Since code blocks are not files themselves but embedded inside a Markdown document, some rules do not apply to Markdown code blocks, and messages from these rules are automatically suppressed: @@ -113,8 +133,7 @@ Since code blocks are not files themselves but embedded inside a Markdown docume ```sh $ git clone https://github.com/eslint/eslint-plugin-markdown.git $ cd eslint-plugin-markdown -$ npm link -$ npm link eslint-plugin-markdown +$ npm install $ npm test ``` diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js b/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js index 7d0fa62f795914..8df09ef614d2da 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js +++ b/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js @@ -6,14 +6,16 @@ "use strict"; var assign = require("object-assign"); -var parse5 = require("parse5"); -var remark = require("remark"); +var unified = require("unified"); +var remarkParse = require("remark-parse"); var SUPPORTED_SYNTAXES = ["js", "javascript", "node", "jsx"]; var UNSATISFIABLE_RULES = [ "eol-last" // The Markdown parser strips trailing newlines in code fences ]; +var markdown = unified().use(remarkParse); + var blocks = []; /** @@ -42,26 +44,25 @@ function traverse(node, callbacks, parent) { * @param {string} html The text content of an HTML AST node. * @returns {string[]} An array of JS block comments. */ -function getComments(html) { - var ast = parse5.parse(html, { locationInfo: true }); - var nodes = ast.childNodes.filter(function(node) { - return node.__location; // eslint-disable-line no-underscore-dangle - }); - var comments = []; - var index; - - for (index = nodes.length - 1; index >= 0; index--) { - if ( - nodes[index].nodeName === "#comment" - && nodes[index].data.trim().slice(0, "eslint".length) === "eslint" - ) { - comments.unshift("/*" + nodes[index].data + "*/"); - } else { - break; - } +function getComment(html) { + var commentStart = ""; + var prefix = "eslint"; + + if ( + html.slice(0, commentStart.length) !== commentStart || + html.slice(-commentEnd.length) !== commentEnd + ) { + return ""; + } + + html = html.slice(commentStart.length, -commentEnd.length); + + if (html.trim().slice(0, prefix.length) !== prefix) { + return ""; } - return comments; + return html; } /** @@ -70,19 +71,31 @@ function getComments(html) { * @returns {string[]} Source code strings to lint. */ function preprocess(text) { - var ast = remark().parse(text); + var ast = markdown.parse(text); blocks = []; traverse(ast, { "code": function(node, parent) { var comments = []; - var index, previousNode; + var index, previousNode, comment; if (node.lang && SUPPORTED_SYNTAXES.indexOf(node.lang.toLowerCase()) >= 0) { - index = parent.children.indexOf(node); - previousNode = parent.children[index - 1]; - if (previousNode && previousNode.type === "html") { - comments = getComments(previousNode.value) || []; + index = parent.children.indexOf(node) - 1; + previousNode = parent.children[index]; + while (previousNode && previousNode.type === "html") { + comment = getComment(previousNode.value); + + if (!comment) { + break; + } + + if (comment.trim() === "eslint-skip") { + return; + } + + comments.unshift("/*" + comment + "*/"); + index--; + previousNode = parent.children[index]; } blocks.push(assign({}, node, { comments: comments })); diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/package.json b/tools/eslint/node_modules/eslint-plugin-markdown/package.json index bf0bf1ca703e8c..54d03e7a41309a 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/package.json +++ b/tools/eslint/node_modules/eslint-plugin-markdown/package.json @@ -1,28 +1,28 @@ { - "_from": "eslint-plugin-markdown@1.0.0-beta.4", - "_id": "eslint-plugin-markdown@1.0.0-beta.4", + "_from": "eslint-plugin-markdown@1.0.0-beta.7", + "_id": "eslint-plugin-markdown@1.0.0-beta.7", "_inBundle": false, - "_integrity": "sha1-gqGZcTmeSxti99SsZCRofCwH7no=", + "_integrity": "sha1-Euc6QSfEpLedlm+fR1hR3Q949+c=", "_location": "/eslint-plugin-markdown", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "eslint-plugin-markdown@1.0.0-beta.4", + "raw": "eslint-plugin-markdown@1.0.0-beta.7", "name": "eslint-plugin-markdown", "escapedName": "eslint-plugin-markdown", - "rawSpec": "1.0.0-beta.4", + "rawSpec": "1.0.0-beta.7", "saveSpec": null, - "fetchSpec": "1.0.0-beta.4" + "fetchSpec": "1.0.0-beta.7" }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.4.tgz", - "_shasum": "82a19971399e4b1b62f7d4ac6424687c2c07ee7a", - "_spec": "eslint-plugin-markdown@1.0.0-beta.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.7.tgz", + "_shasum": "12e73a4127c4a4b79d966f9f475851dd0f78f7e7", + "_spec": "eslint-plugin-markdown@1.0.0-beta.7", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint", "author": { "name": "Brandon Mills", "url": "https://github.com/btmills" @@ -33,8 +33,8 @@ "bundleDependencies": false, "dependencies": { "object-assign": "^4.0.1", - "parse5": "^2.2.2", - "remark": "^5.0.0" + "remark-parse": "^3.0.0", + "unified": "^6.1.2" }, "deprecated": false, "description": "An ESLint plugin to lint JavaScript in Markdown code fences.", @@ -42,13 +42,14 @@ "chai": "^3.0.0", "eslint": "^2.2.0", "eslint-config-eslint": "^3.0.0", + "eslint-release": "^0.10.2", + "istanbul": "^0.4.5", "mocha": "^2.2.5" }, "files": [ - "lib/*.js", "index.js", - "LICENSE", - "README.md" + "lib/index.js", + "lib/processor.js" ], "homepage": "https://github.com/eslint/eslint-plugin-markdown#readme", "keywords": [ @@ -66,7 +67,14 @@ "url": "git+https://github.com/eslint/eslint-plugin-markdown.git" }, "scripts": { - "test": "eslint --ext .js --ext .md . && mocha tests" + "alpharelease": "eslint-prerelease alpha", + "betarelease": "eslint-prerelease beta", + "ci-release": "eslint-ci-release", + "gh-release": "eslint-gh-release", + "lint": "eslint Makefile.js lib/**/*.js tests/lib/plugin.js", + "release": "eslint-release", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover _mocha -- -c tests/lib/**/*.js" }, - "version": "1.0.0-beta.4" + "version": "1.0.0-beta.7" } diff --git a/tools/eslint/node_modules/parse5/LICENSE b/tools/eslint/node_modules/is-buffer/LICENSE similarity index 92% rename from tools/eslint/node_modules/parse5/LICENSE rename to tools/eslint/node_modules/is-buffer/LICENSE index 120d532f4af34e..0c068ceecbd48f 100644 --- a/tools/eslint/node_modules/parse5/LICENSE +++ b/tools/eslint/node_modules/is-buffer/LICENSE @@ -1,4 +1,6 @@ -Copyright (c) 2013-2016 Ivan Nikulin (ifaaan@gmail.com, https://github.com/inikulin) +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/eslint/node_modules/is-buffer/README.md b/tools/eslint/node_modules/is-buffer/README.md new file mode 100644 index 00000000000000..cb6f356d5a95a0 --- /dev/null +++ b/tools/eslint/node_modules/is-buffer/README.md @@ -0,0 +1,49 @@ +# is-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][npm-url] + +#### Determine if an object is a [`Buffer`](http://nodejs.org/api/buffer.html) (including the [browserify Buffer](https://github.com/feross/buffer)) + +[![saucelabs][saucelabs-image]][saucelabs-url] + +[travis-image]: https://img.shields.io/travis/feross/is-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/is-buffer +[npm-image]: https://img.shields.io/npm/v/is-buffer.svg +[npm-url]: https://npmjs.org/package/is-buffer +[downloads-image]: https://img.shields.io/npm/dm/is-buffer.svg +[saucelabs-image]: https://saucelabs.com/browser-matrix/is-buffer.svg +[saucelabs-url]: https://saucelabs.com/u/is-buffer + +## Why not use `Buffer.isBuffer`? + +This module lets you check if an object is a `Buffer` without using `Buffer.isBuffer` (which includes the whole [buffer](https://github.com/feross/buffer) module in [browserify](http://browserify.org/)). + +It's future-proof and works in node too! + +## install + +```bash +npm install is-buffer +``` + +## usage + +```js +var isBuffer = require('is-buffer') + +isBuffer(new Buffer(4)) // true + +isBuffer(undefined) // false +isBuffer(null) // false +isBuffer('') // false +isBuffer(true) // false +isBuffer(false) // false +isBuffer(0) // false +isBuffer(1) // false +isBuffer(1.0) // false +isBuffer('string') // false +isBuffer({}) // false +isBuffer(function foo () {}) // false +``` + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org). diff --git a/tools/eslint/node_modules/is-buffer/index.js b/tools/eslint/node_modules/is-buffer/index.js new file mode 100644 index 00000000000000..36c808ea7579c2 --- /dev/null +++ b/tools/eslint/node_modules/is-buffer/index.js @@ -0,0 +1,21 @@ +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} + +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} diff --git a/tools/eslint/node_modules/is-buffer/package.json b/tools/eslint/node_modules/is-buffer/package.json new file mode 100644 index 00000000000000..f9440208bc0262 --- /dev/null +++ b/tools/eslint/node_modules/is-buffer/package.json @@ -0,0 +1,77 @@ +{ + "_from": "is-buffer@^1.1.4", + "_id": "is-buffer@1.1.5", + "_inBundle": false, + "_integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "_location": "/is-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-buffer@^1.1.4", + "name": "is-buffer", + "escapedName": "is-buffer", + "rawSpec": "^1.1.4", + "saveSpec": null, + "fetchSpec": "^1.1.4" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/vfile" + ], + "_resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "_shasum": "1f3b26ef613b214b88cbca23cc6c01d87961eecc", + "_spec": "is-buffer@^1.1.4", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\vfile", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org/" + }, + "bugs": { + "url": "https://github.com/feross/is-buffer/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Determine if an object is a Buffer", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0", + "zuul": "^3.0.0" + }, + "homepage": "https://github.com/feross/is-buffer#readme", + "keywords": [ + "buffer", + "buffers", + "type", + "core buffer", + "browser buffer", + "browserify", + "typed array", + "uint32array", + "int16array", + "int32array", + "float32array", + "float64array", + "browser", + "arraybuffer", + "dataview" + ], + "license": "MIT", + "main": "index.js", + "name": "is-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/is-buffer.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "zuul -- test/*.js", + "test-browser-local": "zuul --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "testling": { + "files": "test/*.js" + }, + "version": "1.1.5" +} diff --git a/tools/eslint/node_modules/is-plain-obj/index.js b/tools/eslint/node_modules/is-plain-obj/index.js new file mode 100644 index 00000000000000..0d1ba9eeb89723 --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/index.js @@ -0,0 +1,7 @@ +'use strict'; +var toString = Object.prototype.toString; + +module.exports = function (x) { + var prototype; + return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({})); +}; diff --git a/tools/eslint/node_modules/is-plain-obj/license b/tools/eslint/node_modules/is-plain-obj/license new file mode 100644 index 00000000000000..654d0bfe943437 --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/eslint/node_modules/is-plain-obj/package.json b/tools/eslint/node_modules/is-plain-obj/package.json new file mode 100644 index 00000000000000..697b7e70c9032a --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/package.json @@ -0,0 +1,68 @@ +{ + "_from": "is-plain-obj@^1.1.0", + "_id": "is-plain-obj@1.1.0", + "_inBundle": false, + "_integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "_location": "/is-plain-obj", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-plain-obj@^1.1.0", + "name": "is-plain-obj", + "escapedName": "is-plain-obj", + "rawSpec": "^1.1.0", + "saveSpec": null, + "fetchSpec": "^1.1.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/unified" + ], + "_resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "_shasum": "71a50c8429dfca773c92a390a4a03b39fcd51d3e", + "_spec": "is-plain-obj@^1.1.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\unified", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-plain-obj/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Check if a value is a plain object", + "devDependencies": { + "ava": "0.0.4" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/is-plain-obj#readme", + "keywords": [ + "obj", + "object", + "is", + "check", + "test", + "type", + "plain", + "vanilla", + "pure", + "simple" + ], + "license": "MIT", + "name": "is-plain-obj", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-plain-obj.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.1.0" +} diff --git a/tools/eslint/node_modules/is-plain-obj/readme.md b/tools/eslint/node_modules/is-plain-obj/readme.md new file mode 100644 index 00000000000000..269e56aeff0646 --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/readme.md @@ -0,0 +1,35 @@ +# is-plain-obj [![Build Status](https://travis-ci.org/sindresorhus/is-plain-obj.svg?branch=master)](https://travis-ci.org/sindresorhus/is-plain-obj) + +> Check if a value is a plain object + +An object is plain if it's created by either `{}`, `new Object()` or `Object.create(null)`. + + +## Install + +``` +$ npm install --save is-plain-obj +``` + + +## Usage + +```js +var isPlainObj = require('is-plain-obj'); + +isPlainObj({foo: 'bar'}); +//=> true + +isPlainObj([1, 2, 3]); +//=> false +``` + + +## Related + +- [is-obj](https://github.com/sindresorhus/is-obj) - Check if a value is an object + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/tools/eslint/node_modules/ccount/LICENSE b/tools/eslint/node_modules/is-whitespace-character/LICENSE similarity index 94% rename from tools/eslint/node_modules/ccount/LICENSE rename to tools/eslint/node_modules/is-whitespace-character/LICENSE index 32e7a3d93ca5a2..8d8660d36ef2ec 100644 --- a/tools/eslint/node_modules/ccount/LICENSE +++ b/tools/eslint/node_modules/is-whitespace-character/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2015 Titus Wormer +Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/tools/eslint/node_modules/longest-streak/history.md b/tools/eslint/node_modules/is-whitespace-character/history.md similarity index 59% rename from tools/eslint/node_modules/longest-streak/history.md rename to tools/eslint/node_modules/is-whitespace-character/history.md index 654a34d89a391f..674e111c479ebb 100644 --- a/tools/eslint/node_modules/longest-streak/history.md +++ b/tools/eslint/node_modules/is-whitespace-character/history.md @@ -1,9 +1,6 @@ ---- -mdast: - setext: true ---- + -1.0.0 / 2015-07-12 +1.0.0 / 2016-07-12 ================== diff --git a/tools/eslint/node_modules/is-whitespace-character/index.js b/tools/eslint/node_modules/is-whitespace-character/index.js new file mode 100644 index 00000000000000..f9e23df3f72b0b --- /dev/null +++ b/tools/eslint/node_modules/is-whitespace-character/index.js @@ -0,0 +1,33 @@ +/** + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT + * @module is-whitespace-character + * @fileoverview Check if a character is a whitespace character. + */ + +'use strict'; + +/* eslint-env commonjs */ + +/* Expose. */ +module.exports = whitespace; + +/* Methods. */ +var fromCode = String.fromCharCode; + +/* Constants. */ +var re = /\s/; + +/** + * Check whether the given character code, or the character + * code at the first character, is a whitespace character. + * + * @param {string|number} character + * @return {boolean} - Whether `character` is a whitespaces character. + */ +function whitespace(character) { + return re.test( + typeof character === 'number' ? fromCode(character) : character.charAt(0) + ); +} diff --git a/tools/eslint/node_modules/is-whitespace-character/package.json b/tools/eslint/node_modules/is-whitespace-character/package.json new file mode 100644 index 00000000000000..d70f094f556af5 --- /dev/null +++ b/tools/eslint/node_modules/is-whitespace-character/package.json @@ -0,0 +1,111 @@ +{ + "_from": "is-whitespace-character@^1.0.0", + "_id": "is-whitespace-character@1.0.0", + "_inBundle": false, + "_integrity": "sha1-u/SoN2Tq0NRRvsKlUhjpGWGtwnU=", + "_location": "/is-whitespace-character", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-whitespace-character@^1.0.0", + "name": "is-whitespace-character", + "escapedName": "is-whitespace-character", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/remark-parse" + ], + "_resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.0.tgz", + "_shasum": "bbf4a83764ead0d451bec2a55218e91961adc275", + "_spec": "is-whitespace-character@^1.0.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\remark-parse", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/is-whitespace-character/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Check if a character is a whitespace character", + "devDependencies": { + "browserify": "^13.0.1", + "esmangle": "^1.0.1", + "nyc": "^7.0.0", + "remark-cli": "^1.0.0", + "remark-comment-config": "^4.0.0", + "remark-github": "^5.0.0", + "remark-lint": "^4.0.0", + "remark-validate-links": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.16.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/wooorm/is-whitespace-character#readme", + "keywords": [ + "string", + "character", + "char", + "code", + "whitespace", + "white", + "space" + ], + "license": "MIT", + "name": "is-whitespace-character", + "nyc": { + "check-coverage": true, + "lines": 100, + "functions": 100, + "branches": 100 + }, + "remarkConfig": { + "output": true, + "plugins": [ + "comment-config", + "github", + "lint", + "validate-links" + ], + "settings": { + "bullet": "*" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/is-whitespace-character.git" + }, + "scripts": { + "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.js --bare -s isWhitespaceCharacter > is-whitespace-character.js", + "build-mangle": "esmangle < is-whitespace-character.js > is-whitespace-character.min.js", + "build-md": "remark . --quiet --frail", + "lint": "xo", + "test": "npm run build && npm run lint && npm run test-coverage", + "test-api": "node test", + "test-coverage": "nyc --reporter lcov tape test.js" + }, + "version": "1.0.0", + "xo": { + "space": true, + "ignores": [ + "is-whitespace-character.js", + "is-whitespace-character.min.js" + ] + } +} diff --git a/tools/eslint/node_modules/is-whitespace-character/readme.md b/tools/eslint/node_modules/is-whitespace-character/readme.md new file mode 100644 index 00000000000000..c2ac49c21300e8 --- /dev/null +++ b/tools/eslint/node_modules/is-whitespace-character/readme.md @@ -0,0 +1,63 @@ +# is-whitespace-character [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] + + + +Check if a character is a whitespace character: `\s`, which equals +all Unicode Space Separators (including `[ \t\v\f]`), the BOM +(`\uFEFF`), and line terminator (`[\n\r\u2028\u2029]`). + +## Installation + +[npm][npm-install]: + +```bash +npm install is-whitespace-character +``` + +## Usage + +```javascript +var whitespace = require('is-whitespace-character'); + +whitespace(' '); // true +whitespace('\n'); // true +whitespace('\ufeff'); // true +whitespace('_'); // false +whitespace('a'); // true +whitespace('💩'); // false +``` + +## API + +### `whitespaceCharacter(character)` + +Check whether the given character code (`number`), or the character +code at the first position (`string`), is a whitespace character. + +## Related + +* [`is-alphabetical`](https://github.com/wooorm/is-alphabetical) +* [`is-alphanumerical`](https://github.com/wooorm/is-alphanumerical) +* [`is-decimal`](https://github.com/wooorm/is-decimal) +* [`is-hexadecimal`](https://github.com/wooorm/is-hexadecimal) +* [`is-word-character`](https://github.com/wooorm/is-word-character) + +## License + +[MIT][license] © [Titus Wormer][author] + + + +[travis-badge]: https://img.shields.io/travis/wooorm/is-whitespace-character.svg + +[travis]: https://travis-ci.org/wooorm/is-whitespace-character + +[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/is-whitespace-character.svg + +[codecov]: https://codecov.io/github/wooorm/is-whitespace-character + +[npm-install]: https://docs.npmjs.com/cli/install + +[license]: LICENSE + +[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/character-entities-html4/LICENSE b/tools/eslint/node_modules/is-word-character/LICENSE similarity index 94% rename from tools/eslint/node_modules/character-entities-html4/LICENSE rename to tools/eslint/node_modules/is-word-character/LICENSE index 32e7a3d93ca5a2..8d8660d36ef2ec 100644 --- a/tools/eslint/node_modules/character-entities-html4/LICENSE +++ b/tools/eslint/node_modules/is-word-character/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2015 Titus Wormer +Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/tools/eslint/node_modules/is-word-character/history.md b/tools/eslint/node_modules/is-word-character/history.md new file mode 100644 index 00000000000000..674e111c479ebb --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/history.md @@ -0,0 +1,6 @@ + + + + +1.0.0 / 2016-07-12 +================== diff --git a/tools/eslint/node_modules/is-word-character/index.js b/tools/eslint/node_modules/is-word-character/index.js new file mode 100644 index 00000000000000..c2f9c3fd05992c --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/index.js @@ -0,0 +1,33 @@ +/** + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT + * @module is-word-character + * @fileoverview Check if a character is a word character. + */ + +'use strict'; + +/* eslint-env commonjs */ + +/* Expose. */ +module.exports = wordCharacter; + +/* Methods. */ +var fromCode = String.fromCharCode; + +/* Constants. */ +var re = /\w/; + +/** + * Check whether the given character code, or the character + * code at the first character, is a word character. + * + * @param {string|number} character + * @return {boolean} - Whether `character` is a word character. + */ +function wordCharacter(character) { + return re.test( + typeof character === 'number' ? fromCode(character) : character.charAt(0) + ); +} diff --git a/tools/eslint/node_modules/is-word-character/package.json b/tools/eslint/node_modules/is-word-character/package.json new file mode 100644 index 00000000000000..61aee67a54ebb3 --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/package.json @@ -0,0 +1,109 @@ +{ + "_from": "is-word-character@^1.0.0", + "_id": "is-word-character@1.0.0", + "_inBundle": false, + "_integrity": "sha1-o6nl3a1wxcLuNvSpz8mlP0RTUkc=", + "_location": "/is-word-character", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-word-character@^1.0.0", + "name": "is-word-character", + "escapedName": "is-word-character", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/remark-parse" + ], + "_resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.0.tgz", + "_shasum": "a3a9e5ddad70c5c2ee36f4a9cfc9a53f44535247", + "_spec": "is-word-character@^1.0.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\remark-parse", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/is-word-character/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Check if a character is a word character", + "devDependencies": { + "browserify": "^13.0.1", + "esmangle": "^1.0.1", + "nyc": "^7.0.0", + "remark-cli": "^1.0.0", + "remark-comment-config": "^4.0.0", + "remark-github": "^5.0.0", + "remark-lint": "^4.0.0", + "remark-validate-links": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.16.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/wooorm/is-word-character#readme", + "keywords": [ + "string", + "character", + "char", + "code", + "word" + ], + "license": "MIT", + "name": "is-word-character", + "nyc": { + "check-coverage": true, + "lines": 100, + "functions": 100, + "branches": 100 + }, + "remarkConfig": { + "output": true, + "plugins": [ + "comment-config", + "github", + "lint", + "validate-links" + ], + "settings": { + "bullet": "*" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/is-word-character.git" + }, + "scripts": { + "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.js --bare -s isWordCharacter > is-word-character.js", + "build-mangle": "esmangle < is-word-character.js > is-word-character.min.js", + "build-md": "remark . --quiet --frail", + "lint": "xo", + "test": "npm run build && npm run lint && npm run test-coverage", + "test-api": "node test", + "test-coverage": "nyc --reporter lcov tape test.js" + }, + "version": "1.0.0", + "xo": { + "space": true, + "ignores": [ + "is-word-character.js", + "is-word-character.min.js" + ] + } +} diff --git a/tools/eslint/node_modules/is-word-character/readme.md b/tools/eslint/node_modules/is-word-character/readme.md new file mode 100644 index 00000000000000..4a0a25fd299d77 --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/readme.md @@ -0,0 +1,62 @@ +# is-word-character [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] + + + +Check if a character is a word character (`\w`, which equals +`[a-zA-Z0-9_]`). + +## Installation + +[npm][npm-install]: + +```bash +npm install is-word-character +``` + +## Usage + +```javascript +var wordCharacter = require('is-word-character'); + +wordCharacter('a'); // true +wordCharacter('Z'); // true +wordCharacter('0'); // true +wordCharacter('_'); // true +wordCharacter(' '); // false +wordCharacter('💩'); // false +``` + +## API + +### `wordCharacter(character)` + +Check whether the given character code (`number`), or the character +code at the first position (`string`), is a word character. + +## Related + +* [`is-alphabetical`](https://github.com/wooorm/is-alphabetical) +* [`is-alphanumerical`](https://github.com/wooorm/is-alphanumerical) +* [`is-decimal`](https://github.com/wooorm/is-decimal) +* [`is-hexadecimal`](https://github.com/wooorm/is-hexadecimal) +* [`is-whitespace-character`](https://github.com/wooorm/is-whitespace-character) + +## License + +[MIT][license] © [Titus Wormer][author] + + + +[travis-badge]: https://img.shields.io/travis/wooorm/is-word-character.svg + +[travis]: https://travis-ci.org/wooorm/is-word-character + +[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/is-word-character.svg + +[codecov]: https://codecov.io/github/wooorm/is-word-character + +[npm-install]: https://docs.npmjs.com/cli/install + +[license]: LICENSE + +[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/longest-streak/index.js b/tools/eslint/node_modules/longest-streak/index.js deleted file mode 100644 index 719d5168603e4f..00000000000000 --- a/tools/eslint/node_modules/longest-streak/index.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -/** - * Get the count of the longest repeating streak of - * `character` in `value`. - * - * @example - * longestStreak('` foo `` bar `', '`') // 2 - * - * @param {string} value - Content, coerced to string. - * @param {string} character - Single character to look - * for. - * @return {number} - Number of characters at the place - * where `character` occurs in its longest streak in - * `value`. - * @throws {Error} - when `character` is not a single - * character. - */ -function longestStreak(value, character) { - var count = 0; - var maximum = 0; - var index = -1; - var length; - - value = String(value); - length = value.length; - - if (typeof character !== 'string' || character.length !== 1) { - throw new Error('Expected character'); - } - - while (++index < length) { - if (value.charAt(index) === character) { - count++; - - if (count > maximum) { - maximum = count; - } - } else { - count = 0; - } - } - - return maximum; -} - -/* - * Expose. - */ - -module.exports = longestStreak; diff --git a/tools/eslint/node_modules/longest-streak/package.json b/tools/eslint/node_modules/longest-streak/package.json deleted file mode 100644 index e9af0ed2d72cac..00000000000000 --- a/tools/eslint/node_modules/longest-streak/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_from": "longest-streak@^1.0.0", - "_id": "longest-streak@1.0.0", - "_inBundle": false, - "_integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=", - "_location": "/longest-streak", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "longest-streak@^1.0.0", - "name": "longest-streak", - "escapedName": "longest-streak", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/remark-stringify" - ], - "_resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", - "_shasum": "d06597c4d4c31b52ccb1f5d8f8fe7148eafd6965", - "_spec": "longest-streak@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", - "author": { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com" - }, - "bugs": { - "url": "https://github.com/wooorm/longest-streak/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Count the longest repeating streak of a character", - "devDependencies": { - "browserify": "^10.0.0", - "eslint": "^0.24.0", - "esmangle": "^1.0.0", - "istanbul": "^0.3.0", - "jscs": "^1.0.0", - "jscs-jsdoc": "^1.0.0", - "mdast": "^0.26.0", - "mdast-github": "^0.3.1", - "mdast-lint": "^0.4.1", - "mdast-yaml-config": "^0.2.0", - "mocha": "^2.0.0" - }, - "files": [ - "index.js", - "LICENSE" - ], - "homepage": "https://github.com/wooorm/longest-streak#readme", - "keywords": [ - "count", - "length", - "longest", - "repeating", - "streak", - "character" - ], - "license": "MIT", - "name": "longest-streak", - "repository": { - "type": "git", - "url": "git+https://github.com/wooorm/longest-streak.git" - }, - "scripts": { - "build": "npm run build-md && npm run build-bundle", - "build-bundle": "browserify index.js --bare -s longestStreak > longest-streak.js", - "build-md": "mdast . LICENSE --output --quiet", - "lint": "npm run lint-api && npm run lint-style", - "lint-api": "eslint .", - "lint-style": "jscs --reporter inline .", - "make": "npm run lint && npm run test-coverage", - "postbuild-bundle": "esmangle longest-streak.js > longest-streak.min.js", - "test": "npm run test-api", - "test-api": "mocha --check-leaks test.js", - "test-coverage": "istanbul cover _mocha -- --check-leaks test.js", - "test-coveralls": "istanbul cover _mocha --report lcovonly -- --check-leaks test.js", - "test-travis": "npm run test-coveralls" - }, - "version": "1.0.0" -} diff --git a/tools/eslint/node_modules/longest-streak/readme.md b/tools/eslint/node_modules/longest-streak/readme.md deleted file mode 100644 index 780c53cf7b1eda..00000000000000 --- a/tools/eslint/node_modules/longest-streak/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# longest-streak [![Build Status](https://img.shields.io/travis/wooorm/longest-streak.svg?style=flat)](https://travis-ci.org/wooorm/longest-streak) [![Coverage Status](https://img.shields.io/coveralls/wooorm/longest-streak.svg?style=flat)](https://coveralls.io/r/wooorm/longest-streak?branch=master) - -Count the longest repeating streak of a character. - -## Installation - -[npm](https://docs.npmjs.com/cli/install): - -```bash -npm install longest-streak -``` - -**longest-streak** is also available for [bower](http://bower.io/#install-packages), -[component](https://github.com/componentjs/component), [duo](http://duojs.org/#getting-started), -and for AMD, CommonJS, and globals ([uncompressed](longest-streak.js) and -[compressed](longest-streak.min.js)). - -## Usage - -Dependencies. - -```javascript -var longestStreak = require('longest-streak'); -``` - -Process: - -```javascript -longestStreak('` foo `` bar `', '`') // 2 -``` - -## API - -### longestStreak(value, character) - -Get the count of the longest repeating streak of `character` in `value`. - -Parameters: - -* `value` (`string`) — Content, coerced to string. -* `character` (`string`) — Single character to look for. - -Returns: `number` — Number of characters at the place where `character` -occurs in its longest streak in `value`. - -Throws: - -* `Error` — when `character` is not a single character string. - -## License - -[MIT](LICENSE) @ [Titus Wormer](http://wooorm.com) diff --git a/tools/eslint/node_modules/markdown-table/LICENSE b/tools/eslint/node_modules/markdown-escapes/LICENSE similarity index 94% rename from tools/eslint/node_modules/markdown-table/LICENSE rename to tools/eslint/node_modules/markdown-escapes/LICENSE index ce731a9cb02e09..8d8660d36ef2ec 100644 --- a/tools/eslint/node_modules/markdown-table/LICENSE +++ b/tools/eslint/node_modules/markdown-escapes/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2014-2015 Titus Wormer +Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/tools/eslint/node_modules/markdown-escapes/history.md b/tools/eslint/node_modules/markdown-escapes/history.md new file mode 100644 index 00000000000000..f20d5035693db5 --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/history.md @@ -0,0 +1,6 @@ + + + + +1.0.0 / 2016-07-16 +================== diff --git a/tools/eslint/node_modules/markdown-escapes/index.js b/tools/eslint/node_modules/markdown-escapes/index.js new file mode 100644 index 00000000000000..38f81193e81238 --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/index.js @@ -0,0 +1,75 @@ +/** + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT + * @module markdown-escapes + * @fileoverview List of escapable characters in markdown. + */ + +'use strict'; + +/* eslint-env commonjs */ + +/* Expose. */ +module.exports = escapes; + +/* Characters. */ +var defaults = [ + '\\', + '`', + '*', + '{', + '}', + '[', + ']', + '(', + ')', + '#', + '+', + '-', + '.', + '!', + '_', + '>' +]; + +var gfm = defaults.concat(['~', '|']); + +var commonmark = gfm.concat([ + '\n', + '"', + '$', + '%', + '&', + '\'', + ',', + '/', + ':', + ';', + '<', + '=', + '?', + '@', + '^' +]); + +/* Expose characters. */ +escapes.default = defaults; +escapes.gfm = gfm; +escapes.commonmark = commonmark; + +/** + * Get markdown escapes. + * + * @param {Object?} [options] - Configuration. + * @return {Array.} - Escapes. + */ +function escapes(options) { + var settings = options || {}; + + if (settings.commonmark) { + return commonmark; + } + + return settings.gfm ? gfm : defaults; +} diff --git a/tools/eslint/node_modules/markdown-escapes/package.json b/tools/eslint/node_modules/markdown-escapes/package.json new file mode 100644 index 00000000000000..2ed7bc0ffdbafb --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/package.json @@ -0,0 +1,109 @@ +{ + "_from": "markdown-escapes@^1.0.0", + "_id": "markdown-escapes@1.0.0", + "_inBundle": false, + "_integrity": "sha1-yMoZ8dlNaCRZ4Kk8htsnp+9xayM=", + "_location": "/markdown-escapes", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "markdown-escapes@^1.0.0", + "name": "markdown-escapes", + "escapedName": "markdown-escapes", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/remark-parse" + ], + "_resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.0.tgz", + "_shasum": "c8ca19f1d94d682459e0a93c86db27a7ef716b23", + "_spec": "markdown-escapes@^1.0.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\remark-parse", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/markdown-escapes/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "List of escapable characters in markdown", + "devDependencies": { + "browserify": "^13.0.1", + "esmangle": "^1.0.1", + "nyc": "^7.0.0", + "remark-cli": "^1.0.0", + "remark-comment-config": "^4.0.0", + "remark-github": "^5.0.0", + "remark-lint": "^4.0.0", + "remark-validate-links": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.16.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/wooorm/markdown-escapes#readme", + "keywords": [ + "markdown", + "escape", + "pedantic", + "gfm", + "commonmark" + ], + "license": "MIT", + "name": "markdown-escapes", + "nyc": { + "check-coverage": true, + "lines": 100, + "functions": 100, + "branches": 100 + }, + "remarkConfig": { + "output": true, + "plugins": [ + "comment-config", + "github", + "lint", + "validate-links" + ], + "settings": { + "bullet": "*" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/markdown-escapes.git" + }, + "scripts": { + "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.js --bare -s markdownEscapes > markdown-escapes.js", + "build-mangle": "esmangle < markdown-escapes.js > markdown-escapes.min.js", + "build-md": "remark . --quiet --frail", + "lint": "xo", + "test": "npm run build && npm run lint && npm run test-coverage", + "test-api": "node test", + "test-coverage": "nyc --reporter lcov tape test.js" + }, + "version": "1.0.0", + "xo": { + "space": true, + "ignores": [ + "markdown-escapes.js", + "markdown-escapes.min.js" + ] + } +} diff --git a/tools/eslint/node_modules/markdown-escapes/readme.md b/tools/eslint/node_modules/markdown-escapes/readme.md new file mode 100644 index 00000000000000..8ab33f397d289d --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/readme.md @@ -0,0 +1,71 @@ +# markdown-escapes [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] + + + +List of escapable characters in markdown. + +## Installation + +[npm][npm-install]: + +```bash +npm install markdown-escapes +``` + +## Usage + +```javascript +var escapes = require('markdown-escapes'); + +// Access by property: +escapes.commonmark; +// ['\\', '`', ..., '@', '^'] + +// Access by options object: +escapes({gfm: true}); +// ['\\', '`', ..., '~', '|'] +``` + +## API + +### `escapes([options])` + +Get escapes. Supports `options.commonmark` and `options.gfm`, which +when `true` returns the extra escape characters supported by those +flavours. + +###### Returns + +`Array.`. + +### `escapes.default` + +List of default escapable characters. + +### `escapes.gfm` + +List of escapable characters in GFM (which includes all `default`s). + +### `escapes.commonmark` + +List of escapable characters in CommonMark (which includes all `gfm`s). + +## License + +[MIT][license] © [Titus Wormer][author] + + + +[travis-badge]: https://img.shields.io/travis/wooorm/markdown-escapes.svg + +[travis]: https://travis-ci.org/wooorm/markdown-escapes + +[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/markdown-escapes.svg + +[codecov]: https://codecov.io/github/wooorm/markdown-escapes + +[npm-install]: https://docs.npmjs.com/cli/install + +[license]: LICENSE + +[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/markdown-table/Readme.md b/tools/eslint/node_modules/markdown-table/Readme.md deleted file mode 100644 index 9931cc11d2fa4b..00000000000000 --- a/tools/eslint/node_modules/markdown-table/Readme.md +++ /dev/null @@ -1,132 +0,0 @@ -# markdown-table [![Build Status](https://img.shields.io/travis/wooorm/markdown-table.svg?style=flat)](https://travis-ci.org/wooorm/markdown-table) [![Coverage Status](https://img.shields.io/coveralls/wooorm/markdown-table.svg?style=flat)](https://coveralls.io/r/wooorm/markdown-table?branch=master) - -Generate fancy [Markdown](https://help.github.com/articles/github-flavored-markdown/#tables)/ASCII tables. - -## Installation - -[npm](https://docs.npmjs.com/cli/install): - -```bash -$ npm install markdown-table -``` - -[Component.js](https://github.com/componentjs/component): - -```bash -$ component install wooorm/markdown-table -``` - -[Bower](http://bower.io/#install-packages): - -```bash -$ bower install markdown-table -``` - -[Duo](http://duojs.org/#getting-started): - -```javascript -var table = require('wooorm/markdown-table'); -``` - -## Usage - -```javascript -var table = require('markdown-table'); - -/** - * Normal usage (defaults to left-alignment): - */ - -table([ - ['Branch', 'Commit'], - ['master', '0123456789abcdef'], - ['staging', 'fedcba9876543210'] -]); -/* - * | Branch | Commit | - * | ------- | ---------------- | - * | master | 0123456789abcdef | - * | staging | fedcba9876543210 | - */ - -/** - * With alignment: - */ - -table([ - ['Beep', 'No.', 'Boop'], - ['beep', '1024', 'xyz'], - ['boop', '3388450', 'tuv'], - ['foo', '10106', 'qrstuv'], - ['bar', '45', 'lmno'] -], { - 'align': ['l', 'c', 'r'] -}); -/* - * | Beep | No. | Boop | - * | :--- | :-----: | -----: | - * | beep | 1024 | xyz | - * | boop | 3388450 | tuv | - * | foo | 10106 | qrstuv | - * | bar | 45 | lmno | - */ - -/** - * Alignment on dots: - */ - -table([ - ['No.'], - ['0.1.2'], - ['11.22.33'], - ['5.6.'], - ['1.22222'], -], { - 'align': '.' -}); -/* - * | No. | - * | :---------: | - * | 0.1.2 | - * | 11.22.33 | - * | 5.6. | - * | 1.22222 | - */ -``` - -## API - -### markdownTable(table, options?) - -Turns a given matrix of strings (an array of arrays of strings) into a table. - -The following options are available: - -- `options.align` — String or array of strings, the strings being either `"l"` (left), `"r"` (right), `c` (center), or `.` (dot). Other values are treated as `""`, which doesn’t place the colon but does left align. _Only the lowercased first character is used, so `Right` is fine_; -- `options.delimiter` — Value to insert between cells. Carefull, non-pipe values will break GitHub Flavored Markdown; -- `options.start` — Value to insert at the beginning of every row. -- `options.end` — Value to insert at the end of every row. -- `options.rule` — Whether to display a rule between the header and the body of the table. Carefull, will break GitHub Flavored Markdown when `false`; -- `options.stringLength` — The method to detect the length of a cell (see below). - -### options.stringLength(cell) - -ANSI-sequences mess up tables on terminals. To fix this, you have to pass in a `stringLength` option to detect the “visible” length of a cell. - -```javascript -var chalk = require('chalk'); - -function stringLength(cell) { - return chalk.stripColor(cell).length; -} -``` - -See the [tests for an example](test.js#L368-L375). - -## Inspiration - -The original idea and basic implementation was inspired by James Halliday's [text-table](https://github.com/substack/text-table) library. - -## License - -[MIT](LICENSE) © [Titus Wormer](http://wooorm.com) diff --git a/tools/eslint/node_modules/markdown-table/index.js b/tools/eslint/node_modules/markdown-table/index.js deleted file mode 100644 index 8b64246a2d4cce..00000000000000 --- a/tools/eslint/node_modules/markdown-table/index.js +++ /dev/null @@ -1,284 +0,0 @@ -'use strict'; - -/* - * Useful expressions. - */ - -var EXPRESSION_DOT = /\./; -var EXPRESSION_LAST_DOT = /\.[^.]*$/; - -/* - * Allowed alignment values. - */ - -var LEFT = 'l'; -var RIGHT = 'r'; -var CENTER = 'c'; -var DOT = '.'; -var NULL = ''; - -var ALLIGNMENT = [LEFT, RIGHT, CENTER, DOT, NULL]; - -/* - * Characters. - */ - -var COLON = ':'; -var DASH = '-'; -var PIPE = '|'; -var SPACE = ' '; -var NEW_LINE = '\n'; - -/** - * Get the length of `value`. - * - * @param {string} value - * @return {number} - */ -function lengthNoop(value) { - return String(value).length; -} - -/** - * Get a string consisting of `length` `character`s. - * - * @param {number} length - * @param {string} [character=' '] - * @return {string} - */ -function pad(length, character) { - return Array(length + 1).join(character || SPACE); -} - -/** - * Get the position of the last dot in `value`. - * - * @param {string} value - * @return {number} - */ -function dotindex(value) { - var match = EXPRESSION_LAST_DOT.exec(value); - - return match ? match.index + 1 : value.length; -} - -/** - * Create a table from a matrix of strings. - * - * @param {Array.>} table - * @param {Object?} options - * @param {boolean?} [options.rule=true] - * @param {string?} [options.delimiter=" | "] - * @param {string?} [options.start="| "] - * @param {string?} [options.end=" |"] - * @param {Array.?} options.align - * @param {function(string)?} options.stringLength - * @return {string} Pretty table - */ -function markdownTable(table, options) { - var settings = options || {}; - var delimiter = settings.delimiter; - var start = settings.start; - var end = settings.end; - var alignment = settings.align; - var calculateStringLength = settings.stringLength || lengthNoop; - var cellCount = 0; - var rowIndex = -1; - var rowLength = table.length; - var sizes = []; - var align; - var rule; - var rows; - var row; - var cells; - var index; - var position; - var size; - var value; - var spacing; - var before; - var after; - - alignment = alignment ? alignment.concat() : []; - - if (delimiter === null || delimiter === undefined) { - delimiter = SPACE + PIPE + SPACE; - } - - if (start === null || start === undefined) { - start = PIPE + SPACE; - } - - if (end === null || end === undefined) { - end = SPACE + PIPE; - } - - while (++rowIndex < rowLength) { - row = table[rowIndex]; - - index = -1; - - if (row.length > cellCount) { - cellCount = row.length; - } - - while (++index < cellCount) { - position = row[index] ? dotindex(row[index]) : null; - - if (!sizes[index]) { - sizes[index] = 3; - } - - if (position > sizes[index]) { - sizes[index] = position; - } - } - } - - if (typeof alignment === 'string') { - alignment = pad(cellCount, alignment).split(''); - } - - /* - * Make sure only valid alignments are used. - */ - - index = -1; - - while (++index < cellCount) { - align = alignment[index]; - - if (typeof align === 'string') { - align = align.charAt(0).toLowerCase(); - } - - if (ALLIGNMENT.indexOf(align) === -1) { - align = NULL; - } - - alignment[index] = align; - } - - rowIndex = -1; - rows = []; - - while (++rowIndex < rowLength) { - row = table[rowIndex]; - - index = -1; - cells = []; - - while (++index < cellCount) { - value = row[index]; - - if (value === null || value === undefined) { - value = ''; - } else { - value = String(value); - } - - if (alignment[index] !== DOT) { - cells[index] = value; - } else { - position = dotindex(value); - - size = sizes[index] + - (EXPRESSION_DOT.test(value) ? 0 : 1) - - (calculateStringLength(value) - position); - - cells[index] = value + pad(size - 1); - } - } - - rows[rowIndex] = cells; - } - - sizes = []; - rowIndex = -1; - - while (++rowIndex < rowLength) { - cells = rows[rowIndex]; - - index = -1; - - while (++index < cellCount) { - value = cells[index]; - - if (!sizes[index]) { - sizes[index] = 3; - } - - size = calculateStringLength(value); - - if (size > sizes[index]) { - sizes[index] = size; - } - } - } - - rowIndex = -1; - - while (++rowIndex < rowLength) { - cells = rows[rowIndex]; - - index = -1; - - while (++index < cellCount) { - value = cells[index]; - - position = sizes[index] - (calculateStringLength(value) || 0); - spacing = pad(position); - - if (alignment[index] === RIGHT || alignment[index] === DOT) { - value = spacing + value; - } else if (alignment[index] !== CENTER) { - value = value + spacing; - } else { - position = position / 2; - - if (position % 1 === 0) { - before = position; - after = position; - } else { - before = position + 0.5; - after = position - 0.5; - } - - value = pad(before) + value + pad(after); - } - - cells[index] = value; - } - - rows[rowIndex] = cells.join(delimiter); - } - - if (settings.rule !== false) { - index = -1; - rule = []; - - while (++index < cellCount) { - align = alignment[index]; - - /* - * When `align` is left, don't add colons. - */ - - value = align === RIGHT || align === NULL ? DASH : COLON; - value += pad(sizes[index] - 2, DASH); - value += align !== LEFT && align !== NULL ? COLON : DASH; - - rule[index] = value; - } - - rows.splice(1, 0, rule.join(delimiter)); - } - - return start + rows.join(end + NEW_LINE + start) + end; -} - -/* - * Expose `markdownTable`. - */ - -module.exports = markdownTable; diff --git a/tools/eslint/node_modules/markdown-table/package.json b/tools/eslint/node_modules/markdown-table/package.json deleted file mode 100644 index 49117592fc33b6..00000000000000 --- a/tools/eslint/node_modules/markdown-table/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_from": "markdown-table@^0.4.0", - "_id": "markdown-table@0.4.0", - "_inBundle": false, - "_integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=", - "_location": "/markdown-table", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "markdown-table@^0.4.0", - "name": "markdown-table", - "escapedName": "markdown-table", - "rawSpec": "^0.4.0", - "saveSpec": null, - "fetchSpec": "^0.4.0" - }, - "_requiredBy": [ - "/remark-stringify" - ], - "_resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", - "_shasum": "890c2c1b3bfe83fb00e4129b8e4cfe645270f9d1", - "_spec": "markdown-table@^0.4.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", - "author": { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com" - }, - "bugs": { - "url": "https://github.com/wooorm/markdown-table/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Markdown/ASCII tables", - "devDependencies": { - "chalk": "^1.0.0", - "eslint": "^0.18.0", - "istanbul": "^0.3.0", - "jscs": "^1.0.0", - "jscs-jsdoc": "^0.4.0", - "mocha": "^2.0.0" - }, - "homepage": "https://github.com/wooorm/markdown-table#readme", - "keywords": [ - "text", - "markdown", - "table", - "align", - "ascii", - "rows", - "tabular" - ], - "license": "MIT", - "name": "markdown-table", - "repository": { - "type": "git", - "url": "git+https://github.com/wooorm/markdown-table.git" - }, - "scripts": { - "lint": "npm run lint-api && npm run lint-test && npm run lint-style", - "lint-api": "eslint index.js", - "lint-style": "jscs --reporter inline index.js test.js", - "lint-test": "eslint --env mocha test.js", - "make": "npm run lint && npm run test-coverage", - "test": "npm run test-api", - "test-api": "_mocha --check-leaks test.js", - "test-coverage": "istanbul cover _mocha -- -- test.js", - "test-coveralls": "istanbul cover _mocha --report lcovonly -- --check-leaks test.js", - "test-travis": "npm run test-coveralls" - }, - "version": "0.4.0" -} diff --git a/tools/eslint/node_modules/parse5/README.md b/tools/eslint/node_modules/parse5/README.md deleted file mode 100644 index 7b36f893369992..00000000000000 --- a/tools/eslint/node_modules/parse5/README.md +++ /dev/null @@ -1,40 +0,0 @@ -

- - parse5 - -

- -

-WHATWG HTML5 specification-compliant, fast and ready for production HTML parsing/serialization toolset for Node.js -

- -

- Build Status - NPM Version - Downloads - Downloads total -

- -

-parse5 provides nearly everything you may need when dealing with HTML. It's the fastest spec-compliant HTML parser -for Node to date. It parses HTML the way the latest version of your browser does. It has proven itself reliable in such projects -as jsdom, Angular2, Polymer and many more. -

- ----- - -

- Documentation -

- -

- Version history -

- -

- Online playground -

- -

- Issue tracker -

diff --git a/tools/eslint/node_modules/parse5/lib/common/doctype.js b/tools/eslint/node_modules/parse5/lib/common/doctype.js deleted file mode 100644 index 2c6927a873a719..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/doctype.js +++ /dev/null @@ -1,137 +0,0 @@ -'use strict'; - -//Const -var VALID_DOCTYPE_NAME = 'html', - QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd', - QUIRKS_MODE_PUBLIC_ID_PREFIXES = [ - '+//silmaril//dtd html pro v0r11 19970101//en', - '-//advasoft ltd//dtd html 3.0 aswedit + extensions//en', - '-//as//dtd html 3.0 aswedit + extensions//en', - '-//ietf//dtd html 2.0 level 1//en', - '-//ietf//dtd html 2.0 level 2//en', - '-//ietf//dtd html 2.0 strict level 1//en', - '-//ietf//dtd html 2.0 strict level 2//en', - '-//ietf//dtd html 2.0 strict//en', - '-//ietf//dtd html 2.0//en', - '-//ietf//dtd html 2.1e//en', - '-//ietf//dtd html 3.0//en', - '-//ietf//dtd html 3.0//en//', - '-//ietf//dtd html 3.2 final//en', - '-//ietf//dtd html 3.2//en', - '-//ietf//dtd html 3//en', - '-//ietf//dtd html level 0//en', - '-//ietf//dtd html level 0//en//2.0', - '-//ietf//dtd html level 1//en', - '-//ietf//dtd html level 1//en//2.0', - '-//ietf//dtd html level 2//en', - '-//ietf//dtd html level 2//en//2.0', - '-//ietf//dtd html level 3//en', - '-//ietf//dtd html level 3//en//3.0', - '-//ietf//dtd html strict level 0//en', - '-//ietf//dtd html strict level 0//en//2.0', - '-//ietf//dtd html strict level 1//en', - '-//ietf//dtd html strict level 1//en//2.0', - '-//ietf//dtd html strict level 2//en', - '-//ietf//dtd html strict level 2//en//2.0', - '-//ietf//dtd html strict level 3//en', - '-//ietf//dtd html strict level 3//en//3.0', - '-//ietf//dtd html strict//en', - '-//ietf//dtd html strict//en//2.0', - '-//ietf//dtd html strict//en//3.0', - '-//ietf//dtd html//en', - '-//ietf//dtd html//en//2.0', - '-//ietf//dtd html//en//3.0', - '-//metrius//dtd metrius presentational//en', - '-//microsoft//dtd internet explorer 2.0 html strict//en', - '-//microsoft//dtd internet explorer 2.0 html//en', - '-//microsoft//dtd internet explorer 2.0 tables//en', - '-//microsoft//dtd internet explorer 3.0 html strict//en', - '-//microsoft//dtd internet explorer 3.0 html//en', - '-//microsoft//dtd internet explorer 3.0 tables//en', - '-//netscape comm. corp.//dtd html//en', - '-//netscape comm. corp.//dtd strict html//en', - '-//o\'reilly and associates//dtd html 2.0//en', - '-//o\'reilly and associates//dtd html extended 1.0//en', - '-//spyglass//dtd html 2.0 extended//en', - '-//sq//dtd html 2.0 hotmetal + extensions//en', - '-//sun microsystems corp.//dtd hotjava html//en', - '-//sun microsystems corp.//dtd hotjava strict html//en', - '-//w3c//dtd html 3 1995-03-24//en', - '-//w3c//dtd html 3.2 draft//en', - '-//w3c//dtd html 3.2 final//en', - '-//w3c//dtd html 3.2//en', - '-//w3c//dtd html 3.2s draft//en', - '-//w3c//dtd html 4.0 frameset//en', - '-//w3c//dtd html 4.0 transitional//en', - '-//w3c//dtd html experimental 19960712//en', - '-//w3c//dtd html experimental 970421//en', - '-//w3c//dtd w3 html//en', - '-//w3o//dtd w3 html 3.0//en', - '-//w3o//dtd w3 html 3.0//en//', - '-//webtechs//dtd mozilla html 2.0//en', - '-//webtechs//dtd mozilla html//en' - ], - QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [ - '-//w3c//dtd html 4.01 frameset//', - '-//w3c//dtd html 4.01 transitional//' - ], - QUIRKS_MODE_PUBLIC_IDS = [ - '-//w3o//dtd w3 html strict 3.0//en//', - '-/w3c/dtd html 4.0 transitional/en', - 'html' - ]; - - -//Utils -function enquoteDoctypeId(id) { - var quote = id.indexOf('"') !== -1 ? '\'' : '"'; - - return quote + id + quote; -} - - -//API -exports.isQuirks = function (name, publicId, systemId) { - if (name !== VALID_DOCTYPE_NAME) - return true; - - if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) - return true; - - if (publicId !== null) { - publicId = publicId.toLowerCase(); - - if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) - return true; - - var prefixes = QUIRKS_MODE_PUBLIC_ID_PREFIXES; - - if (systemId === null) - prefixes = prefixes.concat(QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES); - - for (var i = 0; i < prefixes.length; i++) { - if (publicId.indexOf(prefixes[i]) === 0) - return true; - } - } - - return false; -}; - -exports.serializeContent = function (name, publicId, systemId) { - var str = '!DOCTYPE '; - - if (name) - str += name; - - if (publicId !== null) - str += ' PUBLIC ' + enquoteDoctypeId(publicId); - - else if (systemId !== null) - str += ' SYSTEM'; - - if (systemId !== null) - str += ' ' + enquoteDoctypeId(systemId); - - return str; -}; diff --git a/tools/eslint/node_modules/parse5/lib/common/foreign_content.js b/tools/eslint/node_modules/parse5/lib/common/foreign_content.js deleted file mode 100644 index 4dedbbffce6f04..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/foreign_content.js +++ /dev/null @@ -1,260 +0,0 @@ -'use strict'; - -var Tokenizer = require('../tokenizer'), - HTML = require('./html'); - -//Aliases -var $ = HTML.TAG_NAMES, - NS = HTML.NAMESPACES, - ATTRS = HTML.ATTRS; - - -//MIME types -var MIME_TYPES = { - TEXT_HTML: 'text/html', - APPLICATION_XML: 'application/xhtml+xml' -}; - -//Attributes -var DEFINITION_URL_ATTR = 'definitionurl', - ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL', - SVG_ATTRS_ADJUSTMENT_MAP = { - 'attributename': 'attributeName', - 'attributetype': 'attributeType', - 'basefrequency': 'baseFrequency', - 'baseprofile': 'baseProfile', - 'calcmode': 'calcMode', - 'clippathunits': 'clipPathUnits', - 'diffuseconstant': 'diffuseConstant', - 'edgemode': 'edgeMode', - 'filterunits': 'filterUnits', - 'glyphref': 'glyphRef', - 'gradienttransform': 'gradientTransform', - 'gradientunits': 'gradientUnits', - 'kernelmatrix': 'kernelMatrix', - 'kernelunitlength': 'kernelUnitLength', - 'keypoints': 'keyPoints', - 'keysplines': 'keySplines', - 'keytimes': 'keyTimes', - 'lengthadjust': 'lengthAdjust', - 'limitingconeangle': 'limitingConeAngle', - 'markerheight': 'markerHeight', - 'markerunits': 'markerUnits', - 'markerwidth': 'markerWidth', - 'maskcontentunits': 'maskContentUnits', - 'maskunits': 'maskUnits', - 'numoctaves': 'numOctaves', - 'pathlength': 'pathLength', - 'patterncontentunits': 'patternContentUnits', - 'patterntransform': 'patternTransform', - 'patternunits': 'patternUnits', - 'pointsatx': 'pointsAtX', - 'pointsaty': 'pointsAtY', - 'pointsatz': 'pointsAtZ', - 'preservealpha': 'preserveAlpha', - 'preserveaspectratio': 'preserveAspectRatio', - 'primitiveunits': 'primitiveUnits', - 'refx': 'refX', - 'refy': 'refY', - 'repeatcount': 'repeatCount', - 'repeatdur': 'repeatDur', - 'requiredextensions': 'requiredExtensions', - 'requiredfeatures': 'requiredFeatures', - 'specularconstant': 'specularConstant', - 'specularexponent': 'specularExponent', - 'spreadmethod': 'spreadMethod', - 'startoffset': 'startOffset', - 'stddeviation': 'stdDeviation', - 'stitchtiles': 'stitchTiles', - 'surfacescale': 'surfaceScale', - 'systemlanguage': 'systemLanguage', - 'tablevalues': 'tableValues', - 'targetx': 'targetX', - 'targety': 'targetY', - 'textlength': 'textLength', - 'viewbox': 'viewBox', - 'viewtarget': 'viewTarget', - 'xchannelselector': 'xChannelSelector', - 'ychannelselector': 'yChannelSelector', - 'zoomandpan': 'zoomAndPan' - }, - XML_ATTRS_ADJUSTMENT_MAP = { - 'xlink:actuate': {prefix: 'xlink', name: 'actuate', namespace: NS.XLINK}, - 'xlink:arcrole': {prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK}, - 'xlink:href': {prefix: 'xlink', name: 'href', namespace: NS.XLINK}, - 'xlink:role': {prefix: 'xlink', name: 'role', namespace: NS.XLINK}, - 'xlink:show': {prefix: 'xlink', name: 'show', namespace: NS.XLINK}, - 'xlink:title': {prefix: 'xlink', name: 'title', namespace: NS.XLINK}, - 'xlink:type': {prefix: 'xlink', name: 'type', namespace: NS.XLINK}, - 'xml:base': {prefix: 'xml', name: 'base', namespace: NS.XML}, - 'xml:lang': {prefix: 'xml', name: 'lang', namespace: NS.XML}, - 'xml:space': {prefix: 'xml', name: 'space', namespace: NS.XML}, - 'xmlns': {prefix: '', name: 'xmlns', namespace: NS.XMLNS}, - 'xmlns:xlink': {prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS} - - }; - -//SVG tag names adjustment map -var SVG_TAG_NAMES_ADJUSTMENT_MAP = exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = { - 'altglyph': 'altGlyph', - 'altglyphdef': 'altGlyphDef', - 'altglyphitem': 'altGlyphItem', - 'animatecolor': 'animateColor', - 'animatemotion': 'animateMotion', - 'animatetransform': 'animateTransform', - 'clippath': 'clipPath', - 'feblend': 'feBlend', - 'fecolormatrix': 'feColorMatrix', - 'fecomponenttransfer': 'feComponentTransfer', - 'fecomposite': 'feComposite', - 'feconvolvematrix': 'feConvolveMatrix', - 'fediffuselighting': 'feDiffuseLighting', - 'fedisplacementmap': 'feDisplacementMap', - 'fedistantlight': 'feDistantLight', - 'feflood': 'feFlood', - 'fefunca': 'feFuncA', - 'fefuncb': 'feFuncB', - 'fefuncg': 'feFuncG', - 'fefuncr': 'feFuncR', - 'fegaussianblur': 'feGaussianBlur', - 'feimage': 'feImage', - 'femerge': 'feMerge', - 'femergenode': 'feMergeNode', - 'femorphology': 'feMorphology', - 'feoffset': 'feOffset', - 'fepointlight': 'fePointLight', - 'fespecularlighting': 'feSpecularLighting', - 'fespotlight': 'feSpotLight', - 'fetile': 'feTile', - 'feturbulence': 'feTurbulence', - 'foreignobject': 'foreignObject', - 'glyphref': 'glyphRef', - 'lineargradient': 'linearGradient', - 'radialgradient': 'radialGradient', - 'textpath': 'textPath' -}; - -//Tags that causes exit from foreign content -var EXITS_FOREIGN_CONTENT = {}; - -EXITS_FOREIGN_CONTENT[$.B] = true; -EXITS_FOREIGN_CONTENT[$.BIG] = true; -EXITS_FOREIGN_CONTENT[$.BLOCKQUOTE] = true; -EXITS_FOREIGN_CONTENT[$.BODY] = true; -EXITS_FOREIGN_CONTENT[$.BR] = true; -EXITS_FOREIGN_CONTENT[$.CENTER] = true; -EXITS_FOREIGN_CONTENT[$.CODE] = true; -EXITS_FOREIGN_CONTENT[$.DD] = true; -EXITS_FOREIGN_CONTENT[$.DIV] = true; -EXITS_FOREIGN_CONTENT[$.DL] = true; -EXITS_FOREIGN_CONTENT[$.DT] = true; -EXITS_FOREIGN_CONTENT[$.EM] = true; -EXITS_FOREIGN_CONTENT[$.EMBED] = true; -EXITS_FOREIGN_CONTENT[$.H1] = true; -EXITS_FOREIGN_CONTENT[$.H2] = true; -EXITS_FOREIGN_CONTENT[$.H3] = true; -EXITS_FOREIGN_CONTENT[$.H4] = true; -EXITS_FOREIGN_CONTENT[$.H5] = true; -EXITS_FOREIGN_CONTENT[$.H6] = true; -EXITS_FOREIGN_CONTENT[$.HEAD] = true; -EXITS_FOREIGN_CONTENT[$.HR] = true; -EXITS_FOREIGN_CONTENT[$.I] = true; -EXITS_FOREIGN_CONTENT[$.IMG] = true; -EXITS_FOREIGN_CONTENT[$.LI] = true; -EXITS_FOREIGN_CONTENT[$.LISTING] = true; -EXITS_FOREIGN_CONTENT[$.MENU] = true; -EXITS_FOREIGN_CONTENT[$.META] = true; -EXITS_FOREIGN_CONTENT[$.NOBR] = true; -EXITS_FOREIGN_CONTENT[$.OL] = true; -EXITS_FOREIGN_CONTENT[$.P] = true; -EXITS_FOREIGN_CONTENT[$.PRE] = true; -EXITS_FOREIGN_CONTENT[$.RUBY] = true; -EXITS_FOREIGN_CONTENT[$.S] = true; -EXITS_FOREIGN_CONTENT[$.SMALL] = true; -EXITS_FOREIGN_CONTENT[$.SPAN] = true; -EXITS_FOREIGN_CONTENT[$.STRONG] = true; -EXITS_FOREIGN_CONTENT[$.STRIKE] = true; -EXITS_FOREIGN_CONTENT[$.SUB] = true; -EXITS_FOREIGN_CONTENT[$.SUP] = true; -EXITS_FOREIGN_CONTENT[$.TABLE] = true; -EXITS_FOREIGN_CONTENT[$.TT] = true; -EXITS_FOREIGN_CONTENT[$.U] = true; -EXITS_FOREIGN_CONTENT[$.UL] = true; -EXITS_FOREIGN_CONTENT[$.VAR] = true; - -//Check exit from foreign content -exports.causesExit = function (startTagToken) { - var tn = startTagToken.tagName; - var isFontWithAttrs = tn === $.FONT && (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null || - Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null || - Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null); - - return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn]; -}; - -//Token adjustments -exports.adjustTokenMathMLAttrs = function (token) { - for (var i = 0; i < token.attrs.length; i++) { - if (token.attrs[i].name === DEFINITION_URL_ATTR) { - token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR; - break; - } - } -}; - -exports.adjustTokenSVGAttrs = function (token) { - for (var i = 0; i < token.attrs.length; i++) { - var adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name]; - - if (adjustedAttrName) - token.attrs[i].name = adjustedAttrName; - } -}; - -exports.adjustTokenXMLAttrs = function (token) { - for (var i = 0; i < token.attrs.length; i++) { - var adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name]; - - if (adjustedAttrEntry) { - token.attrs[i].prefix = adjustedAttrEntry.prefix; - token.attrs[i].name = adjustedAttrEntry.name; - token.attrs[i].namespace = adjustedAttrEntry.namespace; - } - } -}; - -exports.adjustTokenSVGTagName = function (token) { - var adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName]; - - if (adjustedTagName) - token.tagName = adjustedTagName; -}; - -//Integration points -function isMathMLTextIntegrationPoint(tn, ns) { - return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT); -} - -function isHtmlIntegrationPoint(tn, ns, attrs) { - if (ns === NS.MATHML && tn === $.ANNOTATION_XML) { - for (var i = 0; i < attrs.length; i++) { - if (attrs[i].name === ATTRS.ENCODING) { - var value = attrs[i].value.toLowerCase(); - - return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML; - } - } - } - - return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE); -} - -exports.isIntegrationPoint = function (tn, ns, attrs, foreignNS) { - if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) - return true; - - if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) - return true; - - return false; -}; diff --git a/tools/eslint/node_modules/parse5/lib/common/html.js b/tools/eslint/node_modules/parse5/lib/common/html.js deleted file mode 100644 index d826eaa36da1ac..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/html.js +++ /dev/null @@ -1,266 +0,0 @@ -'use strict'; - -var NS = exports.NAMESPACES = { - HTML: 'http://www.w3.org/1999/xhtml', - MATHML: 'http://www.w3.org/1998/Math/MathML', - SVG: 'http://www.w3.org/2000/svg', - XLINK: 'http://www.w3.org/1999/xlink', - XML: 'http://www.w3.org/XML/1998/namespace', - XMLNS: 'http://www.w3.org/2000/xmlns/' -}; - -exports.ATTRS = { - TYPE: 'type', - ACTION: 'action', - ENCODING: 'encoding', - PROMPT: 'prompt', - NAME: 'name', - COLOR: 'color', - FACE: 'face', - SIZE: 'size' -}; - -var $ = exports.TAG_NAMES = { - A: 'a', - ADDRESS: 'address', - ANNOTATION_XML: 'annotation-xml', - APPLET: 'applet', - AREA: 'area', - ARTICLE: 'article', - ASIDE: 'aside', - - B: 'b', - BASE: 'base', - BASEFONT: 'basefont', - BGSOUND: 'bgsound', - BIG: 'big', - BLOCKQUOTE: 'blockquote', - BODY: 'body', - BR: 'br', - BUTTON: 'button', - - CAPTION: 'caption', - CENTER: 'center', - CODE: 'code', - COL: 'col', - COLGROUP: 'colgroup', - - DD: 'dd', - DESC: 'desc', - DETAILS: 'details', - DIALOG: 'dialog', - DIR: 'dir', - DIV: 'div', - DL: 'dl', - DT: 'dt', - - EM: 'em', - EMBED: 'embed', - - FIELDSET: 'fieldset', - FIGCAPTION: 'figcaption', - FIGURE: 'figure', - FONT: 'font', - FOOTER: 'footer', - FOREIGN_OBJECT: 'foreignObject', - FORM: 'form', - FRAME: 'frame', - FRAMESET: 'frameset', - - H1: 'h1', - H2: 'h2', - H3: 'h3', - H4: 'h4', - H5: 'h5', - H6: 'h6', - HEAD: 'head', - HEADER: 'header', - HGROUP: 'hgroup', - HR: 'hr', - HTML: 'html', - - I: 'i', - IMG: 'img', - IMAGE: 'image', - INPUT: 'input', - IFRAME: 'iframe', - - KEYGEN: 'keygen', - - LABEL: 'label', - LI: 'li', - LINK: 'link', - LISTING: 'listing', - - MAIN: 'main', - MALIGNMARK: 'malignmark', - MARQUEE: 'marquee', - MATH: 'math', - MENU: 'menu', - MENUITEM: 'menuitem', - META: 'meta', - MGLYPH: 'mglyph', - MI: 'mi', - MO: 'mo', - MN: 'mn', - MS: 'ms', - MTEXT: 'mtext', - - NAV: 'nav', - NOBR: 'nobr', - NOFRAMES: 'noframes', - NOEMBED: 'noembed', - NOSCRIPT: 'noscript', - - OBJECT: 'object', - OL: 'ol', - OPTGROUP: 'optgroup', - OPTION: 'option', - - P: 'p', - PARAM: 'param', - PLAINTEXT: 'plaintext', - PRE: 'pre', - - RB: 'rb', - RP: 'rp', - RT: 'rt', - RTC: 'rtc', - RUBY: 'ruby', - - S: 's', - SCRIPT: 'script', - SECTION: 'section', - SELECT: 'select', - SOURCE: 'source', - SMALL: 'small', - SPAN: 'span', - STRIKE: 'strike', - STRONG: 'strong', - STYLE: 'style', - SUB: 'sub', - SUMMARY: 'summary', - SUP: 'sup', - - TABLE: 'table', - TBODY: 'tbody', - TEMPLATE: 'template', - TEXTAREA: 'textarea', - TFOOT: 'tfoot', - TD: 'td', - TH: 'th', - THEAD: 'thead', - TITLE: 'title', - TR: 'tr', - TRACK: 'track', - TT: 'tt', - - U: 'u', - UL: 'ul', - - SVG: 'svg', - - VAR: 'var', - - WBR: 'wbr', - - XMP: 'xmp' -}; - -var SPECIAL_ELEMENTS = exports.SPECIAL_ELEMENTS = {}; - -SPECIAL_ELEMENTS[NS.HTML] = {}; -SPECIAL_ELEMENTS[NS.HTML][$.ADDRESS] = true; -SPECIAL_ELEMENTS[NS.HTML][$.APPLET] = true; -SPECIAL_ELEMENTS[NS.HTML][$.AREA] = true; -SPECIAL_ELEMENTS[NS.HTML][$.ARTICLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.ASIDE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BASE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BASEFONT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BGSOUND] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BLOCKQUOTE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BODY] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BUTTON] = true; -SPECIAL_ELEMENTS[NS.HTML][$.CAPTION] = true; -SPECIAL_ELEMENTS[NS.HTML][$.CENTER] = true; -SPECIAL_ELEMENTS[NS.HTML][$.COL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.COLGROUP] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DETAILS] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DIR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DIV] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.EMBED] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FIELDSET] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FIGCAPTION] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FIGURE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FOOTER] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FORM] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FRAME] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FRAMESET] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H1] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H2] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H3] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H4] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H5] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H6] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HEAD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HEADER] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HGROUP] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HTML] = true; -SPECIAL_ELEMENTS[NS.HTML][$.IFRAME] = true; -SPECIAL_ELEMENTS[NS.HTML][$.IMG] = true; -SPECIAL_ELEMENTS[NS.HTML][$.INPUT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.LI] = true; -SPECIAL_ELEMENTS[NS.HTML][$.LINK] = true; -SPECIAL_ELEMENTS[NS.HTML][$.LISTING] = true; -SPECIAL_ELEMENTS[NS.HTML][$.MAIN] = true; -SPECIAL_ELEMENTS[NS.HTML][$.MARQUEE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.MENU] = true; -SPECIAL_ELEMENTS[NS.HTML][$.META] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NAV] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NOEMBED] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NOFRAMES] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NOSCRIPT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.OBJECT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.OL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.P] = true; -SPECIAL_ELEMENTS[NS.HTML][$.PARAM] = true; -SPECIAL_ELEMENTS[NS.HTML][$.PLAINTEXT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.PRE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SCRIPT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SECTION] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SELECT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SOURCE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.STYLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SUMMARY] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TABLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TBODY] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TEMPLATE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TEXTAREA] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TFOOT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TH] = true; -SPECIAL_ELEMENTS[NS.HTML][$.THEAD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TITLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TRACK] = true; -SPECIAL_ELEMENTS[NS.HTML][$.UL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.WBR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.XMP] = true; - -SPECIAL_ELEMENTS[NS.MATHML] = {}; -SPECIAL_ELEMENTS[NS.MATHML][$.MI] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MO] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MN] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MS] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MTEXT] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.ANNOTATION_XML] = true; - -SPECIAL_ELEMENTS[NS.SVG] = {}; -SPECIAL_ELEMENTS[NS.SVG][$.TITLE] = true; -SPECIAL_ELEMENTS[NS.SVG][$.FOREIGN_OBJECT] = true; -SPECIAL_ELEMENTS[NS.SVG][$.DESC] = true; diff --git a/tools/eslint/node_modules/parse5/lib/common/merge_options.js b/tools/eslint/node_modules/parse5/lib/common/merge_options.js deleted file mode 100644 index c35934a96a7c3d..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/merge_options.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -module.exports = function mergeOptions(defaults, options) { - options = options || {}; - - return [defaults, options].reduce(function (merged, optObj) { - Object.keys(optObj).forEach(function (key) { - merged[key] = optObj[key]; - }); - - return merged; - }, {}); -}; diff --git a/tools/eslint/node_modules/parse5/lib/common/unicode.js b/tools/eslint/node_modules/parse5/lib/common/unicode.js deleted file mode 100644 index 8777e97ab79d1a..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/unicode.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -exports.REPLACEMENT_CHARACTER = '\uFFFD'; - -exports.CODE_POINTS = { - EOF: -1, - NULL: 0x00, - TABULATION: 0x09, - CARRIAGE_RETURN: 0x0D, - LINE_FEED: 0x0A, - FORM_FEED: 0x0C, - SPACE: 0x20, - EXCLAMATION_MARK: 0x21, - QUOTATION_MARK: 0x22, - NUMBER_SIGN: 0x23, - AMPERSAND: 0x26, - APOSTROPHE: 0x27, - HYPHEN_MINUS: 0x2D, - SOLIDUS: 0x2F, - DIGIT_0: 0x30, - DIGIT_9: 0x39, - SEMICOLON: 0x3B, - LESS_THAN_SIGN: 0x3C, - EQUALS_SIGN: 0x3D, - GREATER_THAN_SIGN: 0x3E, - QUESTION_MARK: 0x3F, - LATIN_CAPITAL_A: 0x41, - LATIN_CAPITAL_F: 0x46, - LATIN_CAPITAL_X: 0x58, - LATIN_CAPITAL_Z: 0x5A, - GRAVE_ACCENT: 0x60, - LATIN_SMALL_A: 0x61, - LATIN_SMALL_F: 0x66, - LATIN_SMALL_X: 0x78, - LATIN_SMALL_Z: 0x7A, - REPLACEMENT_CHARACTER: 0xFFFD -}; - -exports.CODE_POINT_SEQUENCES = { - DASH_DASH_STRING: [0x2D, 0x2D], //-- - DOCTYPE_STRING: [0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE - CDATA_START_STRING: [0x5B, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5B], //[CDATA[ - CDATA_END_STRING: [0x5D, 0x5D, 0x3E], //]]> - SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script - PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4C, 0x49, 0x43], //PUBLIC - SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4D] //SYSTEM -}; diff --git a/tools/eslint/node_modules/parse5/lib/index.js b/tools/eslint/node_modules/parse5/lib/index.js deleted file mode 100644 index 28663c2193ea42..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/index.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -var Parser = require('./parser'), - Serializer = require('./serializer'); - -/** @namespace parse5 */ - -/** - * Parses an HTML string. - * @function parse - * @memberof parse5 - * @instance - * @param {string} html - Input HTML string. - * @param {ParserOptions} [options] - Parsing options. - * @returns {ASTNode} document - * @example - * var parse5 = require('parse5'); - * - * var document = parse5.parse('Hi there!'); - */ -exports.parse = function parse(html, options) { - var parser = new Parser(options); - - return parser.parse(html); -}; - -/** - * Parses an HTML fragment. - * @function parseFragment - * @memberof parse5 - * @instance - * @param {ASTNode} [fragmentContext] - Parsing context element. If specified, given fragment - * will be parsed as if it was set to the context element's `innerHTML` property. - * @param {string} html - Input HTML fragment string. - * @param {ParserOptions} [options] - Parsing options. - * @returns {ASTNode} documentFragment - * @example - * var parse5 = require('parse5'); - * - * var documentFragment = parse5.parseFragment('
'); - * - * // Parses the html fragment in the context of the parsed element. - * var trFragment = parser.parseFragment(documentFragment.childNodes[0], ''); - */ -exports.parseFragment = function parseFragment(fragmentContext, html, options) { - if (typeof fragmentContext === 'string') { - options = html; - html = fragmentContext; - fragmentContext = null; - } - - var parser = new Parser(options); - - return parser.parseFragment(html, fragmentContext); -}; - -/** - * Serializes an AST node to an HTML string. - * @function serialize - * @memberof parse5 - * @instance - * @param {ASTNode} node - Node to serialize. - * @param {SerializerOptions} [options] - Serialization options. - * @returns {String} html - * @example - * var parse5 = require('parse5'); - * - * var document = parse5.parse('Hi there!'); - * - * // Serializes a document. - * var html = parse5.serialize(document); - * - * // Serializes the element content. - * var bodyInnerHtml = parse5.serialize(document.childNodes[0].childNodes[1]); - */ -exports.serialize = function (node, options) { - var serializer = new Serializer(node, options); - - return serializer.serialize(); -}; - -/** - * Provides built-in tree adapters that can be used for parsing and serialization. - * @var treeAdapters - * @memberof parse5 - * @instance - * @property {TreeAdapter} default - Default tree format for parse5. - * @property {TreeAdapter} htmlparser2 - Quite popular [htmlparser2](https://github.com/fb55/htmlparser2) tree format - * (e.g. used by [cheerio](https://github.com/MatthewMueller/cheerio) and [jsdom](https://github.com/tmpvar/jsdom)). - * @example - * var parse5 = require('parse5'); - * - * // Uses the default tree adapter for parsing. - * var document = parse5.parse('
', { treeAdapter: parse5.treeAdapters.default }); - * - * // Uses the htmlparser2 tree adapter with the SerializerStream. - * var serializer = new parse5.SerializerStream(node, { treeAdapter: parse5.treeAdapters.htmlparser2 }); - */ -exports.treeAdapters = { - default: require('./tree_adapters/default'), - htmlparser2: require('./tree_adapters/htmlparser2') -}; - - -// Streaming -exports.ParserStream = require('./parser/stream'); -exports.SerializerStream = require('./serializer/stream'); -exports.SAXParser = require('./sax'); diff --git a/tools/eslint/node_modules/parse5/lib/location_info/parser_mixin.js b/tools/eslint/node_modules/parse5/lib/location_info/parser_mixin.js deleted file mode 100644 index c92baf5606ec7d..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/location_info/parser_mixin.js +++ /dev/null @@ -1,217 +0,0 @@ -'use strict'; - -var OpenElementStack = require('../parser/open_element_stack'), - Tokenizer = require('../tokenizer'), - HTML = require('../common/html'); - - -//Aliases -var $ = HTML.TAG_NAMES; - - -function setEndLocation(element, closingToken, treeAdapter) { - var loc = element.__location; - - if (!loc) - return; - - /** - * @typedef {Object} ElementLocationInfo - * @extends StartTagLocationInfo - * - * @property {StartTagLocationInfo} startTag - Element's start tag location info. - * @property {LocationInfo} endTag - Element's end tag location info. - */ - if (!loc.startTag) { - loc.startTag = { - line: loc.line, - col: loc.col, - startOffset: loc.startOffset, - endOffset: loc.endOffset - }; - if (loc.attrs) - loc.startTag.attrs = loc.attrs; - } - - if (closingToken.location) { - var ctLocation = closingToken.location, - tn = treeAdapter.getTagName(element), - // NOTE: For cases like

- First 'p' closes without a closing tag and - // for cases like - 'p' closes without a closing tag - isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && - tn === closingToken.tagName; - - if (isClosingEndTag) { - loc.endTag = { - line: ctLocation.line, - col: ctLocation.col, - startOffset: ctLocation.startOffset, - endOffset: ctLocation.endOffset - }; - } - - if (isClosingEndTag) - loc.endOffset = ctLocation.endOffset; - else - loc.endOffset = ctLocation.startOffset; - } -} - - -exports.assign = function (parser) { - //NOTE: obtain Parser proto this way to avoid module circular references - var parserProto = Object.getPrototypeOf(parser), - treeAdapter = parser.treeAdapter, - attachableElementLocation = null, - lastFosterParentingLocation = null, - currentToken = null; - - - //NOTE: patch _bootstrap method - parser._bootstrap = function (document, fragmentContext) { - parserProto._bootstrap.call(this, document, fragmentContext); - - attachableElementLocation = null; - lastFosterParentingLocation = null; - currentToken = null; - - //OpenElementStack - parser.openElements.pop = function () { - setEndLocation(this.current, currentToken, treeAdapter); - OpenElementStack.prototype.pop.call(this); - }; - - parser.openElements.popAllUpToHtmlElement = function () { - for (var i = this.stackTop; i > 0; i--) - setEndLocation(this.items[i], currentToken, treeAdapter); - - OpenElementStack.prototype.popAllUpToHtmlElement.call(this); - }; - - parser.openElements.remove = function (element) { - setEndLocation(element, currentToken, treeAdapter); - OpenElementStack.prototype.remove.call(this, element); - }; - }; - - - //Token processing - parser._processTokenInForeignContent = function (token) { - currentToken = token; - parserProto._processTokenInForeignContent.call(this, token); - }; - - parser._processToken = function (token) { - currentToken = token; - parserProto._processToken.call(this, token); - - //NOTE: and are never popped from the stack, so we need to updated - //their end location explicitly. - if (token.type === Tokenizer.END_TAG_TOKEN && - (token.tagName === $.HTML || - token.tagName === $.BODY && this.openElements.hasInScope($.BODY))) { - for (var i = this.openElements.stackTop; i >= 0; i--) { - var element = this.openElements.items[i]; - - if (this.treeAdapter.getTagName(element) === token.tagName) { - setEndLocation(element, token, treeAdapter); - break; - } - } - } - }; - - - //Doctype - parser._setDocumentType = function (token) { - parserProto._setDocumentType.call(this, token); - - var documentChildren = this.treeAdapter.getChildNodes(this.document), - cnLength = documentChildren.length; - - for (var i = 0; i < cnLength; i++) { - var node = documentChildren[i]; - - if (this.treeAdapter.isDocumentTypeNode(node)) { - node.__location = token.location; - break; - } - } - }; - - - //Elements - parser._attachElementToTree = function (element) { - //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods. - //So we will use token location stored in this methods for the element. - element.__location = attachableElementLocation || null; - attachableElementLocation = null; - parserProto._attachElementToTree.call(this, element); - }; - - parser._appendElement = function (token, namespaceURI) { - attachableElementLocation = token.location; - parserProto._appendElement.call(this, token, namespaceURI); - }; - - parser._insertElement = function (token, namespaceURI) { - attachableElementLocation = token.location; - parserProto._insertElement.call(this, token, namespaceURI); - }; - - parser._insertTemplate = function (token) { - attachableElementLocation = token.location; - parserProto._insertTemplate.call(this, token); - - var tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current); - - tmplContent.__location = null; - }; - - parser._insertFakeRootElement = function () { - parserProto._insertFakeRootElement.call(this); - this.openElements.current.__location = null; - }; - - - //Comments - parser._appendCommentNode = function (token, parent) { - parserProto._appendCommentNode.call(this, token, parent); - - var children = this.treeAdapter.getChildNodes(parent), - commentNode = children[children.length - 1]; - - commentNode.__location = token.location; - }; - - - //Text - parser._findFosterParentingLocation = function () { - //NOTE: store last foster parenting location, so we will be able to find inserted text - //in case of foster parenting - lastFosterParentingLocation = parserProto._findFosterParentingLocation.call(this); - return lastFosterParentingLocation; - }; - - parser._insertCharacters = function (token) { - parserProto._insertCharacters.call(this, token); - - var hasFosterParent = this._shouldFosterParentOnInsertion(), - parent = hasFosterParent && lastFosterParentingLocation.parent || - this.openElements.currentTmplContent || - this.openElements.current, - siblings = this.treeAdapter.getChildNodes(parent), - textNodeIdx = hasFosterParent && lastFosterParentingLocation.beforeElement ? - siblings.indexOf(lastFosterParentingLocation.beforeElement) - 1 : - siblings.length - 1, - textNode = siblings[textNodeIdx]; - - //NOTE: if we have location assigned by another token, then just update end position - if (textNode.__location) - textNode.__location.endOffset = token.location.endOffset; - - else - textNode.__location = token.location; - }; -}; - diff --git a/tools/eslint/node_modules/parse5/lib/location_info/tokenizer_mixin.js b/tools/eslint/node_modules/parse5/lib/location_info/tokenizer_mixin.js deleted file mode 100644 index bbdebd7cfc5a94..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/location_info/tokenizer_mixin.js +++ /dev/null @@ -1,169 +0,0 @@ -'use strict'; - -var UNICODE = require('../common/unicode'); - -//Aliases -var $ = UNICODE.CODE_POINTS; - - -exports.assign = function (tokenizer) { - //NOTE: obtain Tokenizer proto this way to avoid module circular references - var tokenizerProto = Object.getPrototypeOf(tokenizer), - tokenStartOffset = -1, - tokenCol = -1, - tokenLine = 1, - isEol = false, - lineStartPosStack = [0], - lineStartPos = 0, - col = -1, - line = 1; - - function attachLocationInfo(token) { - /** - * @typedef {Object} LocationInfo - * - * @property {Number} line - One-based line index - * @property {Number} col - One-based column index - * @property {Number} startOffset - Zero-based first character index - * @property {Number} endOffset - Zero-based last character index - */ - token.location = { - line: tokenLine, - col: tokenCol, - startOffset: tokenStartOffset, - endOffset: -1 - }; - } - - //NOTE: patch consumption method to track line/col information - tokenizer._consume = function () { - var cp = tokenizerProto._consume.call(this); - - //NOTE: LF should be in the last column of the line - if (isEol) { - isEol = false; - line++; - lineStartPosStack.push(this.preprocessor.sourcePos); - lineStartPos = this.preprocessor.sourcePos; - } - - if (cp === $.LINE_FEED) - isEol = true; - - col = this.preprocessor.sourcePos - lineStartPos + 1; - - return cp; - }; - - tokenizer._unconsume = function () { - tokenizerProto._unconsume.call(this); - isEol = false; - - while (lineStartPos > this.preprocessor.sourcePos && lineStartPosStack.length > 1) { - lineStartPos = lineStartPosStack.pop(); - line--; - } - - col = this.preprocessor.sourcePos - lineStartPos + 1; - }; - - //NOTE: patch token creation methods and attach location objects - tokenizer._createStartTagToken = function () { - tokenizerProto._createStartTagToken.call(this); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createEndTagToken = function () { - tokenizerProto._createEndTagToken.call(this); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createCommentToken = function () { - tokenizerProto._createCommentToken.call(this); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createDoctypeToken = function (initialName) { - tokenizerProto._createDoctypeToken.call(this, initialName); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createCharacterToken = function (type, ch) { - tokenizerProto._createCharacterToken.call(this, type, ch); - attachLocationInfo(this.currentCharacterToken); - }; - - tokenizer._createAttr = function (attrNameFirstCh) { - tokenizerProto._createAttr.call(this, attrNameFirstCh); - this.currentAttrLocation = { - line: line, - col: col, - startOffset: this.preprocessor.sourcePos, - endOffset: -1 - }; - }; - - tokenizer._leaveAttrName = function (toState) { - tokenizerProto._leaveAttrName.call(this, toState); - this._attachCurrentAttrLocationInfo(); - }; - - tokenizer._leaveAttrValue = function (toState) { - tokenizerProto._leaveAttrValue.call(this, toState); - this._attachCurrentAttrLocationInfo(); - }; - - tokenizer._attachCurrentAttrLocationInfo = function () { - this.currentAttrLocation.endOffset = this.preprocessor.sourcePos; - - if (!this.currentToken.location.attrs) - this.currentToken.location.attrs = {}; - - /** - * @typedef {Object} StartTagLocationInfo - * @extends LocationInfo - * - * @property {Dictionary} attrs - Start tag attributes' location info. - */ - this.currentToken.location.attrs[this.currentAttr.name] = this.currentAttrLocation; - }; - - //NOTE: patch token emission methods to determine end location - tokenizer._emitCurrentToken = function () { - //NOTE: if we have pending character token make it's end location equal to the - //current token's start location. - if (this.currentCharacterToken) - this.currentCharacterToken.location.endOffset = this.currentToken.location.startOffset; - - this.currentToken.location.endOffset = this.preprocessor.sourcePos + 1; - tokenizerProto._emitCurrentToken.call(this); - }; - - tokenizer._emitCurrentCharacterToken = function () { - //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(), - //then set it's location at the current preprocessor position. - //We don't need to increment preprocessor position, since character token - //emission is always forced by the start of the next character token here. - //So, we already have advanced position. - if (this.currentCharacterToken && this.currentCharacterToken.location.endOffset === -1) - this.currentCharacterToken.location.endOffset = this.preprocessor.sourcePos; - - tokenizerProto._emitCurrentCharacterToken.call(this); - }; - - //NOTE: patch initial states for each mode to obtain token start position - Object.keys(tokenizerProto.MODE) - - .map(function (modeName) { - return tokenizerProto.MODE[modeName]; - }) - - .forEach(function (state) { - tokenizer[state] = function (cp) { - tokenStartOffset = this.preprocessor.sourcePos; - tokenLine = line; - tokenCol = col; - tokenizerProto[state].call(this, cp); - }; - }); -}; diff --git a/tools/eslint/node_modules/parse5/lib/parser/formatting_element_list.js b/tools/eslint/node_modules/parse5/lib/parser/formatting_element_list.js deleted file mode 100644 index e1711910e3971d..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/parser/formatting_element_list.js +++ /dev/null @@ -1,167 +0,0 @@ -'use strict'; - -//Const -var NOAH_ARK_CAPACITY = 3; - -//List of formatting elements -var FormattingElementList = module.exports = function (treeAdapter) { - this.length = 0; - this.entries = []; - this.treeAdapter = treeAdapter; - this.bookmark = null; -}; - -//Entry types -FormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY'; -FormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY'; - -//Noah Ark's condition -//OPTIMIZATION: at first we try to find possible candidates for exclusion using -//lightweight heuristics without thorough attributes check. -FormattingElementList.prototype._getNoahArkConditionCandidates = function (newElement) { - var candidates = []; - - if (this.length >= NOAH_ARK_CAPACITY) { - var neAttrsLength = this.treeAdapter.getAttrList(newElement).length, - neTagName = this.treeAdapter.getTagName(newElement), - neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement); - - for (var i = this.length - 1; i >= 0; i--) { - var entry = this.entries[i]; - - if (entry.type === FormattingElementList.MARKER_ENTRY) - break; - - var element = entry.element, - elementAttrs = this.treeAdapter.getAttrList(element), - isCandidate = this.treeAdapter.getTagName(element) === neTagName && - this.treeAdapter.getNamespaceURI(element) === neNamespaceURI && - elementAttrs.length === neAttrsLength; - - if (isCandidate) - candidates.push({idx: i, attrs: elementAttrs}); - } - } - - return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates; -}; - -FormattingElementList.prototype._ensureNoahArkCondition = function (newElement) { - var candidates = this._getNoahArkConditionCandidates(newElement), - cLength = candidates.length; - - if (cLength) { - var neAttrs = this.treeAdapter.getAttrList(newElement), - neAttrsLength = neAttrs.length, - neAttrsMap = {}; - - //NOTE: build attrs map for the new element so we can perform fast lookups - for (var i = 0; i < neAttrsLength; i++) { - var neAttr = neAttrs[i]; - - neAttrsMap[neAttr.name] = neAttr.value; - } - - for (i = 0; i < neAttrsLength; i++) { - for (var j = 0; j < cLength; j++) { - var cAttr = candidates[j].attrs[i]; - - if (neAttrsMap[cAttr.name] !== cAttr.value) { - candidates.splice(j, 1); - cLength--; - } - - if (candidates.length < NOAH_ARK_CAPACITY) - return; - } - } - - //NOTE: remove bottommost candidates until Noah's Ark condition will not be met - for (i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) { - this.entries.splice(candidates[i].idx, 1); - this.length--; - } - } -}; - -//Mutations -FormattingElementList.prototype.insertMarker = function () { - this.entries.push({type: FormattingElementList.MARKER_ENTRY}); - this.length++; -}; - -FormattingElementList.prototype.pushElement = function (element, token) { - this._ensureNoahArkCondition(element); - - this.entries.push({ - type: FormattingElementList.ELEMENT_ENTRY, - element: element, - token: token - }); - - this.length++; -}; - -FormattingElementList.prototype.insertElementAfterBookmark = function (element, token) { - var bookmarkIdx = this.length - 1; - - for (; bookmarkIdx >= 0; bookmarkIdx--) { - if (this.entries[bookmarkIdx] === this.bookmark) - break; - } - - this.entries.splice(bookmarkIdx + 1, 0, { - type: FormattingElementList.ELEMENT_ENTRY, - element: element, - token: token - }); - - this.length++; -}; - -FormattingElementList.prototype.removeEntry = function (entry) { - for (var i = this.length - 1; i >= 0; i--) { - if (this.entries[i] === entry) { - this.entries.splice(i, 1); - this.length--; - break; - } - } -}; - -FormattingElementList.prototype.clearToLastMarker = function () { - while (this.length) { - var entry = this.entries.pop(); - - this.length--; - - if (entry.type === FormattingElementList.MARKER_ENTRY) - break; - } -}; - -//Search -FormattingElementList.prototype.getElementEntryInScopeWithTagName = function (tagName) { - for (var i = this.length - 1; i >= 0; i--) { - var entry = this.entries[i]; - - if (entry.type === FormattingElementList.MARKER_ENTRY) - return null; - - if (this.treeAdapter.getTagName(entry.element) === tagName) - return entry; - } - - return null; -}; - -FormattingElementList.prototype.getElementEntry = function (element) { - for (var i = this.length - 1; i >= 0; i--) { - var entry = this.entries[i]; - - if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) - return entry; - } - - return null; -}; diff --git a/tools/eslint/node_modules/parse5/lib/parser/index.js b/tools/eslint/node_modules/parse5/lib/parser/index.js deleted file mode 100644 index bdf192050d43bf..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/parser/index.js +++ /dev/null @@ -1,2817 +0,0 @@ -'use strict'; - -var Tokenizer = require('../tokenizer'), - OpenElementStack = require('./open_element_stack'), - FormattingElementList = require('./formatting_element_list'), - locationInfoMixin = require('../location_info/parser_mixin'), - defaultTreeAdapter = require('../tree_adapters/default'), - doctype = require('../common/doctype'), - foreignContent = require('../common/foreign_content'), - mergeOptions = require('../common/merge_options'), - UNICODE = require('../common/unicode'), - HTML = require('../common/html'); - -//Aliases -var $ = HTML.TAG_NAMES, - NS = HTML.NAMESPACES, - ATTRS = HTML.ATTRS; - -/** - * @typedef {Object} ParserOptions - * - * @property {Boolean} [locationInfo=false] - Enables source code location information for the nodes. - * When enabled, each node (except root node) has the `__location` property. In case the node is not an empty element, - * `__location` will be {@link ElementLocationInfo} object, otherwise it's {@link LocationInfo}. - * If the element was implicitly created by the parser it's `__location` property will be `null`. - * - * @property {TreeAdapter} [treeAdapter=parse5.treeAdapters.default] - Specifies the resulting tree format. - */ -var DEFAULT_OPTIONS = { - locationInfo: false, - treeAdapter: defaultTreeAdapter -}; - -//Misc constants -var HIDDEN_INPUT_TYPE = 'hidden'; - -//Adoption agency loops iteration count -var AA_OUTER_LOOP_ITER = 8, - AA_INNER_LOOP_ITER = 3; - -//Insertion modes -var INITIAL_MODE = 'INITIAL_MODE', - BEFORE_HTML_MODE = 'BEFORE_HTML_MODE', - BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE', - IN_HEAD_MODE = 'IN_HEAD_MODE', - AFTER_HEAD_MODE = 'AFTER_HEAD_MODE', - IN_BODY_MODE = 'IN_BODY_MODE', - TEXT_MODE = 'TEXT_MODE', - IN_TABLE_MODE = 'IN_TABLE_MODE', - IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE', - IN_CAPTION_MODE = 'IN_CAPTION_MODE', - IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE', - IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE', - IN_ROW_MODE = 'IN_ROW_MODE', - IN_CELL_MODE = 'IN_CELL_MODE', - IN_SELECT_MODE = 'IN_SELECT_MODE', - IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE', - IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE', - AFTER_BODY_MODE = 'AFTER_BODY_MODE', - IN_FRAMESET_MODE = 'IN_FRAMESET_MODE', - AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE', - AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE', - AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE'; - -//Insertion mode reset map -var INSERTION_MODE_RESET_MAP = {}; - -INSERTION_MODE_RESET_MAP[$.TR] = IN_ROW_MODE; -INSERTION_MODE_RESET_MAP[$.TBODY] = -INSERTION_MODE_RESET_MAP[$.THEAD] = -INSERTION_MODE_RESET_MAP[$.TFOOT] = IN_TABLE_BODY_MODE; -INSERTION_MODE_RESET_MAP[$.CAPTION] = IN_CAPTION_MODE; -INSERTION_MODE_RESET_MAP[$.COLGROUP] = IN_COLUMN_GROUP_MODE; -INSERTION_MODE_RESET_MAP[$.TABLE] = IN_TABLE_MODE; -INSERTION_MODE_RESET_MAP[$.BODY] = IN_BODY_MODE; -INSERTION_MODE_RESET_MAP[$.FRAMESET] = IN_FRAMESET_MODE; - -//Template insertion mode switch map -var TEMPLATE_INSERTION_MODE_SWITCH_MAP = {}; - -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.CAPTION] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COLGROUP] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TBODY] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TFOOT] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.THEAD] = IN_TABLE_MODE; -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COL] = IN_COLUMN_GROUP_MODE; -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TR] = IN_TABLE_BODY_MODE; -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TD] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TH] = IN_ROW_MODE; - -//Token handlers map for insertion modes -var _ = {}; - -_[INITIAL_MODE] = {}; -_[INITIAL_MODE][Tokenizer.CHARACTER_TOKEN] = -_[INITIAL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInInitialMode; -_[INITIAL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken; -_[INITIAL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[INITIAL_MODE][Tokenizer.DOCTYPE_TOKEN] = doctypeInInitialMode; -_[INITIAL_MODE][Tokenizer.START_TAG_TOKEN] = -_[INITIAL_MODE][Tokenizer.END_TAG_TOKEN] = -_[INITIAL_MODE][Tokenizer.EOF_TOKEN] = tokenInInitialMode; - -_[BEFORE_HTML_MODE] = {}; -_[BEFORE_HTML_MODE][Tokenizer.CHARACTER_TOKEN] = -_[BEFORE_HTML_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHtml; -_[BEFORE_HTML_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken; -_[BEFORE_HTML_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[BEFORE_HTML_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[BEFORE_HTML_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHtml; -_[BEFORE_HTML_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHtml; -_[BEFORE_HTML_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHtml; - -_[BEFORE_HEAD_MODE] = {}; -_[BEFORE_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = -_[BEFORE_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHead; -_[BEFORE_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken; -_[BEFORE_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[BEFORE_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[BEFORE_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHead; -_[BEFORE_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHead; -_[BEFORE_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHead; - -_[IN_HEAD_MODE] = {}; -_[IN_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInHead; -_[IN_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagInHead; -_[IN_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagInHead; -_[IN_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenInHead; - -_[AFTER_HEAD_MODE] = {}; -_[AFTER_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterHead; -_[AFTER_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[AFTER_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[AFTER_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterHead; -_[AFTER_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterHead; -_[AFTER_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenAfterHead; - -_[IN_BODY_MODE] = {}; -_[IN_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInBody; -_[IN_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInBody; -_[IN_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[TEXT_MODE] = {}; -_[TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = -_[TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[TEXT_MODE][Tokenizer.COMMENT_TOKEN] = -_[TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] = -_[TEXT_MODE][Tokenizer.START_TAG_TOKEN] = ignoreToken; -_[TEXT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInText; -_[TEXT_MODE][Tokenizer.EOF_TOKEN] = eofInText; - -_[IN_TABLE_MODE] = {}; -_[IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable; -_[IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTable; -_[IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTable; -_[IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_TABLE_TEXT_MODE] = {}; -_[IN_TABLE_TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = characterInTableText; -_[IN_TABLE_TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_TABLE_TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInTableText; -_[IN_TABLE_TEXT_MODE][Tokenizer.COMMENT_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.START_TAG_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.END_TAG_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.EOF_TOKEN] = tokenInTableText; - -_[IN_CAPTION_MODE] = {}; -_[IN_CAPTION_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_CAPTION_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_CAPTION_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_CAPTION_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_CAPTION_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_CAPTION_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCaption; -_[IN_CAPTION_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCaption; -_[IN_CAPTION_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_COLUMN_GROUP_MODE] = {}; -_[IN_COLUMN_GROUP_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_COLUMN_GROUP_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInColumnGroup; -_[IN_COLUMN_GROUP_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_COLUMN_GROUP_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_COLUMN_GROUP_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_COLUMN_GROUP_MODE][Tokenizer.START_TAG_TOKEN] = startTagInColumnGroup; -_[IN_COLUMN_GROUP_MODE][Tokenizer.END_TAG_TOKEN] = endTagInColumnGroup; -_[IN_COLUMN_GROUP_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_TABLE_BODY_MODE] = {}; -_[IN_TABLE_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_TABLE_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[IN_TABLE_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable; -_[IN_TABLE_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_TABLE_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_TABLE_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTableBody; -_[IN_TABLE_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTableBody; -_[IN_TABLE_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_ROW_MODE] = {}; -_[IN_ROW_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_ROW_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[IN_ROW_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable; -_[IN_ROW_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_ROW_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_ROW_MODE][Tokenizer.START_TAG_TOKEN] = startTagInRow; -_[IN_ROW_MODE][Tokenizer.END_TAG_TOKEN] = endTagInRow; -_[IN_ROW_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_CELL_MODE] = {}; -_[IN_CELL_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_CELL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_CELL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_CELL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_CELL_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_CELL_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCell; -_[IN_CELL_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCell; -_[IN_CELL_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_SELECT_MODE] = {}; -_[IN_SELECT_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_SELECT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_SELECT_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_SELECT_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelect; -_[IN_SELECT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelect; -_[IN_SELECT_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_SELECT_IN_TABLE_MODE] = {}; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelectInTable; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelectInTable; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_TEMPLATE_MODE] = {}; -_[IN_TEMPLATE_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_TEMPLATE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_TEMPLATE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_TEMPLATE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_TEMPLATE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_TEMPLATE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTemplate; -_[IN_TEMPLATE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTemplate; -_[IN_TEMPLATE_MODE][Tokenizer.EOF_TOKEN] = eofInTemplate; - -_[AFTER_BODY_MODE] = {}; -_[AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterBody; -_[AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToRootHtmlElement; -_[AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterBody; -_[AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterBody; -_[AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[IN_FRAMESET_MODE] = {}; -_[IN_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagInFrameset; -_[IN_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagInFrameset; -_[IN_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[AFTER_FRAMESET_MODE] = {}; -_[AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterFrameset; -_[AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterFrameset; -_[AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[AFTER_AFTER_BODY_MODE] = {}; -_[AFTER_AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = tokenAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument; -_[AFTER_AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = tokenAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[AFTER_AFTER_FRAMESET_MODE] = {}; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterFrameset; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = ignoreToken; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - - -//Parser -var Parser = module.exports = function (options) { - this.options = mergeOptions(DEFAULT_OPTIONS, options); - - this.treeAdapter = this.options.treeAdapter; - this.pendingScript = null; - - if (this.options.locationInfo) - locationInfoMixin.assign(this); -}; - -// API -Parser.prototype.parse = function (html) { - var document = this.treeAdapter.createDocument(); - - this._bootstrap(document, null); - this.tokenizer.write(html, true); - this._runParsingLoop(null, null); - - return document; -}; - -Parser.prototype.parseFragment = function (html, fragmentContext) { - //NOTE: use
Shake it, baby