Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Run Tezt regression tests and capture their output.
NOTE: consider using dune cram when it becomes available: https://dune.readthedocs.io/en/stable/tests.html#cram-tests
val register :
__FILE__:string ->
title:string ->
tags:string list ->
output_file:string ->
(unit -> unit Lwt.t) ->
unit
Register a regression test.
This function is a wrapper around Test.register
. It adds the "regression" tag to the tags
list provided by the argument.
The output_file
specifies the name of the file where the output of the test is stored and read to be compared on subsequent runs. The actual filename is Cli.options.regression_dir // output_file ^ ".out"
.
Note that output_file
can contain subdirectories. For instance, using the default --regression-dir
, ~output_file:"math/sqrt"
will result in the creation of directory "tezt/_regressions/math"
if needed and regression output will be written in "tezt/_regressions/math/sqrt.out"
.
Capture some output of a regression test.
Call this to record a string into the output_file
given to register
. A newline character \n
will be added after it.
This function only records its argument when called while a regression test is running, i.e. from the body of Regression.register
. If you call it outside of Regression.register
, it has no effect. So you can define a function that captures and use it with or without regression testing.
A typical use is to define custom process hooks that substitute non-deterministic parts of the output with deterministic ones. See also hooks
.
val hooks : Process.hooks