This is a minor update. We updated our file format to accommodate larger object file IDs. This improvement supports merging many large coverage files created from different builds.
We added or updated support for:
The covhtml
option --global
writes the Global Functions
pseudo folder in the Classes
tab.
We dropped support for Windows 32-bit ARM kernel mode.
We added Cobertura format XML as an option to the covxml command.
We enhanced source code annotation in the BullseyeCoverage Browser as well as the HTML report. A new notation for coverage events clarifies exactly what code is covered and what is uncovered. Source code highlighting provides even more visual feedback. These changes improve workflow productivity for engineers and testers performing detailed testing.
This is a minor update. We improved handling of GCC and Clang precompiled headers.
BullseyeCoverage automatically excludes external headers specified with the Microsoft C++ /external
options and GCC/Clang -isystem
option.
We added an option to omit annotated source files from our HTML report. If you do not need that level of detail, this option greatly 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 size is reduced.
The Global Functions
folder is removed from the Classes
tab.
Installing on Windows requires Windows 10 or later.
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 dropped support for:
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
We dropped support for IAR Systems for CR16C, SuperH, RX, and STM8.
This is a minor release.
Our HTML output conforms to HTML5.
The covfn
format is more consistent with the
covclass
,
covdir
,
and 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 dropped support for Microsoft Visual Studio 2005.
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 as well as 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 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:
On macOS, integration with Xcode is now performed automatically by the install
and uninstall
programs.
We added additional support for the upcoming C++20 standard.
We dropped support for FreeBSD.
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 dropped support for Ericsson FlexC.
We added some support for the upcoming C++20 standard including
__has_cpp_attribute
,
concepts,
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 Coverage Browser Edit Copy
command for HTML format.
The 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. 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.
We dropped support for:
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 covc
option --mspp
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.
We dropped support for:
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 many 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.
We dropped support for Visual Studio 97.
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.
Operator 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++11 syntax including the range-based for statement, which required updating the coverage file format.
We increased compatibility with the overloaded operators &&
and ||
which behave like the built-in operators, for example the Boost tribool
class.
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.
We dropped support for Windows 2000.
© 2024 Bullseye Testing Technology