GNAT Dynamic Analysis Suite (previously known as GNATcoverage) 23 Release Notes

We present here a few highlights of the new features in GNAT DAS 23. You can access the complete list here.

Renaming

The package previously known as GNATcoverage is now named the GNAT Dynamic Analysis Suite, or GNAT DAS. It is aimed at bundling together tools performing dynamic verification and analysis on Ada and C source code. The main components of this package in the 23 release are GNATcoverage for structural code coverage, GNATtest for unit test generation and a new tool, GNATfuzz, for software fuzzing.

GNATfuzz

GNATfuzz is a new tool introduced in the version 23 of the technology. It leverages compiler-assisted fuzzing to detect software bugs and potentially exploitable vulnerabilities. It is currently supported on X86 64 Linux.

New ‘Undetermined Coverage’ category in GNATcoverage

GNATcoverage now has a new ‘Undetermined Coverage’ report category listing all obligations for which the tool could not determine the coverage state. In previous versions of GNATcoverage, such obligations were reported as violations, even though the code might actually have been covered, and there was no way to distinguish such cases from actual violations.

Multiple report outputs in single gnatcov execution

GNATcoverage now supports the production of multiple coverage reports in a single ‘gnatcov coverage’ execution. To do so, simply specify the requested annotation formats as a comma-separated list with the option –annotate, or specify this option multiple times on the command line.

Support for scoped metrics in GNATcoverage

For source instrumentation based analysis, GNATcoverage now supports scoped metrics, i.e. metrics per subprogram, task, entry and package spec or body. These metrics are available in the xml and dhtml report formats, for each source file.

Support for pure C projects

The coverage runtime library is now written in C, providing support for pure C projects with no Ada compiler available.