- Timestamp:
-
09/17/09 20:45:28 (15 years ago)
- Author:
-
GlennHumphrey
- Comment:
-
Improved section on resolving uncovered code
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v51
|
v52
|
|
72 | 72 | |
73 | 73 | |
74 | | The ''report.txt'' file provided by covmerge provides a list of each uncovered range. |
75 | | Each case has to be individually analysed and addressed. Historically, we have identified multiple categories for code being uncovered: |
76 | | |
77 | | * Needs a new test case |
78 | | |
79 | | * Unreachable in current RTEMS configuration. For example, the SuperCore could have a feature only exercised by a POSIX API object. It could be disabled when POSIX is not configured. |
80 | | |
81 | | * Debug or sanity checking code which can be placed inside an RTEMS_DEBUG conditional. |
| 74 | The output files produced by covmerge are intended to provide both a quick-look at the status of a coverage run and the details needed to resolve the uncovered ranges. As we worked through the resolution of the uncovered ranges, we noticed that the uncovered ranges usually fit into one of the following categories: |
| 75 | |
| 76 | * A new test case is needed. |
| 77 | |
| 78 | * Code unreachable in selected RTEMS configuration. For example, the SuperCore could have a feature only exercised by a POSIX API object. It should be disabled when POSIX is not configured. |
| 79 | |
| 80 | * Debug or sanity checking code which should be placed inside an RTEMS_DEBUG conditional. |
82 | 81 | |
83 | 82 | * Unreachable paths generated by gcc for switches. Sometimes you have to restructure switches to avoid unreachable object code. |
84 | 83 | |
85 | 84 | * Critical sections which are synchronizing actions with ISRs. Most of these are very hard to hit and may require very specific support from a simulator environment. OAR has used tsim to exercise these paths but this is not reproducible in a BSP independent manner. Worse, sometimes there is often no external way to know the case in question has been hit and no way to do it in a one shot test. The spintrcriticalXX and psxintrcriticalXX tests attempt to reproduce these cases. |
| 85 | |
| 86 | In general, it is interesting to note that the resolution of uncovered code does not simply translate into additions to the test suite. Often the resolution points to improvements or changes to the analyzed code. |
86 | 87 | = Measuring Progress = |
87 | 88 | |