text: 'use strict';
  
  const common = require('../common');
  const assert = require('assert');
  const spawn = require('child_process').spawn;
  
  let run = () => {};
  function test(args, re) {
    const next = run;
    run = () => {
      const options = {encoding: 'utf8'};
      const proc = spawn(process.execPath, args.concat(['-e', '0']), options);
      let stderr = '';
      proc.stderr.setEncoding('utf8');
      proc.stderr.on('data', (data) => {
        stderr += data;
        if (re.test(stderr)) proc.kill();
      });
      proc.on('exit', common.mustCall(() => {
        assert(re.test(stderr));
        next();
      }));
    };
  }
  
  test(['--debug-brk'], /Debugger listening on (\[::\]|0\.0\.0\.0):5858/);
  test(['--debug-brk=1234'], /Debugger listening on (\[::\]|0\.0\.0\.0):1234/);
  test(['--debug-brk=127.0.0.1'], /Debugger listening on 127\.0\.0\.1:5858/);
  test(['--debug-brk=127.0.0.1:1234'], /Debugger listening on 127\.0\.0\.1:1234/);
  test(['--debug-brk=localhost'],
       /Debugger listening on (\[::\]|127\.0\.0\.1):5858/);
  test(['--debug-brk=localhost:1234'],
       /Debugger listening on (\[::\]|127\.0\.0\.1):1234/);
  
  if (common.hasIPv6) {
    test(['--debug-brk=::'], /Debug port must be in range 1024 to 65535/);
    test(['--debug-brk=::0'], /Debug port must be in range 1024 to 65535/);
    test(['--debug-brk=::1'], /Debug port must be in range 1024 to 65535/);
    test(['--debug-brk=[::]'], /Debugger listening on \[::\]:5858/);
    test(['--debug-brk=[::0]'], /Debugger listening on \[::\]:5858/);
    test(['--debug-brk=[::]:1234'], /Debugger listening on \[::\]:1234/);
    test(['--debug-brk=[::0]:1234'], /Debugger listening on \[::\]:1234/);
    test(['--debug-brk=[::ffff:127.0.0.1]:1234'],
         /Debugger listening on \[::ffff:127\.0\.0\.1\]:1234/);
  }
  
  run();  // Runs tests in reverse order.
  