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 |