148 | | At this point, the RTEMS Code Coverage effort has been focused on Object Code Coverage. But we would like to go beyond Object Code Coverage and address other traditional coverage criteria (see [wiki:Developer/Coverage/CoverageAnalysisTheory Coverage Analysis Theory]). We would also like to remain true to our objectives of using freely available tools and to do the analysis without modifying the code to analyze. |
149 | | = Statement Coverage = |
150 | | |
151 | | |
152 | | This requires knowing which source files are involved (which we do) and which lines in those files can produce assembly code (which I don't think we do 100%). We can easily know which lines are comments and blank but beyond that will require some thought. |
| 148 | At this point, the RTEMS Code Coverage effort has been focused on Object Code Coverage. But we would like to go beyond Object Code Coverage and address other traditional coverage criteria (see [wiki:Developer/Coverage/CoverageAnalysisTheory Coverage Analysis Theory]). We would also like to remain true to our original guidelines of using existing tools and performing the analysis without modifying the code to analyze. |
| 149 | = Achieving Statement Coverage = |
| 150 | |
| 151 | |
| 152 | Achieving Statement Coverage requires knowing which source files are involved (which we do) and which lines in those files can produce assembly code (which I don't think we do 100%). We can easily know which lines are comments and blank but beyond that will require some thought. |
157 | | = Condition/Decision Coverage = |
158 | | |
159 | | |
160 | | QEMU -- project to do MC/DC .. update here |
161 | | |
162 | | TBD |
163 | | = MC/DC = |
164 | | |
165 | | |
166 | | From the RTEMS testing perspective, this is to verify that every branch instruction in the generated object has been both taken and not taken. We cannot determine this without help from a simulator or hardware debugger which gathers this information. |
167 | | |
168 | | QEMU -- project to do MC/DC .. update here |
| 157 | = Achieving Condition/Decision Coverage = |
| 158 | |
| 159 | |
| 160 | Achieving Condition/Decision Coverage requires knowing whether each branch has been both taken and not taken. The group responsible for the QEMU processor simulator is actively working to support coverage efforts. QEMU produces a trace of the instructions executed when an executable is run. The trace information could be analyzed to identify branch instructions and to determine whether the branch was taken and/or not taken. |
| 161 | |
| 162 | This is another open project at this point. |