| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 ------------------------------------------------- |  | 
| 2 - README file for the LTP GCOV extension (LCOV) - |  | 
| 3 - Last changes: 2010-08-06                      - |  | 
| 4 ------------------------------------------------- |  | 
| 5 |  | 
| 6 Description |  | 
| 7 ----------- |  | 
| 8   LCOV is an extension of GCOV, a GNU tool which provides information about |  | 
| 9   what parts of a program are actually executed (i.e. "covered") while running |  | 
| 10   a particular test case. The extension consists of a set of PERL scripts |  | 
| 11   which build on the textual GCOV output to implement the following enhanced |  | 
| 12   functionality: |  | 
| 13 |  | 
| 14     * HTML based output: coverage rates are additionally indicated using bar |  | 
| 15       graphs and specific colors. |  | 
| 16 |  | 
| 17     * Support for large projects: overview pages allow quick browsing of |  | 
| 18       coverage data by providing three levels of detail: directory view, |  | 
| 19       file view and source code view. |  | 
| 20 |  | 
| 21   LCOV was initially designed to support Linux kernel coverage measurements, |  | 
| 22   but works as well for coverage measurements on standard user space |  | 
| 23   applications. |  | 
| 24 |  | 
| 25 |  | 
| 26 Further README contents |  | 
| 27 ----------------------- |  | 
| 28   1. Included files |  | 
| 29   2. Installing LCOV |  | 
| 30   3. An example of how to access kernel coverage data |  | 
| 31   4. An example of how to access coverage data for a user space program |  | 
| 32   5. Questions and Comments |  | 
| 33 |  | 
| 34 |  | 
| 35 |  | 
| 36 1. Important files |  | 
| 37 ------------------ |  | 
| 38   README             - This README file |  | 
| 39   CHANGES            - List of changes between releases |  | 
| 40   bin/lcov           - Tool for capturing LCOV coverage data |  | 
| 41   bin/genhtml        - Tool for creating HTML output from LCOV data |  | 
| 42   bin/gendesc        - Tool for creating description files as used by genhtml |  | 
| 43   bin/geninfo        - Internal tool (creates LCOV data files) |  | 
| 44   bin/genpng         - Internal tool (creates png overviews of source files) |  | 
| 45   bin/install.sh     - Internal tool (takes care of un-/installing) |  | 
| 46   descriptions.tests - Test descriptions for the LTP suite, use with gendesc |  | 
| 47   man                - Directory containing man pages for included tools |  | 
| 48   example            - Directory containing an example to demonstrate LCOV |  | 
| 49   lcovrc             - LCOV configuration file |  | 
| 50   Makefile           - Makefile providing 'install' and 'uninstall' targets |  | 
| 51 |  | 
| 52 |  | 
| 53 2. Installing LCOV |  | 
| 54 ------------------ |  | 
| 55 The LCOV package is available as either RPM or tarball from: |  | 
| 56 |  | 
| 57   http://ltp.sourceforge.net/coverage/lcov.php |  | 
| 58 |  | 
| 59 To install the tarball, unpack it to a directory and run: |  | 
| 60 |  | 
| 61   make install |  | 
| 62 |  | 
| 63 Use anonymous CVS for the most recent (but possibly unstable) version: |  | 
| 64 |  | 
| 65   cvs -d:pserver:anonymous@ltp.cvs.sourceforge.net:/cvsroot/ltp login |  | 
| 66 |  | 
| 67 (simply press the ENTER key when asked for a password) |  | 
| 68 |  | 
| 69   cvs -z3 -d:pserver:anonymous@ltp.cvs.sourceforge.net:/cvsroot/ltp export -D no
     w utils |  | 
| 70 |  | 
| 71 Change to the utils/analysis/lcov directory and type: |  | 
| 72 |  | 
| 73   make install |  | 
| 74 |  | 
| 75 |  | 
| 76 3. An example of how to access kernel coverage data |  | 
| 77 --------------------------------------------------- |  | 
| 78 Requirements: get and install the gcov-kernel package from |  | 
| 79 |  | 
| 80   http://sourceforge.net/projects/ltp |  | 
| 81 |  | 
| 82 Copy the resulting gcov kernel module file to either the system wide modules |  | 
| 83 directory or the same directory as the PERL scripts. As root, do the following: |  | 
| 84 |  | 
| 85   a) Resetting counters |  | 
| 86 |  | 
| 87      lcov --zerocounters |  | 
| 88 |  | 
| 89   b) Capturing the current coverage state to a file |  | 
| 90 |  | 
| 91      lcov --capture --output-file kernel.info |  | 
| 92 |  | 
| 93   c) Getting HTML output |  | 
| 94 |  | 
| 95      genhtml kernel.info |  | 
| 96 |  | 
| 97 Point the web browser of your choice to the resulting index.html file. |  | 
| 98 |  | 
| 99 |  | 
| 100 4. An example of how to access coverage data for a user space program |  | 
| 101 --------------------------------------------------------------------- |  | 
| 102 Requirements: compile the program in question using GCC with the options |  | 
| 103 -fprofile-arcs and -ftest-coverage. During linking, make sure to specify |  | 
| 104 -lgcov or -coverage. |  | 
| 105 |  | 
| 106 Assuming the compile directory is called "appdir", do the following: |  | 
| 107 |  | 
| 108   a) Resetting counters |  | 
| 109 |  | 
| 110      lcov --directory appdir --zerocounters |  | 
| 111 |  | 
| 112   b) Capturing the current coverage state to a file (works only after the |  | 
| 113      application has been started and stopped at least once) |  | 
| 114 |  | 
| 115      lcov --directory appdir --capture --output-file app.info |  | 
| 116 |  | 
| 117   c) Getting HTML output |  | 
| 118 |  | 
| 119      genhtml app.info |  | 
| 120 |  | 
| 121 Point the web browser of your choice to the resulting index.html file. |  | 
| 122 |  | 
| 123 Please note that independently of where the application is installed or |  | 
| 124 from which directory it is run, the --directory statement needs to |  | 
| 125 point to the directory in which the application was compiled. |  | 
| 126 |  | 
| 127 For further information on the gcc profiling mechanism, please also |  | 
| 128 consult the gcov man page. |  | 
| 129 |  | 
| 130 |  | 
| 131 5. Questions and comments |  | 
| 132 ------------------------- |  | 
| 133 See the included man pages for more information on how to use the LCOV tools. |  | 
| 134 |  | 
| 135 Please email further questions or comments regarding this tool to the |  | 
| 136 LTP Mailing list at ltp-coverage@lists.sourceforge.net |  | 
| 137 |  | 
| OLD | NEW | 
|---|