Diagnostics

Diagnostics is a unified framework for code annotation, logging, program monitoring, and unit-testing.

The annotations of diagnostics provide simple trace messages, tracing method entry and exit, checks (which potentially fail), asserts (which should never fail), invariance checking on method entry and exit, and a number of annotations for testing.

A program built with diagnostics can be compiled either at audit, debug, or production level. At audit level, each component is also checking its own correctness, e.g., each class checks its own invariance. At debug level, each component checks that it is used correctly, e.g., a method is checking its preconditions but is not asserting its loop invariants. At production level, only those checks remain which can fail on corrupt external input.

The annotations provide a stream of logging events which are delivered to number of loggers. A logger can select a number of logging events and write them to file, or it can be used by a software package to monitor failures and to react on them. In particular, a unit-testing logger checks for erroneous behaviour during unit-testing.

Download

For Debian and Debian-based distributions see also http://packages.debian.org/diagnostics

Latest News

FORSYTE’s 2018 paper awards

FORSYTE has had a quite successful year: Adrian Rebola Pardo and his co-authors received the IJCAR best paper award for their paper Extended Resolution Simulates DRAT, Mitra Tabaei Befrouei and her co-authors received an OOPSLA 2018 Distinguished Paper award for their paper Randomized Testing of Distributed Systems with Probabilistic Guarantees, and Thomas Pani received the […]

Continue reading

Full news archive