in test-discovery/src/com/intellij/rt/coverage/data/api/TestDiscoveryProtocolUtil.java [103:127]
private static void readClassMetadata(DataInputStream input, TestDiscoveryProtocolReader reader) throws IOException {
TestDiscoveryProtocolReader.ClassMetadataReader metadataReader = reader.createClassMetadataReader();
int classesCount = CoverageIOUtil.readINT(input);
if (classesCount == 0) return;
while (classesCount-- > 0) {
final int classId = CoverageIOUtil.readINT(input);
if (metadataReader != null) metadataReader.classStarted(classId);
int filesCount = CoverageIOUtil.readINT(input);
while (filesCount-- > 0) {
final int fileId = CoverageIOUtil.readINT(input);
if (metadataReader != null) metadataReader.file(fileId);
}
int methodsCount = CoverageIOUtil.readINT(input);
while (methodsCount-- > 0) {
final int methodId = CoverageIOUtil.readINT(input);
final int hashLength = CoverageIOUtil.readINT(input);
final byte[] hash = new byte[hashLength];
final int read = input.read(hash);
assert read == hashLength;
if (metadataReader != null) metadataReader.method(methodId, hash);
}
if (metadataReader != null) metadataReader.classFinished(classId);
}
if (metadataReader != null) metadataReader.finished();
}