package frama-c-lannotate

  1. Overview
  2. Docs
Lannotate plugin of Frama-C, part of the LTest suite

Install

Dune Dependency

Authors

Maintainers

Sources

lannotate-0.2.4.tar.bz2
md5=a84542f799911d0c64e1db10be0f150e
sha512=dab4b833f3ac6d449f2ebbf7ac054f247c9f86d86acad14b78267c4719a6943f59a21be64c28d81baabf155948d335af1c41ab0ce44e96214bb6da4693705e15

Description

Lannotate is a plugin that introduces labels and hyperlabels formalizing test objectives corresponding to the coverage criteria selected by the user. It is part of LTest, a set of plug-in dedicated to managing test coverage. Other plug-ins in LTest include:

  • Luncov, for detecting polluting (infeasible or redundant) objectives
  • Lreplay, for executing a test suite and computing its coverage status

Tags

software testing Frama-C LTest

Published: 10 Jul 2025

README

Frama-C/LTest: LAnnotate

Frama-C/LTest (or LTest for short) is a generic and integrated toolkit for automation of white-box testing of C programs. This toolkit provides a unified support of many different testing criteria as well as an easy integration of new criteria. LAnnotate is the module of LTest in charge of adding coverage objectives into program in the form of annotations.

LAnnotate is a Frama-C plugin.

Installation

LAnnotate requires Frama-C 24.0 (Chromium) to be installed and OCaml >= 4.08.1 . Once Frama-C is installed, run autoconf, configure, compile and install LAnnotate: autoconf ./configure make make install

The last command may need to be run as root (or sudo) depending on your Frama-C installation.

Usage

frama-c -lannot=CRITERIA file.c

where CRITERIA is a comma-separated list of criteria. It outputs a new annotated file named file_labels.c, with labels for each selected criterion.

Implemented criteria are DC, CC, MCC, n-CC, GACC, GICC, WM, IDP and FC. for more information, run frama-c -lannot-list and see the criteria documentation.

Global options are :

  • -lannot-simplify enables the simplication of the generated label predicates before annotations. For the moment, it only reduces Boolean expressions.
  • -lannot-allbool tells LAnnotate to consider all Boolean expressions, rather that just branching decisions. Impacts DC, CC, MCC, n-CC, GACC, GICC.
  • -lannot-functions funs tells LAnnotate which functions to consider (all by default).
  • -lannot-o outputfile.c tells LAnnotate how to name the annoted file (by default, add _labels before the extension).

There exist other options that are specific to some criteria, see the criteria doc. To get the full list of options, run frama-c -lannot-help.

Authors

  • Omar Chebaro
  • Mickaël Delahaye
  • Michaël Marcozzi
  • Thibault Martin

Also many thanks to the rest of LTest's team:

  • Nikolai Kosmatov
  • Sébastien Bardin

Dependencies (3)

  1. frama-c >= "31.0~" & < "32.0~"
  2. dune > "3.13.0"
  3. ocaml >= "4.14.0"

Dev Dependencies (1)

  1. odoc with-doc

Used by

None

Conflicts

None

OCaml

Innovation. Community. Security.