mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
fix test-net-socket-local-address.js (#20010)
This commit is contained in:
41
test/js/node/test/parallel/test-net-socket-local-address.js
Normal file
41
test/js/node/test/parallel/test-net-socket-local-address.js
Normal file
@@ -0,0 +1,41 @@
|
||||
'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 net = require('net');
|
||||
|
||||
let conns = 0;
|
||||
const clientLocalPorts = [];
|
||||
const serverRemotePorts = [];
|
||||
const client = new net.Socket();
|
||||
const server = net.createServer((socket) => {
|
||||
serverRemotePorts.push(socket.remotePort);
|
||||
socket.end();
|
||||
});
|
||||
|
||||
server.on('close', common.mustCall(() => {
|
||||
// Client and server should agree on the ports used
|
||||
assert.deepStrictEqual(serverRemotePorts, clientLocalPorts);
|
||||
assert.strictEqual(conns, 2);
|
||||
}));
|
||||
|
||||
server.listen(0, common.localhostIPv4, connect);
|
||||
|
||||
function connect() {
|
||||
if (conns === 2) {
|
||||
server.close();
|
||||
return;
|
||||
}
|
||||
|
||||
conns++;
|
||||
client.once('close', connect);
|
||||
assert.strictEqual(
|
||||
client,
|
||||
client.connect(server.address().port, common.localhostIPv4, () => {
|
||||
clientLocalPorts.push(client.localPort);
|
||||
})
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user