test: make test-child-process-fork-net more robust
Checklist
-
tests and code linting passes -
the commit message follows commit guidelines
Affected core subsystem(s)
test child_process
Description of change
test-child-process-fork-net will sometimes fail in CI with EADDRINUSE because an earlier test failed to free common.PORT. Have the operating system provide an available port instead.
Example failure: https://ci.nodejs.org/job/node-test-commit-freebsd/2679/nodes=freebsd10-64/consoleFull
not ok 55 parallel/test-child-process-fork-net
# events.js:160
# throw er; // Unhandled 'error' event
# ^
#
# Error: listen EADDRINUSE :::12347
# at Object.exports._errnoException (util.js:1007:11)
# at exports._exceptionWithHostPort (util.js:1030:20)
# at Server._listen2 (net.js:1253:14)
# at listen (net.js:1289:10)
# at Server.listen (net.js:1385:5)
# at testSocket (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd10-64/test/parallel/test-child-process-fork-net.js:146:12)
# at /usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd10-64/test/parallel/test-child-process-fork-net.js:172:7
# at ChildProcess.messageHandlers (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd10-64/test/parallel/test-child-process-fork-net.js:117:9)
# at emitTwo (events.js:106:13)
# at ChildProcess.emit (events.js:191:7)
# PARENT: server listening
# CHILD: server listening
# PARENT: got connection
# PARENT: got connection
# CHILD: got connection
# PARENT: got connection
# CLIENT: connected
# CLIENT: connected
# CLIENT: connected
# CLIENT: connected
# CLIENT: closed
# CLIENT: closed
# CLIENT: closed
# CLIENT: closed
# PARENT: server closed
---
duration_ms: 0.448
@mscdex @nodejs/testing