| ChannelStream |  | 0% |  | 0% | 310 | 310 | 668 | 668 | 87 | 87 | 1 | 1 |
| OpenFile |   | 66% |   | 51% | 365 | 660 | 276 | 1,158 | 22 | 152 | 0 | 1 |
| PopenExecutor |   | 60% |   | 48% | 234 | 351 | 321 | 813 | 12 | 50 | 0 | 1 |
| SelectBlob |  | 0% |  | 0% | 136 | 136 | 284 | 284 | 34 | 34 | 1 | 1 |
| EncodingUtils |   | 81% |   | 71% | 156 | 417 | 160 | 924 | 11 | 87 | 0 | 1 |
| ChannelDescriptor |  | 0% |  | 0% | 73 | 73 | 172 | 172 | 49 | 49 | 1 | 1 |
| CRLFStreamWrapper |  | 0% |  | 0% | 76 | 76 | 136 | 136 | 46 | 46 | 1 | 1 |
| PosixShim |   | 40% |   | 30% | 71 | 97 | 132 | 231 | 8 | 24 | 0 | 1 |
| SelectExecutor |   | 53% |   | 44% | 65 | 99 | 88 | 211 | 2 | 19 | 0 | 1 |
| ModeFlags |   | 21% |   | 10% | 70 | 80 | 91 | 123 | 18 | 25 | 0 | 1 |
| ChannelStream.InputStreamAdapter |  | 0% |  | 0% | 16 | 16 | 47 | 47 | 5 | 5 | 1 | 1 |
| ChannelStream.OutputStreamAdapter |  | 0% |  | 0% | 15 | 15 | 49 | 49 | 5 | 5 | 1 | 1 |
| Sockaddr |   | 50% |  | 15% | 19 | 26 | 48 | 99 | 9 | 16 | 0 | 1 |
| PopenExecutor.ExecArg |   | 28% |  | 32% | 35 | 45 | 45 | 59 | 25 | 34 | 0 | 1 |
| BlockingIO |  | 0% |  | 0% | 24 | 24 | 45 | 45 | 13 | 13 | 1 | 1 |
| BlockingIO.IOSelector |  | 0% |  | 0% | 10 | 10 | 34 | 34 | 4 | 4 | 1 | 1 |
| PosixShim.LinuxWaitMacros |  | 0% | | 0% | 23 | 23 | 20 | 20 | 19 | 19 | 1 | 1 |
| SelectExecutor.new RubyThread.Task() {...} |   | 50% |   | 57% | 10 | 18 | 25 | 45 | 1 | 3 | 0 | 1 |
| BlockingIO.IOChannel |  | 0% | | 0% | 7 | 7 | 28 | 28 | 5 | 5 | 1 | 1 |
| POSIXProcess |   | 43% |  | 27% | 13 | 16 | 20 | 37 | 5 | 8 | 0 | 1 |
| ChannelFD |   | 73% |   | 62% | 16 | 34 | 13 | 72 | 0 | 9 | 0 | 1 |
| IOOptions |  | 0% | | 0% | 7 | 7 | 16 | 16 | 5 | 5 | 1 | 1 |
| SelectBlob.ENXIOSelector | | 0% | | n/a | 2 | 2 | 11 | 11 | 2 | 2 | 1 | 1 |
| SelectExecutor.ENXIOSelector | | 0% | | n/a | 2 | 2 | 11 | 11 | 2 | 2 | 1 | 1 |
| FilenoUtil |  | 77% |  | 71% | 8 | 23 | 23 | 72 | 0 | 9 | 0 | 1 |
| SelectorFactory | | 11% |  | 0% | 6 | 7 | 10 | 12 | 1 | 2 | 0 | 1 |
| OpenFile.new OpenFile.Finalizer() {...} | | 10% | | 0% | 3 | 4 | 9 | 10 | 1 | 2 | 0 | 1 |
| BlockingIO.Condition | | 0% | | n/a | 5 | 5 | 9 | 9 | 5 | 5 | 1 | 1 |
| STDIO |  | 77% |   | 50% | 9 | 18 | 4 | 15 | 2 | 7 | 0 | 1 |
| NullChannel | | 44% | | 25% | 3 | 7 | 6 | 13 | 1 | 5 | 0 | 1 |
| PosixShim.BSDWaitMacros |  | 73% | | 42% | 8 | 15 | 2 | 11 | 2 | 9 | 0 | 1 |
| POSIXProcess.new Object() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| OpenFile.new RubyThread.Task() {...} | | 68% | | 33% | 4 | 7 | 2 | 8 | 1 | 4 | 0 | 1 |
| OpenFile.new RubyThread.Task() {...} | | 68% | | 33% | 4 | 7 | 2 | 9 | 1 | 4 | 0 | 1 |
| PopenExecutor.new Comparator() {...} | | 0% | | 0% | 4 | 4 | 4 | 4 | 2 | 2 | 1 | 1 |
| PermissionDeniedException | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| EncodingUtils.new Object() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| PopenExecutor.new Object() {...} |  | 88% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| DirectoryAsFileException | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| FileExistsException | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| Stream | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| OpenFile.new Object() {...} | | 88% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| EncodingUtils.new EncodingUtils.TranscodeFallback() {...} | | 33% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| OpenFile.new RubyThread.Task() {...} | | 83% | | n/a | 1 | 3 | 2 | 4 | 1 | 3 | 0 | 1 |
| STDIO.new Object() {...} | | 88% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| PipeException | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| PopenExecutor.PopenArg | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| InvalidValueException | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| BadDescriptorException | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| EncodingUtils.new TranscoderDB.SearchPathCallback() {...} | | 94% | | 50% | 2 | 4 | 0 | 4 | 0 | 2 | 0 | 1 |
| SelectorPool |  | 99% |  | 92% | 1 | 13 | 1 | 29 | 0 | 7 | 0 | 1 |
| IOEncodable.ConvConfig |  | 100% | | n/a | 0 | 12 | 0 | 22 | 0 | 12 | 0 | 1 |
| OpenFile.InternalReadStruct | | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 | 0 | 1 |
| OpenFile.InternalWriteStruct | | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 | 0 | 1 |
| EncodingUtils.new EncodingUtils.TranscodeFallback() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| EncodingUtils.new EncodingUtils.ResizeFunction() {...} | | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
| PopenExecutor.new Comparator() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| PopenExecutor.new Comparator() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| EncodingUtils.new EncodingUtils.TranscodeFallback() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| EncodingUtils.new EncodingUtils.TranscodeFallback() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| OpenFile.BufreadArg | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| PopenExecutor.ArgvStr | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| OpenFile.Buffer | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| OpenFile.BinwriteArg | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| PopenExecutor.run_exec_dup2_fd_pair | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |