anchor.diff:  void onCoverageOutput(String line) {
     print("COV: $line");
     if (nextLineToMatch < sourceLines.length) {
  -    if (line.endsWith(sourceLines[nextLineToMatch])) {
  +    if (line.endsWith("|" + sourceLines[nextLineToMatch])) {
         nextLineToMatch++;
       }
     }
   }
   
  -void onCoverageExit(exitCode) {
  +bool checkExitCode(exitCode) {
     var pid = coverageToolProcess.pid;
  -  print("process $pid terminated with exit code $exitCode.");
  -  if (nextLineToMatch < sourceLines.length) {
  +  print("Coverage tool process (pid $pid) terminated with "
  +        "exit code $exitCode.");
  +  return exitCode == 0;
  +}
  +
  +void checkSuccess() {
  +  if (nextLineToMatch == sourceLines.length) {
  +    print("Successfully matched all lines of '$targPath'");
  +  } else {
       print("Error: could not match all source code lines of '$targPath'");
       exit(-1);
  -  } else {
  -    print("Successfully matched all lines of '$targPath'");
     }
   }
   
  
positive.code:     var stdoutStringStream = coverageToolProcess.stdout
          .transform(new StringDecoder())
          .transform(new LineTransformer());
      stdoutStringStream.listen(onCoverageOutput);
  
      var stderrStringStream = coverageToolProcess.stderr
          .transform(new StringDecoder())
          .transform(new LineTransformer());
      stderrStringStream.listen(onCoverageOutput);
  
      coverageToolProcess.exitCode.then(onCoverageExit);
    });
  }
  
negative.code: // runs.
  
  import "dart:io";
  import "dart:async";
  
  // Coverage tool script relative to the path of this test.
  var coverageToolScript = "../../tools/coverage.dart";
  