package bisect_ppx
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=54f200af9d560a9c0e3578306992c741766c63bbeda07a45cccdc31ba739c882
md5=7eb3e98f1a082ea3b688451de24dfa64
doc/bisect_ppx.common/Bisect_common/index.html
Module Bisect_common
This module provides type definitions, and functions used by the various parts of Bisect.
type point_definition = {
offset : int;
(*Point offset, relative to file beginning.
*)identifier : int;
(*Point identifier, unique in file.
*)
}
The type of point definitions, that is places of interest in the source code.
Utility functions
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 filefilename
(opened in binary mode iffbin
istrue
);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 filefilename
(opened in binary mode iffbin
istrue
);h
just closes the output channel. Raises an exception if any error occurs.
I/O functions
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.
Same as write_runtime_data
, but accumulates output in a string instead.
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.
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
.
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.