text: 'use strict';
  const common = require('../common');
  
  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');
  
  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.printSkipMessage('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');
  