anchor.diff:            failures.addAll(result.stderr.map((line) => '| $line'));
           }
   
  -        throw new ExpectException(failures.join('\n'));
  +        throw new TestFailure(failures.join('\n'));
         }
   
         return null;
  
positive.code:     return listDir(dir).then((files) {
        var matches = files.where((file) => endsWithPattern(file, name)).toList();
        if (matches.isEmpty) {
          throw new ExpectException('No files in $dir match pattern $name.');
        }
        if (matches.length == 1) return validate(matches[0]);
  
  
negative.code:   Future validate(String dir) {
      return defer(() {
        if (entryExists(path.join(dir, name))) {
          throw new TestFailure('File $name in $dir should not exist.');
        }
      });
    }
  