package bisect_ppx

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

This module provides type definitions, and functions used by the various parts of Bisect.

type point_definition = {
  1. offset : int;
    (*

    Point offset, relative to file beginning.

    *)
  2. identifier : int;
    (*

    Point identifier, unique in file.

    *)
}

The type of point definitions, that is places of interest in the source code.

Utility functions
val try_finally : 'a -> ('a -> 'b) -> ('a -> unit) -> 'b

try_finally x f h implements the try/finally logic. f is the body of the try clause, while h is the finally handler. Errors raised by handler are silently ignored.

val try_in_channel : bool -> string -> (in_channel -> 'a) -> 'a

try_in_channel bin filename f is equivalent to try_finally x f h where:

  • x is an input channel for file filename (opened in binary mode iff bin is true);
  • h just closes the input channel. Raises an exception if any error occurs.
val try_out_channel : bool -> string -> (out_channel -> 'a) -> 'a

try_out_channel bin filename f is equivalent to try_finally x f h where:

  • x is an output channel for file filename (opened in binary mode iff bin is true);
  • h just closes the output channel. Raises an exception if any error occurs.
I/O functions
exception Invalid_file of string * string

Exception to be raised when a read file does not conform to the Bisect format. The parameter is the name of the incriminated file and the reason of the error.

val write_runtime_data : out_channel -> unit

write_runtime_data o writes the current runtime data to the output channel oc using the Bisect file format. The runtime data list encodes a map (through an association list) from files to arrays of integers (the value at index i being the number of times point i has been visited). The arrays are paired with point definition lists, giving the location of each point in the file.

Raises Sys_error if an i/o error occurs.

val runtime_data_to_string : unit -> string option

Same as write_runtime_data, but accumulates output in a string instead.

val random_filename : string -> string

Returns a random filename, with the given prefix.

val write_points : point_definition list -> string

write_points pts converts the point definitions pts to a string. The string is a binary byte sequence; it is not meant to be legible.

val read_runtime_data : string -> (string * (int array * string)) list

read_runtime_data f reads the runtime data from file f.

Raises Sys_error if an i/o error occurs. May also raise Invalid_file, Unsupported_version, or Modified_file.

val read_points : string -> point_definition list

read_points s reads point definitions from the string s.

val table : (string, int array * string) Hashtbl.t Lazy.t

Coverage statistics table used by the runtime.

val register_file : string -> point_count:int -> point_definitions:string -> [ `Staged of int -> unit ]

register_file file ~point_count ~point_definitions indicates that the file file is part of the application that has been instrumented. point_definitions is a serialized Common.point_definition list giving the locations of all points in the file. The returned callback is used to increment visitation counts.

type options = (Arg.key * Arg.spec * Arg.doc) list
val deprecated : string -> string -> options -> options

Appends a specification for a deprecated command-line argument.

OCaml

Innovation. Community. Security.