anchor.diff:      if (seenTests == fileCount) {
         resultStream.close();
       }
  -
     }).onDone(endRun);
   
     return testCompleter.future;
   }
   
  -
   String summary(Result res) =>
       'processing speed: ${(res.byteCount~/res.runtime.inMilliseconds)/1000}MiB/s\n'
  -        'total packets:${res.packetCount}\n'
  -        'total running time (msec):${res.runtime.inMilliseconds}\n'
  -        'bytes processed:${res.byteCount}\n' 'number of errors:${res.errors.length}\n'
  -        'errors:\n'
  -        '${res.errors.fold('', (buf, error) => buf + error.toString() + '\n')}';
  -
  +    'total packets:${res.packetCount}\n'
  +    'total running time (msec):${res.runtime.inMilliseconds}\n'
  +    'bytes processed:${res.byteCount}\n' 'number of errors:${res.errors.length}\n'
  +    'errors:\n'
  +    '${res.errors.fold('', (buf, error) => buf + error.toString() + '\n')}';
   
   void testFile(IO.File testFile, StreamController<Result> resultStream,
       {bool shouldFail: false}) {
  
positive.code:     }
    }
  
    new List.generate(
        3,
        (_) =>
            null).forEach(
                (_) =>
                    new IO.Directory(
                        testDataPath).list(
                            recursive: false,
                            followLinks: true).listen((IO.FileSystemEntity fse) {
      if (fse is IO.File) {
        String filename = fse.path.replaceAll(testDataPath, '');
        String suffix = filename.split('.').last;
  
negative.code:   DateTime start = new DateTime.now();
  
    Result res = new Result();
    testFile
        .openRead()
        .transform(new ESL.PacketTransformer())
        .listen((ESL.Packet packet) => res.packetCount++, onDone: () {
      res.runtime = new DateTime.now().difference(start);
      testFile.length().then((int length) {
        res.byteCount = length;
  