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

Changes between Version 17 and Version 18 of Developer/OpenProjects


Ignore:
Timestamp:
03/06/08 22:08:59 (16 years ago)
Author:
JoelSherrill
Comment:

/* Coverage Analysis */ Improve.

Legend:

Unmodified
Added
Removed
Modified
  • Developer/OpenProjects

    v17 v18  
    527527supported by the [wiki:Skyeye Skyeye]/RTEMS combination.
    528528
     529The analysis will identify a subset of RTEMS such as the SuperCore and
     530a single API implementation and use that as the basis for analysis. RTEMS
     531includes a lot of source code and the coverage analysis should only focus
     532on improving the test coverage of that code subset.
     533
    529534The resulting analysis is expected to provide a report on individual
    530535assembly instructions within RTEMS subsystems which are not currently
    531 exercised by existing tests.  Each case has to be individually analyzed
     536exercised by existing tests. Each case has to be individually analyzed
    532537and addressed.  Historically, we have identified multiple categories
    533538for code being uncovered:
     
    535540 *  Needs a new test case
    536541
    537  *  Unreachable in current RTEMS configuration.  For example, the SuperCore
    538 could have a feature only exercised by a POSIX API object.  It could
    539 be disabled when POSIX is not configured.
    540 
    541  *  Debug or sanity checking code which can be placed inside an RTEMS_DEBUG
    542 conditional.
    543 
    544  *  Unreachable paths generated by gcc for switches.  Sometimes you
    545 have to restructure switches to avoid unreachable object code.
     542 *  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.
     543
     544 *  Debug or sanity checking code which can be placed inside an RTEMS_DEBUG conditional.
     545
     546 *  Unreachable paths generated by gcc for switches.  Sometimes you have to restructure switches to avoid unreachable object code.
    546547
    547548 *  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, 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.
     549
     550There are multiple ways to measure progress on this task. In the past, we have used two metrics.  The first is the reduction in the number of uncovered binary code ranges from that identified initially.  The second is the percent of untested binary object code as a percentage of the total code size under analysis.  Together the metrics provide useful information.  Some uncovered ranges may be a single instruction so eliminating that case improves the first metric more than the second.