Version 1.10 ============ All: - Disabled branch coverage processing per default to improve processing performance (can be re-enabled using a config file setting) - Added option --rc to override config file settings from the command line - Added option --config-file to override the config file location - Fixed handling of '<' in filenames genhtml: - Added option --ignore-errors to continue after errors - Added man page note to further explain branch coverage output - Fixed man page description of default coverage rates - Fixed HTML page title for directory pages - Fixed handling of special characters in file and directory names - Fixed directory prefix calculation - Fixed warning when source files are found in root directory geninfo: - Added options --external and --no-external to include/exclude external source files such as standard libary headers - Added option --compat to specify compatibility modes - Added missing man page sections for --derive-func-data and --no-markers - Added support for MinGW output on MSYS. From martin.hopfeld@sse-erfurt.de - Added support for gcc 4.7 .gcno file format. Based on patch by berrange@redhat.com - Added auto-detection of gcc-4.7 function record format. Includes suggestions by garnold@google.com - Fixed exclusion markers for --derive-func-data. Reported by bettse@gmail.com - Fixed processing of pre-3.3 gcov files. Reported by georgysebastian@gmail.com - Fixed handling of '<built-in>.gcov' files - Fixed warning about unhandled .gcov files - Improved --debug output - Removed help text for obsolete parameter --function-coverage genpng: - Fixed handling of empty source files. Reported by: sylvestre@debian.org lcov: - Added options --external and --no-external to include/exclude external source files such as standard libary headers - Added option --summary to show summary coverage information - Added option --compat to specify compatibility modes - Fixed missing Perl version dependency in RPM spec file. Reported by Martin Hopfeld <martin.hopfeld@sse-erfurt.de> - Fixed geninfo not recognizing Objective-C functions. Based on patch by abrahamh@web.de - Fixed option --no-recursion not being passed to geninfo - Fixed capitalization of the term 'Perl' - Improved coverage rate calculation to only show 0%/100% when no/full coverage is achieved. Based on suggestions by Paul.Zimmermann@loria.fr and vincent@vinc17.net lcovrc: - Added description for geninfo_compat setting - Added config file setting 'genhtml_charset' to specify HTML charset - Added config file setting 'geninfo_external' to include/exclude external source files such as standard libary headers - Added config file setting 'geninfo_gcov_all_blocks' to modify lcov's use of gcov's -a option - Added config file setting 'geninfo_compat' to specify compatibility modes - Added config file setting 'geninfo_adjust_src_path' to enabled source path adjustments. Inspired by patch by ammon.riley@gmail.com - Added config file setting 'geninfo_auto_base' to automatically determine the base directory when collecting coverage data - Added config file setting 'lcov_function_coverage' to enable/disable function coverage processing - Added config file setting 'lcov_branch_coverage' to enable/disable branch coverage processing Version 1.9 =========== genhtml: - Improved wording for branch representation tooltip text - Fixed vertical alignment of HTML branch representation geninfo: - Improved warning message about --initial not generating branch coverage data - Debugging messages are now printed to STDERR instead of STDOUT - Fixed problem with some .gcno files. Reported by gui@futarque.com. (file.gcno: reached unexpected end of file) - Fixed problem with relative build paths. Reported by zhanbiao2000@gmail.com. (cannot find an entry for ^#src#test.c.gcov in .gcno file, skipping file!) - Fixed problem where coverage data is missing for some files. Reported by weston_schmidt@open-roadster.com - Fixed problem where exclusion markers are ignored when gathering initial coverage data. Reported by ahmed_osman@mentor.com. - Fixed large execution counts showing as negative numbers in HTML output. Reported by kkyriako@yahoo.com. - Fixed problem that incorrectly associated branches outside of a block with branches inside the first block lcov: - Fixed problem that made lcov ignore --kernel-directory parameters when specifying --initial. Reported by hjia@redhat.com. - Added --list-full-path option to prevent lcov from truncating paths in list output - Added lcov_list_width and lcov_list_truncate_max directives to the lcov configuration file to allow for list output customization - Improved list output COPYING: - Added license text to better comply with GPL recommendations Version 1.8 =========== gendesc: - Fixed problem with single word descriptions genhtml: - Added support for branch coverage measurements - Added --demangle-cpp option to convert C++ function names to human readable format. Based on a patch by slava.semushin@gmail.com. - Improved color legend: legend display takes up less space in HTML output - Improved coverage rate limits: all coverage types use the same limits unless specified otherwise - Fixed CRLF line breaks in source code when generating html output. Based on patch by michael.knigge@set-software.de. - Fixed warning when $HOME is not set - Fixed problem with --baseline-file option. Reported by sixarm@gmail.com. (Undefined subroutine &main::add_fnccounts called at genhtml line 4560.) - Fixed problem with --baseline-file option and files without function coverage data (Can't use an undefined value as a HASH reference at genhtml line 4441.) - Fixed short-name option ambiguities - Fixed --highlight option not showing line data from converted test data - Fixed warnings about undefined value used. Reported by nikita@zhuk.fi. - Fixed error when processing tracefiles without function data. Reported by richard.corden@gmail.com (Can't use an undefined value as a HASH reference at genhtml line 1506.) geninfo: - Added support for branch coverage measurements - Added support for exclusion markers: Users can exclude lines of code from coverage reports by adding keywords to the source code. - Added --derive-func-data option - Added --debug option to better debug problems with graph files - Fixed CRLF line breaks in source code when generating tracefiles. Based on patch by michael.knigge@set-software.de. - Fixed problems with unnamed source files - Fixed warning when $HOME is not set. Reported by acalando@free.fr. - Fixed errors when processing unnamed source files - Fixed help text typo - Fixed errors when processing incomplete function names in .bb files - Fixed filename prefix detection - Fixed problem with matching filename - Fixed problem when LANG is set to non-english locale. Reported by benoit_belbezet@yahoo.fr. - Fixed short-name option ambiguities genpng: - Fixed runtime-warning lcov: - Added support for branch coverage measurements - Added support for the linux-2.6.31 upstream gcov kernel support - Added --from-package and --to-package options - Added --derive-func-data option - Added overall coverage result output for more operations - Improved output of lcov --list - Improved gcov-kernel handling - Fixed minor problem with --diff - Fixed double-counting of function data - Fixed warning when $HOME is not set. Reported by acalando@free.fr. - Fixed error when combining tracefiles without function data. Reported by richard.corden@gmail.com. (Can't use an undefined value as a HASH reference at lcov line 1341.) - Fixed help text typo - Fixed filename prefix detection - Fixed lcov ignoring information about converted test data README: - Added note to mention required -lgcov switch during linking Version 1.7: ============ gendesc: - Updated error and warning messages - Updated man page genhtml: - Added function coverage data display patch by tomzo@nefkom.net (default is on) - Added --function-coverage to enable function coverage display - Added --no-function-coverage to disable function coverage display - Added sorting option in HTLM output (default is on) - Added --sort to enable sorting - Added --no-sort to disable sorting - Added --html-gzip to create gzip-compressed HTML output (patch by dnozay@vmware.com) - Fixed problem when using --baseline-file on coverage data files that contain data for files not found in the baseline file - Updated error and warning messages - Updated man page geninfo: - Added function coverage data collection patch by tomzo@nefkom.net - Added more verbose output when a "ERROR: reading string" error occurs (patch by scott.heavner@philips.com) - Fixed geninfo not working with directory names containing spaces (reported by jeffconnelly@users.sourceforge.net) - Fixed "ERROR: reading string" problem with gcc 4.1 - Fixed problem with function names that contain non-alphanumerical characters - Fixed problem with gcc versions before 3.3 - Updated error and warning messages - Updated man page genpng: - Updated error and warning messages - Updated man page lcov: - Added support for function coverage data for adding/diffing tracefiles - Added --no-recursion option to disable recursion into sub-directories while scanning for gcov data files - Fixed lcov -z not working with directory names containing spaces (reported by Jeff Connelly) - Updated error and warning messages - Updated man page lcov.spec: - Updated of description and title information lcovrc: - Added genhtml_function_hi_limit - Added genhtml_function_med_limit - Added genhtml_function_coverage - Added genhtml_sort - Updated man page Makefile: - Updated info text Version 1.6: ============ geninfo: - Added libtool compatibility patch by thomas@apestaart.org (default is on) - Added --compat-libtool option to enable libtool compatibility mode - Added --no-compat-libtool option to disable libtool compatibility mode - Changed default for line checksumming to off - Added --checksum option to enable line checksumming - Added --gcov-tool option - Added --ignore-errors option - Added --initial option to generate zero coverage from graph files - Removed automatic test name modification on s390 - Added --checksum option - Updated man page lcov: - Added libtool compatibility patch by thomas@apestaart.org - Added --compat-libtool option to enable libtool compatibility mode - Added --no-compat-libtool option to disable libtool compatibility mode - Added --checksum option to enable line checksumming - Added --gcov-tool option - Added --ignore-errors option - Added --initial option to generate zero coverage from graph files - Updated help text - Updated man page - Fixed lcov not working when -k is specified more than once - Fixed lcov not deleting .gcda files when specifying -z and -d lcovrc: - Added geninfo_compat_libtool option - Added geninfo_checksum option - Removed geninfo_no_checksum option from example lcovrc - Updated man page README: - Added description of lcovrc file Version 1.5: ============ genhtml: - Added check for invalid characters in test names - Added --legend option - Added --html-prolog option - Added --html-epilog option - Added --html-extension option - Added warning when specifying --no-prefix and --prefix - Reworked help text to make it more readable geninfo: - Renamed 'sles9' compatibility mode to 'hammer' compatibility mode - Added support for mandrake gcc 3.3.2 - Fixed bbg file reading in hammer compatibility mode - Added check for invalid characters in test names - Added --base-directory option lcov: - Added check for invalid characters in test names - Added --base-directory option Version 1.4: ============ All: - Added configuration file support genhtml: - Fixed help text message - Fixed handling of special characters in file- and directory names - Added description of --css-file option to man page geninfo: - Added support for GCOV file format as used by GCC 3.3.3 on SUSE SLES9 - Fixed error text message - Added check to abort processing if no source code file is available - Added workaround for a problem where geninfo could not find source code files for a C++ project - Fixed 'branch'-statement parsing for GCC>=3.3 .gcov files - Fixed exec count-statement parsing for GCC>=3.3 .gcov files - Fixed .gcno-file parser (some lines were not counted as being instrumented) lcov: - Modified path for temporary files from '.' to '/tmp' - Fixed comments - Removed unused function 'escape_shell' lcovrc: - Introduced sample configuration file Makefile: - Added rule to install configuration file - Fixed installation path for man pages Version 1.3: ============ All: - Added compatibility for gcc-3.4 lcov: - Modified --diff function to better cope with ambiguous entries in patch files - Modified --capture option to use modprobe before insmod (needed for 2.6) - Added --path option required for --diff function Version 1.2: ============ All: - Added compatibility for gcc-3.3 - Adjusted LCOV-URL (http://ltp.sourceforge.net/coverage/lcov.php) - Minor changes to whitespaces/line breaks/spelling - Modified call mechanism so that parameters for external commands are not parsed by the shell mechanism anymore (no more problems with special characters in paths/filenames) - Added checksumming mechanism: each tracefile now contains a checksum for each instrumented line to detect incompatible data Makefile: - Added rule to build source RPM - Changed install path for executables (/usr/local/bin -> /usr/bin) lcov.spec: - Modified to support building source rpms updateversion.pl: - Modified to include update of release number in spec file genhtml: - Fixed bug which would not correctly associate data sets with an empty test name (only necessary when using --show-details in genhtml) - Implemented new command line option '--nochecksum' to suppress generation of checksums - Implemented new command line option '--highlight' which highlights lines of code which were only covered in converted tracefiles (see '--diff' option of lcov) geninfo: - Added workaround for a bug in gcov shipped with gcc-3.2 which aborts when encountering empty .da files - Fixed geninfo so that it does not abort after encountering empty .bb files - Added function to collect branch coverage data - Added check for gcov tool - Added check for the '--preserve-paths' option of gcov; if available, this will prevent losing .gcov files in some special cases (include files with same name in different subdirectories) - Implemented new command line option '--follow' to control whether or not links should be followed while searching for .da files. - Implemented new command line option '--nochecksum' to suppress generation of checksums lcov: - Fixed bug which would not correctly associate data sets with an empty test name (only necessary when using --show-details in genhtml) - Cleaned up internal command line option check - Files are now processed in alphabetical order - Added message when reading tracefiles - Implemented new command line option '--nochecksum' to suppress generation of checksums - Implemented new command line option '--diff' which allows converting coverage data from an older source code version by using a diff file to map line numbers - Implemented new command line option '--follow' to control whether or not links should be followed while searching for .da files. genpng: - Added support for the highlighting option of genhtml - Corrected tab to spaces conversion - Modified genpng to take number of spaces to use in place of tab as input instead of replacement string Version 1.1: ============ - Added CHANGES file - Added Makefile implementing the following targets: * install : install LCOV scripts and man pages * uninstall : revert previous installation * dist : create lcov.tar.gz file and lcov.rpm file * clean : clean up example directory, remove .tar and .rpm files - Added man pages for all scripts - Added example program to demonstrate the use of LCOV with a userspace application - Implemented RPM build process - New directory structure: * bin : contains all executables * example : contains a userspace example for LCOV * man : contains man pages * rpm : contains files required for the RPM build process - LCOV-scripts are now in bin/ - Removed .pl-extension from LCOV-script files - Renamed readme.txt to README README: - Adjusted mailing list address to ltp-coverage@lists.sourceforge.net - Fixed incorrect parameter '--output-filename' in example LCOV call - Removed tool descriptions and turned them into man pages - Installation instructions now refer to RPM and tarball descriptions.tests: - Fixed some spelling errors genhtml: - Fixed bug which resulted in an error when trying to combine .info files containing data without a test name - Fixed bug which would not correctly handle data files in directories with names containing some special characters ('+', etc.) - Added check for empty tracefiles to prevent division-by-zeros - Implemented new command line option --num-spaces / the number of spaces which replace a tab in source code view is now user defined - Fixed tab expansion so that in source code view, a tab doesn't produce a fixed number of spaces, but as many spaces as are needed to advance to the next tab position - Output directory is now created if it doesn't exist - Renamed "overview page" to "directory view page" - HTML output pages are now titled "LCOV" instead of "GCOV" - Information messages are now printed to STDERR instead of STDOUT geninfo: - Fixed bug which would not allow .info files to be generated in directories with names containing some special characters - Information messages are now printed to STDERR instead of STDOUT lcov: - Fixed bug which would cause lcov to fail when the tool is installed in a path with a name containing some special characters - Implemented new command line option '--add-tracefile' which allows the combination of data from several tracefiles - Implemented new command line option '--list' which lists the contents of a tracefile - Implemented new command line option '--extract' which allows extracting data for a particular set of files from a tracefile - Implemented new command line option '--remove' which allows removing data for a particular set of files from a tracefile - Renamed '--reset' to '--zerocounters' to avoid a naming ambiguity with '--remove' - Changed name of gcov kernel directory from /proc/gcov to a global constant so that it may be changed easily when required in future versions - Information messages are now printed to STDERR instead of STDOUT Version 1.0 (2002-09-05): ========================= - Initial version