anchor.diff:  import '../globals.dart';
   import 'coverage_collector.dart';
   
  +/// The timeout we give the test process to connect to the test harness
  +/// once the process has entered its main method.
   const Duration _kTestStartupTimeout = const Duration(seconds: 5);
  +
  +/// The timeout we give the test process to start executing Dart code. When the
  +/// CPU is under severe load, this can take a while, but it's not indicative of
  +/// any problem with Flutter, so we give it a large timeout.
  +const Duration _kTestProcessTimeout = const Duration(minutes: 5);
  +
  +/// Message logged by the test process to signal that its main method has begun
  +/// execution.
  +///
  +/// The test harness responds by starting the [_kTestStartupTimeout] countdown.
  +/// The CPU may be throttled, which can cause a long delay in between when the
  +/// process is spawned and when dart code execution begins; we don't want to
  +/// hold that against the test.
  +const String _kStartTimeoutTimerMessage = 'sky_shell test process has entered main method';
  +
  +/// The address at which our WebSocket server resides.
   final InternetAddress _kHost = InternetAddress.LOOPBACK_IP_V4;
   
   void installHook({ String shellPath }) {
  
positive.code:       // The local test harness could get bored of us.
  
        _InitialResult initialResult = await Future.any(<Future<_InitialResult>>[
          process.exitCode.then<_InitialResult>((int exitCode) { return _InitialResult.crashed; }),
          new Future<_InitialResult>.delayed(_kTestStartupTimeout, () { return _InitialResult.timedOut; }),
          webSocket.future.then<_InitialResult>((WebSocket webSocket) { return _InitialResult.connected; }),
        ]);
  
        switch (initialResult) {
  
negative.code:     return processManager.start(executable, arguments, environment: environment);
    }
  
    void _pipeStandardStreamsToConsole(
      Process process, {
      void startTimeoutTimer(),
    }) {
      for (Stream<List<int>> stream in
          <Stream<List<int>>>[process.stderr, process.stdout]) {
        stream.transform(UTF8.decoder)
          .transform(const LineSplitter())
          .listen((String line) {
            if (line == _kStartTimeoutTimerMessage && startTimeoutTimer != null)
              startTimeoutTimer();
            else if (line.startsWith('error: Unable to read Dart source \'package:test/'))
              printError('\n\nFailed to load test harness. Are you missing a dependency on flutter_test?\n');
            else if (line != null)
              printStatus('Shell: $line');
  