mirror of https://github.com/lukechilds/node.git
Browse Source
JSON target list response will now return appropriate IP address for instances listening on 0.0.0.0. Backport of https://github.com/nodejs/node/pull/11755 PR-URL: https://github.com/nodejs/node/pull/11850 Refs: https://github.com/nodejs/node/issues/11591 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Italo A. Casas <me@italoacasas.com> Reviewed-By: James Snell <jasnell@gmail.com>v7.x
Eugene Ostroukhov
8 years ago
4 changed files with 99 additions and 16 deletions
@ -0,0 +1,52 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
common.skipIfInspectorDisabled && common.skipIfInspectorDisabled(); |
|||
|
|||
const assert = require('assert'); |
|||
const helper = require('./inspector-helper.js'); |
|||
const os = require('os'); |
|||
|
|||
const ip = pickIPv4Address(); |
|||
|
|||
if (!ip) { |
|||
common.skip('No IP address found'); |
|||
return; |
|||
} |
|||
|
|||
function checkListResponse(instance, err, response) { |
|||
assert.ifError(err); |
|||
const res = response[0]; |
|||
const wsUrl = res['webSocketDebuggerUrl']; |
|||
assert.ok(wsUrl); |
|||
const match = wsUrl.match(/^ws:\/\/(.*):9229\/(.*)/); |
|||
assert.strictEqual(ip, match[1]); |
|||
assert.strictEqual(res['id'], match[2]); |
|||
assert.strictEqual(ip, res['devtoolsFrontendUrl'].match(/.*ws=(.*):9229/)[1]); |
|||
instance.childInstanceDone = true; |
|||
} |
|||
|
|||
function checkError(instance, error) { |
|||
// Some OSes will not allow us to connect
|
|||
if (error.code === 'EHOSTUNREACH') { |
|||
common.skip('Unable to connect to self'); |
|||
} else { |
|||
throw error; |
|||
} |
|||
instance.childInstanceDone = true; |
|||
} |
|||
|
|||
function runTests(instance) { |
|||
instance |
|||
.testHttpResponse(ip, '/json/list', checkListResponse.bind(null, instance), |
|||
checkError.bind(null, instance)) |
|||
.kill(); |
|||
} |
|||
|
|||
function pickIPv4Address() { |
|||
for (const i of [].concat(...Object.values(os.networkInterfaces()))) { |
|||
if (i.family === 'IPv4' && i.address !== '127.0.0.1') |
|||
return i.address; |
|||
} |
|||
} |
|||
|
|||
helper.startNodeForInspectorTest(runTests, '--inspect-brk=0.0.0.0'); |
Loading…
Reference in new issue