anchor.diff:    }
   
     void allDone() {
  -    if (_failedTests > 0) {
  +    if (!_failureSummary.isEmpty && stepName != null) {
         print('@@@STEP_FAILURE@@@');
         print('@@@BUILD_STEP $stepName failures@@@');
  +      for (String line in _failureSummary) {
  +        print(line);
  +      }
  +      print('');
       }
       super.allDone();
     }
  
positive.code: }
  
  class TestFailurePrinter extends EventListener {
    var _failureSummary = <String>[];
    var _formatter;
  
    TestFailurePrinter([this._formatter = const Formatter()]);
  
    void done(TestCase test) {
      if (test.lastCommandOutput.unexpectedOutput) {
        _printFailureOutput(test);
      }
    }
  
    void allDone() {
      _printFailureSummary();
    }
  
    void _printFailureOutput(TestCase test) {
      var failureOutput = _buildFailureOutput(test, _formatter);
      for (var line in failureOutput) {
        print(line);
      }
      print('');
      _failureSummary.addAll(failureOutput);
    }
  
    void _printFailureSummary() {
      for (String line in _failureSummary) {
        print(line);
      }
      print('');
    }
  }
  
  
negative.code: 
  class BuildbotProgressIndicator extends ProgressIndicator {
    static String stepName;
    var _failureSummary = <String>[];
  
    BuildbotProgressIndicator(Date startTime) : super(startTime);
  
    void done(TestCase test) {
      super.done(test);
      if (test.lastCommandOutput.unexpectedOutput) {
        _failureSummary.addAll(_buildFailureOutput(test));
      }
    }
  
    void _printDoneProgress(TestCase test) {
      var status = 'pass';
  