Upgrade to release 8.7:
Breaking changes:
- Jinja2 environment for HTML report is now created with
undefined=StrictUndefined to raise an error if a variable is not
defined in the template.
- Links to lines in HTML reports now use L<line> instead of a
l<line>.
- Rename config key txt-metric (string) to txt-metrics (list of
strings in TOML and multiple entries in gcovr.config). Remove the
deprecated aliases -b, --txt-branches and --branches.
- Adjust column width of total count in text reports.
New features and notable changes:
- Improve HTML report:
- Improve wrapping of the counter in the default theme.
- Replace meter with div elements in the default theme (like in
GitHub themes).
- Add jinja2 rendering for CSS files.
- Add new HTML themes boost.green and boost.blue.
- Show excluded lines, branches, ... in the summary only if there
are any.
- Remove the branches summary and columns if there are no
branches in the report, e.g all branches are excluded by
patterns or comments.
- Replace default theme with github theme which is the new
default one. If the prefix github. isn't used a warning is
printed which will turn into an error in a the next version.
- Add compare mode for JSON, text and HTML reports.
- Stub missing line coverage for branches in LLVM source based code
coverage format.
- Add support for TOML files with --config
- Add --fail-under-condition-or-decision with
--fail-under-condition and --fail-under-decision as synonyms,
change the key for the configuration file.
- Add support for multiple metrics in one text report and add
support for condition coverage.
- Warn if a option is used which has no effect when processing
tracefiles.
- Add options to restrict where GCOV is executed to prevent
generating temporary files in arbitrary directories. Write
protected files are now skipped by default.
Bug fixes and small improvements:
- Fix runtime problem introduced with 8.4.
- Fix boost HTML details and simple output.
- Fix boost HTML support for Conditions, Decisions and Calls
optional stats.
- Add excluded metrics to boost HTML template.
- Fix alignment in summary header of HTML single page report.
- Fix link to lines in HTML single page report.
- Preserve coverage for procedures declared in Fortran modules.
- Fix missing branches and conditions for uncovered lines in HTML
report.
- Fix KeyError when merging tracefiles in which only some report a
function position.
Documentation:
- Add section about gcov options which should not be used to FAQ.
- Add separate option groups for each format.
Internal changes:
- Add CSS and JS files to all folders where a HTML reference file
is present.
- Refactor internal data model from a flat list to a tree which
matches the folder structure of the source files. Also add a
properties element which is cleared after each report format to
store meta data for the report generation and update the dicts in
the HTML report to use it.
- Activate sorting of includes for ruff.
- Add gcc-16, clang-21 and clang-22 to the test suite.
- Use different python versions for testing in docker depending on
Ubuntu version.
- Activate most checks of ruff.
- Update CI runner images.
- Always use GCOVR fixture in tests.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 8.5:
Breaking changes:
- The option --lcov-test-name doesn't accept values with spaces
anymore.
- The option --lcov-format-1.x is deprecated and mapped to
--lcov-format-version=1.x.
- Changes to HTML templates.
New features and notable changes:
- Due to added support for LLVM source based code coverage format
some configuration file keys got changed. The old gcov named
options are still supported but they also affect the LLVM
toolchain.
Bug fixes and small improvements:
- Fix coveralls report if there are several coverage elements per
line.
- Fix not excluded conditions if branches are excluded by comments.
- Fix reported excluded branches in LCOV report.
- Fix exclusion filter --gcov-exclude.
- Add --json-trace-data-source to include the trace data source in
the JSON report independent from --verbose.
- Remove generated gcov files on error and catch additional gcov
error message.
- Change default HTML theme excluded line color.
- Move theme colors to a separate CSS file so they can be overridden
with a simple --html-template-dir directory with only the
style.colors.css file.
- Fix regular expression for detecting a version mismatch between
gcc and gcov.
- Improve logging messages for GCOV execution errors to not print
information twice and add trace messages for gcov execution.
- Fix handling of lines after function specialization.
- Improve performance by changing logging messages (level and lazy
interpolation).
- Fix text report for covered decisions.
- Fix runtime problem introduced with 8.4.
- Fix wrong entries in data source attribute of JSON report.
- Fix nested HTML report without coverage data.
- Add warning if coverage data is empty.
- Add warning if function lines are missing in external generated
GCOV files.
- Extend support for zipped reports. If last suffix is .xz then
LZMA is used to compress the report.
- Fix function exclusion in report generation.
- Do not ignore lines without functions, e.g. from inlined code.
- Ignore all whitespaces instead of only spaces for detection of
noncode lines.
- Add support for temporary merging line coverage objects without
modifying the data model.
- Change internal behavior of --exclude-function-lines to exclude
the line of function definition instead of removing it completely.
- Ensure that all functions have a line coverage element in LCOV
report.
License-Update: Update years
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upgrade to release 8.3:
- Replace setup.py with hatchling. To install from source at least
version 21.3 of pip is needed.
- Drop support for Python 3.8.
- Add condition coverage to text summary report.
- Add --include to search files in search paths which should be
added to report.
- Add option to generate LCOV format produced by version 1.x of
LCOV tool.
- Extend logging for data merge errors with info about the data
sources.
- Add condition coverage merge mode option --merge-mode-conditions
- Add --gcov-suspicious-hits-threshold to configure the value for
detecting suspicious hits in GCOV files.
- Renamed JSON element destination_blockno to destination_block_id.
- Add --html-block-ids to show the block ids of the lines and
branches in HTML report.
- Fixed an error handling bug throwing a TypeError exception on a
gcov merge assertion failure instead of reporting the error and
(if requested by the user) continuing execution
- Check format version of external generated gcov JSON files.
- Fix crash on Windows when trying to fix the case of the files.
- Fix LCOV report. Excluded lines where added with a count of 0.
- Fix line exclusion not clearing all child coverage data.
- Fix summary stats in JaCoCo report.
- Fix path issue when reading/writing Coveralls report.
- Fix issue with negative counters in GCOV JSON export.
License-Update: Update year
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>