anchor.diff:          processToKill: process, // This kills the subprocess whether coverage is enabled or not.
         );
   
  +      Completer<Null> timeout = new Completer<Null>();
  +
         // Pipe stdout and stderr from the subprocess to our printStatus console.
  -      _pipeStandardStreamsToConsole(process);
  +      _pipeStandardStreamsToConsole(process, startTimeoutTimer: () {
  +        new Future<_InitialResult>.delayed(_kTestStartupTimeout, () => timeout.complete());
  +      });
   
         // At this point, three things can happen next:
         // The engine could crash, in which case process.exitCode will complete.
  
positive.code: import '$testUrl' as test;
  
  void main() {
    String server = Uri.decodeComponent('$encodedWebsocketUrl');
    StreamChannel channel = serializeSuite(() {
      catchIsolateErrors();
  
negative.code: 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 }) {
  