blob: 7ad1483da24ace8aa8d288fec35b301b54954128 [file] [log] [blame]
part of coverage;
/// Converts the given hitmap to lcov format and appends the result to
/// env.output.
///
/// Returns a [Future] that completes as soon as all map entries have been
/// emitted.
Future lcov(Map hitmap, IOSink output) {
var emitOne = (key) {
var v = hitmap[key];
StringBuffer entry = new StringBuffer();
entry.write('SF:${key}\n');
v.keys.toList()
..sort()
..forEach((k) {
entry.write('DA:${k},${v[k]}\n');
});
entry.write('end_of_record\n');
output.write(entry.toString());
return new Future.value(null);
};
return Future.forEach(hitmap.keys, emitOne);
}