Tags: xaizek/uncov
Tags
Performance & git worktrees Not many changes here, but a nasty bug was fixed, worktrees are handled well now and performance of adding a build went up by an order of magnitude or so (depends on GCC version in use, project size and how coverage is collected). General ------- * Create index on files table of the database. This bumps database version even though its schema doesn't actually change. The change grows database size a bit, but makes addings new reports significantly faster. Core and CLI ------------ * Handle git worktrees (config and database are looked up first in parent's `.git` now). * Use `"current_working_directory"` key of gcov's JSON. * Take advantage of `--stdout` option of gcov if present. `new-gcovi` works significantly faster thanks to it and with less I/O. * Fixed one use-after-free. Vim-plugin ---------- * Update Vim plugin for newer fugitive API. Building -------- * Remove `-Werror` from `Makefile`. * Make it work better with clang.
uncov.ini, `gcov --json-format`, `uncov help` General ------- * Pin version of the license to be AGPLv3 only. Core and CLI ------------ * Add `help` builtin command which details commands and their usage. * Parse `.git/uncov.ini` configuration file for settings. * Implement name-binning of gcov input files to work around its bug. This fixes use of `new-gcovi` with GCC 8. * Support `gcov --json-format` by `new-gcovi`, which makes it usable for GCC 9 and newer. Web-UI ------ * Make UI look better on smaller screens. * Fix links to builds having number separators. uncov-gcov ---------- * Add `--cpp-dtor-invocations` option (by Fabian Wermelinger). * A slightly more robust parsing of `.gcov` files (by Fabian Wermelinger). * Parse `.gcov` line data based on line number ID (by Fabian Wermelinger). This fixes incorrect coverage results on explicit template instantiation. * Make --exclude and --include accept list of arguments (by Fabian Wermelinger). Vim-plugin ---------- * Switch to using newer fugitive API. * Improve startup time. Building -------- * Add install `PREFIX` to Makefile (by Fabian Wermelinger). * Add `ld_extra` variable for linker to Makefile (by Fabian Wermelinger). * Always use UTC timezone in the tests.
Intermediate gcov format and other improvements
Core and CLI
------------
* Add `new-gcovi` subcommand that uses `gcov`'s intermediate format and
thus works faster than `uncov-gcov`.
* Better normalization of relative paths.
* Better parsing error messages for `new` subcommand.
* More strict input parsing for `new` subcommand.
* Make `new` subcommand accept reference with spaces.
* Fix incorrect parsing of optional build ids in subcommands.
Web-UI
------
* Add line numbers to diffs. Clicking on them opens corresponding
files.
* Add map of missed ranges for faster overview of what's not covered.
* Add LSB header to the sample init script.
* Put links in tables on first column instead of on whole row.
* Disallow robots from bothering the site (it doesn't contain
interesting stuff).
* Highlight current line number.
* Fix formatting of line number anchors (avoid separators).
uncov-gcov
----------
The script is now deprecated in favour of `new-gcovi` subcommand.
* Add "WIP on " prefix to captured builds.
* Ignore `};` lines.
* Do not ignore lines starting with `static_cast`.
* Account for possible `*` in count column of `gcov`-files produced by
new `gcov`.
* Fix `uncov-gcov` failing to restore untracked directory.
Vim-plugin
----------
* Make `:Uncov` command accept `@-buildid`.
* Fix error on folding last lines of a buffer.
* Fix coverage signs being offset by one.
Building
--------
* Build web object files from correct source files.
* Build with `-std={c=>gnu}++11` language option.
* Try to avoid file-system races on parallel build.
* Fix compiling tests against Boost 1.55.
Add Web-UI Core and CLI ------------ * Add "regress" subcommand. * Add @Branch notation to specify build. * Add relative build addressing via `@-N` form. * Make sure there are no separators in line numbers. * Small speed improvement in diffs. * Allow one extra coverage line compared to source file. * Fix folding on colorless printing. * Fix buildid resolution for "files" and alike. Web-UI ------ Added it. Capable of: * browsing files; * displaying current coverage; * displaying changes; * providing badges. uncov-gcov ---------- * Add --ref-name option to uncov-gcov. * Provide manual page. * Make it possible to specify location of gcov files (--collect-root option). * Fix a typo in usage message. Vim-plugin ---------- * Accept buildid in :Uncov command. * Ensure current line is not folded. * Make :Uncov operate differently in uncov-buffer. * Fix table of contents in Vim's documentation file. Documentation ------------- * Add complete Doxygen documentation. * Better structure of the README. * Make args in synopsis bold in the manual page. * Fix diff screenshot in the README being blurry. * Fix what INSTALL says about build mans.