Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

Changes between Version 51 and Version 52 of TBR/UserManual/RTEMS_Coverage_Analysis


Ignore:
Timestamp:
09/17/09 20:45:28 (15 years ago)
Author:
GlennHumphrey
Comment:

Improved section on resolving uncovered code

Legend:

Unmodified
Added
Removed
Modified
  • TBR/UserManual/RTEMS_Coverage_Analysis

    v51 v52  
    7272
    7373
    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.
     74The 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.
    8281
    8382 *  Unreachable paths generated by gcc for switches.  Sometimes you have to restructure switches to avoid unreachable object code.
    8483
    8584 *  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
     86In 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.
    8687= Measuring Progress =
    8788