diff options
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-net-connect-options-port.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-net-connect-options-port.js | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-net-connect-options-port.js b/cli/tests/node_compat/test/parallel/test-net-connect-options-port.js deleted file mode 100644 index 6dd10461a..000000000 --- a/cli/tests/node_compat/test/parallel/test-net-connect-options-port.js +++ /dev/null @@ -1,237 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dns = require('dns'); -const net = require('net'); - -// Test wrong type of ports -{ - const portTypeError = { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - }; - - syncFailToConnect(true, portTypeError); - syncFailToConnect(false, portTypeError); - syncFailToConnect([], portTypeError, true); - syncFailToConnect({}, portTypeError, true); - syncFailToConnect(null, portTypeError); -} - -// Test out of range ports -{ - const portRangeError = { - code: 'ERR_SOCKET_BAD_PORT', - name: 'RangeError' - }; - - syncFailToConnect('', portRangeError); - syncFailToConnect(' ', portRangeError); - syncFailToConnect('0x', portRangeError, true); - syncFailToConnect('-0x1', portRangeError, true); - syncFailToConnect(NaN, portRangeError); - syncFailToConnect(Infinity, portRangeError); - syncFailToConnect(-1, portRangeError); - syncFailToConnect(65536, portRangeError); -} - -// Test invalid hints -{ - // connect({hint}, cb) and connect({hint}) - const hints = (dns.ADDRCONFIG | dns.V4MAPPED | dns.ALL) + 42; - const hintOptBlocks = doConnect([{ port: 42, hints }], - () => common.mustNotCall()); - for (const fn of hintOptBlocks) { - assert.throws(fn, { - code: 'ERR_INVALID_ARG_VALUE', - name: 'TypeError', - message: /The argument 'hints' is invalid\. Received \d+/ - }); - } -} - -// Test valid combinations of connect(port) and connect(port, host) -{ - const expectedConnections = 72; - let serverConnected = 0; - - const server = net.createServer(common.mustCall((socket) => { - socket.end('ok'); - if (++serverConnected === expectedConnections) { - server.close(); - } - }, expectedConnections)); - - server.listen(0, common.localhostIPv4, common.mustCall(() => { - const port = server.address().port; - - // Total connections = 3 * 4(canConnect) * 6(doConnect) = 72 - canConnect(port); - canConnect(String(port)); - canConnect(`0x${port.toString(16)}`); - })); - - // Try connecting to random ports, but do so once the server is closed - server.on('close', () => { - asyncFailToConnect(0); - }); -} - -function doConnect(args, getCb) { - return [ - function createConnectionWithCb() { - return net.createConnection.apply(net, args.concat(getCb())) - .resume(); - }, - function createConnectionWithoutCb() { - return net.createConnection.apply(net, args) - .on('connect', getCb()) - .resume(); - }, - function connectWithCb() { - return net.connect.apply(net, args.concat(getCb())) - .resume(); - }, - function connectWithoutCb() { - return net.connect.apply(net, args) - .on('connect', getCb()) - .resume(); - }, - function socketConnectWithCb() { - const socket = new net.Socket(); - return socket.connect.apply(socket, args.concat(getCb())) - .resume(); - }, - function socketConnectWithoutCb() { - const socket = new net.Socket(); - return socket.connect.apply(socket, args) - .on('connect', getCb()) - .resume(); - }, - ]; -} - -function syncFailToConnect(port, assertErr, optOnly) { - const family = 4; - if (!optOnly) { - // connect(port, cb) and connect(port) - const portArgFunctions = doConnect([{ port, family }], - () => common.mustNotCall()); - for (const fn of portArgFunctions) { - assert.throws(fn, assertErr, `${fn.name}(${port})`); - } - - // connect(port, host, cb) and connect(port, host) - const portHostArgFunctions = doConnect([{ port, - host: 'localhost', - family }], - () => common.mustNotCall()); - for (const fn of portHostArgFunctions) { - assert.throws(fn, assertErr, `${fn.name}(${port}, 'localhost')`); - } - } - // connect({port}, cb) and connect({port}) - const portOptFunctions = doConnect([{ port, family }], - () => common.mustNotCall()); - for (const fn of portOptFunctions) { - assert.throws(fn, assertErr, `${fn.name}({port: ${port}})`); - } - - // connect({port, host}, cb) and connect({port, host}) - const portHostOptFunctions = doConnect([{ port: port, - host: 'localhost', - family: family }], - () => common.mustNotCall()); - for (const fn of portHostOptFunctions) { - assert.throws(fn, - assertErr, - `${fn.name}({port: ${port}, host: 'localhost'})`); - } -} - -function canConnect(port) { - const noop = () => common.mustCall(); - const family = 4; - - // connect(port, cb) and connect(port) - const portArgFunctions = doConnect([{ port, family }], noop); - for (const fn of portArgFunctions) { - fn(); - } - - // connect(port, host, cb) and connect(port, host) - const portHostArgFunctions = doConnect([{ port, host: 'localhost', family }], - noop); - for (const fn of portHostArgFunctions) { - fn(); - } - - // connect({port}, cb) and connect({port}) - const portOptFunctions = doConnect([{ port, family }], noop); - for (const fn of portOptFunctions) { - fn(); - } - - // connect({port, host}, cb) and connect({port, host}) - const portHostOptFns = doConnect([{ port, host: 'localhost', family }], - noop); - for (const fn of portHostOptFns) { - fn(); - } -} - -function asyncFailToConnect(port) { - const onError = () => common.mustCall((err) => { - const regexp = /^Error: connect E\w+.+$/; - assert.match(String(err), regexp); - }); - - const dont = () => common.mustNotCall(); - const family = 4; - // connect(port, cb) and connect(port) - const portArgFunctions = doConnect([{ port, family }], dont); - for (const fn of portArgFunctions) { - fn().on('error', onError()); - } - - // connect({port}, cb) and connect({port}) - const portOptFunctions = doConnect([{ port, family }], dont); - for (const fn of portOptFunctions) { - fn().on('error', onError()); - } - - // connect({port, host}, cb) and connect({port, host}) - const portHostOptFns = doConnect([{ port, host: 'localhost', family }], - dont); - for (const fn of portHostOptFns) { - fn().on('error', onError()); - } -} |