| offerService() |  | 0% |  | 0% | 25 | 25 | 75 | 75 | 1 | 1 |
| blockReport(long) |  | 0% |  | 0% | 10 | 10 | 58 | 58 | 1 | 1 |
| BPServiceActor(String, String, InetSocketAddress, InetSocketAddress, BPOfferService) |  | 0% |  | 0% | 5 | 5 | 32 | 32 | 1 | 1 |
| sendHeartBeat(boolean) |  | 0% |  | 0% | 10 | 10 | 27 | 27 | 1 | 1 |
| register(NamespaceInfo) |  | 0% |  | 0% | 3 | 3 | 25 | 25 | 1 | 1 |
| run() |  | 0% |  | 0% | 4 | 4 | 29 | 29 | 1 | 1 |
| cacheReport() |  | 0% |  | 0% | 6 | 6 | 21 | 21 | 1 | 1 |
| getActorInfoMap() |  | 0% |  | 0% | 2 | 2 | 15 | 15 | 1 | 1 |
| processQueueMessages() |  | 0% |  | 0% | 2 | 2 | 14 | 14 | 1 | 1 |
| retrieveNamespaceInfo() |  | 0% |  | 0% | 3 | 3 | 15 | 15 | 1 | 1 |
| connectToNNAndHandshake() |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 |
| triggerBlockReport(BlockReportOptions) |  | 0% |  | 0% | 2 | 2 | 9 | 9 | 1 | 1 |
| calculateBlockReportPBSize(boolean, StorageBlockReport[]) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| triggerBlockReportForTests() |  | 0% |  | 0% | 2 | 2 | 12 | 12 | 1 | 1 |
| checkNNVersion(NamespaceInfo) |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| triggerHeartbeatForTests() |  | 0% |  | 0% | 2 | 2 | 10 | 10 | 1 | 1 |
| getRpcMetricSuffix() |  | 0% |  | 0% | 7 | 7 | 7 | 7 | 1 | 1 |
| start() |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| reRegister() |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| cleanUp() |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| handleRollingUpgradeStatus(HeartbeatResponse) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| stop() |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| isAlive() |  | 0% |  | 0% | 5 | 5 | 3 | 3 | 1 | 1 |
| reportRemoteBadBlock(DatanodeInfo, ExtendedBlock) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| generateUniqueBlockReportId() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| formatThreadName(String, InetSocketAddress) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| bpThreadEnqueue(BPServiceActorAction) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| sleepAfterException() |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| join() |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| getMaxBlockReportSize() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| sleepAndLogInterrupts(int, String) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| shouldRetryInit() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| shouldRun() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| static {...} |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| toString() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| stopCommandProcessingThread() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| setLifelineNameNode(DatanodeLifelineProtocolClientSideTranslatorPB) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getRunningState() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNameNodeAddress() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setNameNode(DatanodeProtocolClientSideTranslatorPB) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getLifelineNameNodeProxy() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| sendLifelineForTests() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getBpRegistration() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getIbrManager() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNNSocketAddress() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNnId() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNameNodeProxy() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getScheduler() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isSlownode() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |