Changes between Version 74 and Version 75 of TBR/UserManual/RTEMS_Coverage_Analysis


Ignore:
Timestamp:
Sep 21, 2009, 8:41:13 PM (10 years ago)
Author:
GlennHumphrey
Comment:

/* Coverage Profiles */ Added clarifications of the different profiles

Legend:

Unmodified
Added
Removed
Modified
  • TBR/UserManual/RTEMS_Coverage_Analysis

    v74 v75  
    112112
    113113
    114 RTEMS contains a lot of source code and although the primary focus of coverage analysis is to achieve 100% coverage of well-defined code subsets, we would also like to increase the amount of source code analyzed.  In order to manage the increase in a systematic manner, we defined to basic groups of source code.  The first group is called Baseline and the second group is called Developmental.  The Baseline group contains the source code that has achieved (or nearly achieved) 100% Object Code Coverage.  The Developmental group contains the source code for which there are very few test cases and therefore very poor coverage.
     114RTEMS contains a lot of source code and although the primary focus of coverage analysis is to achieve 100% coverage of well-defined code subsets, we would also like to increase the amount of source code analyzed.  In order to manage the increase in a systematic manner, we defined two basic groups of source code.  The first group is called Baseline and the second group is called Developmental.  The Baseline group contains the source code that has achieved (or nearly achieved) 100% Object Code Coverage.  The Developmental group contains the source code for which there are very few test cases and therefore very poor coverage.
    115115
    116116Initially, the Baseline group included source code from the cpukit.  Specifically the following cpukit directories were included:  score, sapi, rtems and posix.  This group represents a full tasking and synchronization feature set.  What was not in the Baseline group was placed in the Developmental group.  The Developmental group included: libcsupport, libfs/imfs, libmisc/stackchk, libmisc/cpuuse, libmisc/bspcmdline, libmisc/dmpbuf and libmisc/devnull.
    117117
    118 From the two groups, we recognized the need to analyze each group with POSIX enabled and POSIX disabled.  This produced four sub-groups that we called profiles.  The four profiles are:
    119 
    120  *  Baseline (POSIX Enabled)
    121  *  Baseline (POSIX Disabled)
    122  *  Developmental (POSIX Enabled)
    123  *  Developmental (POSIX Disabled)
    124 
    125 As other support libraries in cpukit is covered, these will be move from the Developmental Profile and added to the '''POSIX Enabled''' and '''Classic API Only''' profiles
    126 
    127 There are four code subsets analysed with the option of using the -O2 or -Os level.
     118From the two groups, we recognized the need to use different compiler optimization levels and to analyze each group with POSIX enabled and POSIX disabled.  Applying these options produced eight sub-groups that we called profiles.  The eight profiles are:
     119
     120 *  Baseline (-Os, POSIX Enabled)
     121 *  Baseline (-O2, POSIX Enabled)
     122 *  Baseline (-Os, POSIX Disabled)
     123 *  Baseline (-O2, POSIX Disabled)
     124 *  Developmental (-Os, POSIX Enabled)
     125 *  Developmental (-O2, POSIX Enabled)
     126 *  Developmental (-Os, POSIX Disabled)
     127 *  Developmental (-O2, POSIX Disabled)
     128
     129Initially, the code to be analyzed should be compiled with optimization level -Os.  This optimizes for size without making the object code too difficult to follow.  Following the object code can be important when trying to determime how to resolve the uncovered code.  Once the analyzed code approaches 100% covered, it is desirable to change the optimization level to -O2.  This is the most often used optimization level.
     130
     131The POSIX interface represents a significant difference in functionality within RTEMS.  When POSIX is enabled ***ADD MORE HERE***.  When POSIX is disabled, RTEMS is configured for the classic API only.
     132
     133Over time it is desirable to migrate code from the Developmental group to the Baseline.  As support libraries in cpukit become nearly 100% covered, they will be move from the Developmental group to the Baseline group.  Eventually, the Baseline group should contain all of the RTEMS code and the Developmental group should contain nothing.
    128134= Compilation and Configuration Options =
    129135