anchor.diff:    }
   
     /**
  +   * Deal with bad data received from the server.
  +   */
  +  void _badDataFromServer() {
  +    if (_receivedBadDataFromServer) {
  +      // We're already dealing with it.
  +      return;
  +    }
  +    _receivedBadDataFromServer = true;
  +    debugStdio();
  +    // Give the server 1 second to continue outputting bad data before we kill
  +    // the test.  This is helpful if the server has had an unhandled exception
  +    // and is outputting a stacktrace, because it ensures that we see the
  +    // entire stacktrace.  Use expectAsync() to prevent the test from
  +    // ending during this 1 second.
  +    new Future.delayed(new Duration(seconds: 1), expectAsync(() {
  +      fail('Bad data received from server');
  +    }));
  +  }
  +
  +  /**
      * Record a message that was exchanged with the server, and print it out if
      * [debugStdio] has been called.
      */
  
positive.code:    */
    bool _debuggingStdio = false;
  
    Server._(this._process);
  
    /**
  
negative.code:           expect(message, isNotification);
          }
        });
        process.stderr.transform((new Utf8Codec()).decoder).transform(
            new LineSplitter()).listen((String line) {
          String trimmedLine = line.trim();
          server._recordStdio('ERR:  $trimmedLine');
          server._badDataFromServer();
        });
        return server;
      });
  