Change Log¶
gcovr
Release History and Change Log
4.1 (2 July 2018)¶
4.0 (17 June 2018)¶
Breaking changes:
- This release drops support for Python 2.6. (#250)
- PIP is the only supported installation method.
- No longer encoding-agnostic under Python 2.7. If your source files do not use the system encoding (probably UTF-8), you will have to specify a --source-encoding. (#148, #156, #256)
- Filters now use forward slashes as path separators, even on Windows. (#191, #257)
- Filters are no longer normalized into pseudo-paths. This could change the interpretation of filters in some edge cases.
Improvements and new features:
- Improved --help output. (#236)
- Parse the GCC 8 gcov format. (#226, #228)
- New --source-encoding option, which fixes decoding under Python 3. (#256)
- New --gcov-ignore-parse-errors flag. By default, gcovr will now abort upon parse errors. (#228)
- Detect the error when gcov cannot create its output files (#243, #244)
- Add -j flag to run gcov processes in parallel. (#3, #36, #239)
- The --html-details flag now implies --html. (#93, #211)
- The --html output can now be used without an --output filename (#223)
- The docs are now managed with Sphinx. (#235, #248, #249, #252, #253)
- New --html-title option to change the title of the HTML report. (#261, #263)
- New options --html-medium-threshold and --html-high-threshold to customize the color legend. (#261, #264)
Internal changes:
3.4 (12 February 2018)¶
- Added --html-encoding command line option (#139).
- Added --fail-under-line and --fail-under-branch options, which will error under a given minimum coverage. (#173, #116)
- Better pathname resolution heuristics for --use-gcov-file. (#146)
- The --root option defaults to current directory ‘.’.
- Improved reports for “(“, “)”, “;” lines.
- HTML reports show full timestamp, not just date. (#165)
- HTML reports treat 0/0 coverage as NaN, not 100% or 0%. (#105, #149, #196)
- Add support for coverage-04.dtd Cobertura XML format (#164, #186)
- Only Python 2.6+ is supported, with 2.7+ or 3.4+ recommended. (#195)
- Added CI testing for Windows using Appveyor. (#189, #200)
- Reports use forward slashes in paths, even on Windows. (#200)
- Fix to support filtering with absolute paths.
- Fix HTML generation with Python 3. (#168, #182, #163)
- Fix --html-details under Windows. (#157)
- Fix filters under Windows. (#158)
- Fix verbose output when using existing gcov files (#143, #144)
3.3 (6 August 2016)¶
- Added CI testing using TravisCI
- Added more tests for out of source builds and other nested builds
- Avoid common file prefixes in HTML output (#103)
- Added the --execlude-directories argument to exclude directories from the search for symlinks (#87)
- Added branches taken/not taken to HTML (#75)
- Use --object-directory to scan for gcov data files (#72)
- Improved logic for nested makefiles (#135)
- Fixed unexpected semantics with --root argument (#108)
- More careful checks for covered lines (#109)
3.2 (5 July 2014)¶
- Adding a test for out of source builds
- Using the starting directory when processing gcov filenames. (#42)
- Making relative paths the default in html output.
- Simplify html bar with coverage is zero.
- Add option for using existing gcov files (#35)
- Fixing --root argument processing (#27)
- Adding logic to cover branches that are ignored (#28)
3.1 (6 December 2013)¶
- Change to make the -r/--root options define the root directory for source files.
- Fix to apply the -p option when the --html option is used.
- Adding new option, ‘--exclude-unreachable-branches’ that will exclude branches in certain lines from coverage report.
- Simplifying and standardizing the processing of linked files.
- Adding tests for deeply nested code, and symbolic links.
- Add support for multiple —filter options in same manner as —exclude option.
3.0 (10 August 2013)¶
- Adding the ‘--gcov-executable’ option to specify the name/location of the gcov executable. The command line option overrides the environment variable, which overrides the default ‘gcov’.
- Adding an empty “<methods/>” block to <classes/> in the XML output: this makes out XML complient with the Cobertura DTD. (#3951)
- Allow the GCOV environment variable to override the default ‘gcov’ executable. The default is to search the PATH for ‘gcov’ if the GCOV environment variable is not set. (#3950)
- Adding support for LCOV-style flags for excluding certain lines from coverage analysis. (#3942)
- Setup additional logic to test with Python 2.5.
- Added the --html and --html-details options to generate HTML.
- Sort output for XML to facilitate baseline tests.
- Added error when the --object-directory option specifies a bad directory.
- Added more flexible XML testing, which can ignore XML elements that frequently change (e.g. timestamps).
- Added the ‘—xml-pretty’ option, which is used to generate pretty XML output for the user manual.
- Many documentation updates
2.4 (13 April 2012)¶
- New approach to walking the directory tree that is more robust to symbolic links (#3908)
- Normalize all reported path names
- Normalize using the full absolute path (#3921)
- Attempt to resolve files referenced through symlinks to a common project-relative path
- Process
gcno
files when there is no correspondinggcda
file to provide coverage information for unexecuted modules (#3887)- Windows compatibility fixes
- Fix for how we parse
source:
file names (#3913)- Better handling od EOL indicators (#3920)
- Fix so that gcovr cleans up all
.gcov
files, even those filtered by command line arguments- Added compatibility with GCC 4.8 (#3918)
- Added a check to warn users who specify an empty
--root
option (see #3917)- Force
gcov
to run with en_US localization, so the gcovr parser runs correctly on systems with non-English locales (#3898, #3902).- Segregate warning/error information onto the stderr stream (#3924)
- Miscellaneous (Python 3.x) portability fixes
- Added the master svn revision number as part of the verson identifier
2.3.1 (6 January 2012)¶
- Adding support for Python 3.x
2.3 (11 December 2011)¶
- Adding the
--gcov-filter
and--gcov-exclude
options.
2.2 (10 December 2011)¶
- Added a test driver for gcovr.
- Improved estimation of the
<sources>
element when using gcovr with filters.- Added revision and date keywords to gcovr so it is easier to identify what version of the script users are using (especially when they are running a snapshot from trunk).
- Addressed special case mentioned in [comment:ticket:3884:1]: do not truncate the reported file name if the filter does not start matching at the beginning of the string.
- Overhaul of the
--root
/--filter
logic. This should resolve the issue raised in #3884, along with the more general filter issue raised in [comment:ticket:3884:1]- Overhaul of gcovr’s logic for determining gcc/g++’s original working directory. This resolves issues introduced in the original implementation of
--object-directory
(#3872, #3883).- Bugfix: gcovr was only including a
<sources>
element in the XML report if the user specified-r
(#3869)- Adding timestamp and version attributes to the gcovr XML report (see #3877). It looks like the standard Cobertura output reports number of seconds since the epoch for the timestamp and a doted decimal version string. Now, gcovr reports seconds since the epoch and “
gcovr ``"+``__version__
(e.g. “gcovr 2.2”) to differentiate it from a pure Cobertura report.
2.1 (26 November 2010)¶
Added the
--object-directory
option, which allows for a flexible specification of the directory that contains the objects generated by gcov.Adding fix to compare the absolute path of a filename to an exclusion pattern.
Adding error checking when no coverage results are found. The line and branch counts can be zero.
Adding logic to process the
-o
/--output
option (#3870).Adding patch to scan for lines that look like:
creating `foo'as well as
creating 'foo'Changing the semantics for EOL to be portable for MS Windows.
Add attributes to xml format so that it could be used by hudson/bamboo with cobertura plug-in.
2.0 (22 August 2010)¶
- Initial release as a separate package. Earlier versions of gcovr were managed within the ‘fast’ Python package.