BullseyeCoverage automatically excludes external headers specified with the Microsoft C++
/external options and GCC
We added an option to omit annotated source files from our HTML report. If you do not need that level of detail, this option reduces the time and space required to generate the report.
BullseyeCoverage always measures coverage of constant conditions and decisions as well as switch statements with a constant controlling expression. This new behavior agrees with widely accepted definitions of code coverage criteria, including those specified by safety standards.
This is a minor update. The browser source code status bar shows the name of the current function for easier navigation of functions that are too large to fit on the screen.
The small footprint function
cov_dumpPart() accepts limit values less than 65.
This allows BullseyeCoverage to operate on systems with extremely limited i/o bandwidth.
Using a small limit value allows calling
write() just once at a time,
and writing only one line of text at time.
Our HTML report format is more compact.
The report omits directory entries that merely contain one directory,
making the report easier to navigate.
Global Functions folder is removed from the
reducing the overall size of the report.
The BullseyeCoverage C/C++ parser has an improved name lookup system which provides an architecture for future improvements. This new system allows us to perform more rigorous parsing of complex and potentially ambiguous language constructs.
We improved support for the following:
We introduced coverage measurement of decisions in computations outside of control structure branch points, as recommended by Certification Authorities Software Team Position Paper CAST-10 ("What is a Decision in Application of Modified Condition/Decision Coverage and Decision Coverage?") This change provides consistency with safety critical certification efforts.
We added support for Visual Studio 2022.
With this release we have a new integration technique for Visual Studio 2010 and later.
The new method does not rely on using the
Microsoft.Cpp.arch.user.props property pages.
Although Visual Studio uses these property pages by default,
Microsoft recommends against using them.
We improved support for:
MAX_PATH on Windows
This is a minor release.
Our HTML output conforms to HTML5.
covfn output column showing function coverage matches the format of the
covclass command line reports.
The Linux kernel module support is completely reworked to use the small footprint run-time model. This provides several advantages over the previous mechanism:
We reduced the time required for generating reports and merging. Our testing shows an average improvement of 65% compared to version 8.20. In many cases, we saw improvements up to 90%.
For Windows, we have a new internal run-time architecture. This new approach addresses an increasing industry focus on security. Our technique better handles complications such as restricted access to file systems and code-signing policies.
We added support for developing on macOS arm64. We dropped support for Windows CE.
We added additional information to our XML format export to assist with importing data into products that cannot understand condition/decision coverage, but can understand statement coverage.
Instrumenting Linux kernel modules now requires no special configuration settings.
Run-time error diagnostics are improved.
We added support for:
We dropped support for Embarcadero/CodeGear/Borland C++.
On macOS, integration with Xcode is now performed automatically by the
We added additional support for the upcoming C++20 standard.
Support for FreeBSD was dropped.
We added the Coverage Browser command
Region Delete to allow completely and permanently removing data for obsolete project source files that were deleted.
The Coverage Browser has improved logic for locating source files.
We added support for:
We added some support for the upcoming C++20 standard including
and the comparison operator
We improved the representation of function names containing parameter array dimensions, unnamed namespaces, and template non-type parameters.
On Windows, we improved speed of the the Coverage Browser
Edit Copy command for HTML format.
BullseyeCoverageEnv.txt file supports very large variable settings.
The small footprint run-time has better multi-processor support.
We added or updated support for the tools below.
We dropped support for the tools and systems below.
We improved measurement retention and merging for conditionally compiled functions.
The Microsoft C++ conforming preprocessor is supported.
Windows CE 8 / 2013 on ARMv7 is supported.
For embedded systems, BullseyeCoverage does not require DATA sections to be initialized.
For embedded systems, BullseyeCoverage now automatically handles uninitialized BSS sections, a common restriction. Stack usage was decreased.
covhtml exposes non-frame views for better compatibility with some continuous integration systems.
We support the C++17 official standard.
We added or updated support for the tools and systems below.
BullseyeCoverage supports all features in the C++17 draft N4606 dated 2016-07-12.
A new exclusion directive 'ignore' is added as a convenient shorthand for excluding a small number of source code lines.
We improved support for non-ASCII characters, particularly in filenames.
Support for ARC MetaWare Toolkit was freshened
This release adds
which makes it easier to work around compatibility problems with the
Microsoft C++ macro preprocessor.
We added or updated support for the tools and systems below.
This release adds 64-bit executables for Windows, which alleviate address space limitations. We added support for C++14 We improved internationalization and wide character support. The small footprint run-time configuration produces much smaller data files. We improved performance for merging coverage files.
We added or updated support for the tools and architectures below.
This release adds support for a multi-level directory wildcard **. Additionally, the improvements below were added.
We improved the compiler integration interface and added it to the Coverage Browser Options dialog. Run-time i/o performance is improved. For most embedded systems, the run-time is built automatically, using the small footprint run-time configuration.
We added or updated support for the tools and processors below.
The small footprint run-time for embedded systems supports multiple threads and processes.
We added support for the compilers and platforms below.
The covmerge command has a new option
--mp that can dramatically reduce time by utilizing multiple processors.
We updated support for QNX.
We added support for C++11 and C11. The XML output has provision for stylesheets. We improved multiprocessor utilization during building. You can reset measurements with finer granularity.
We added or improved support for the products below.
sizeof and other operators with type-id operands such as
__is_pod are considered not constant
when they occur within a template.
These expressions may vary across different instantiations.
We added support for the processors and compilers below.
Our embedded system support now uses a small foot print run-time library that is small enough to run on 8-bit and 16-bit processors, and has simpler implementation requirements.
The covhtml command adds HTML output that you can browse and sort similarly to the Coverage Browser.
This release adds support for additional C++0x syntax including the range-based for statement, which required updating the coverage file format.
We increased compatibility with the overloaded operators
which behave like the built-in operators, for example the Boost
The instrumentation data was reorganized to use a read-only data section, rather than initialized read-write data. This protects much of the run-time data from corruption and simplifies linker configuration for embedded systems.
We improved support for the environments and tools below.
We increased the granularity for detecting modified code, from the source file level to the function level. When you measure coverage of a project and then modify a function, the measurements are reset for only that function, rather than the whole source file containing the function. This feature applies to coverage data files written by version 7.12.3 or later.
© 2024 Bullseye Testing Technology