Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file core_intf.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127(*
* Copyright (c) 2013-2016 Thomas Gazagnaire <thomas@gazagnaire.org>
* Copyright (c) 2021 Craig Ferguson <craig@tarides.com>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*)open!ImportmoduleV1_types=structmoduletypeS=sigtypereturn(** The return type of each test case run by Alcotest. For the standard
{!Alcotest} module, [return = unit]. The concurrent backends
[Alcotest_lwt] and [Alcotest_async] set [return = unit Lwt.t] and
[return = Async_kernel.Deferred.t] respectively. *)typespeed_level=[`Quick|`Slow](** Speed level of a test. Tests marked as [`Quick] are always run. Tests
marked as [`Slow] are skipped when the `-q` flag is passed. *)type'atest_case=string*speed_level*('a->return)(** A test case is a UTF-8 encoded documentation string, a speed level and a
function to execute. Typically, the testing function calls the helper
functions provided below (such as [check] and [fail]). *)exceptionTest_error(** The exception return by {!run} in case of errors. *)valtest_case:string->speed_level->('a->return)->'atest_case(** [test_case n s f] is the test case [n] running at speed [s] using the
function [f]. *)type'atest=string*'atest_caselist(** A test is a UTF-8 encoded name and a list of test cases. The name can be
used for filtering which tests to run on the CLI. *)type'awith_options=?stdout:Formatters.stdout->?stderr:Formatters.stderr->?and_exit:bool->?verbose:bool->?compact:bool->?tail_errors:[`Unlimited|`Limitofint]->?quick_only:bool->?show_errors:bool->?json:bool->?filter:(name:string->index:int->[`Run|`Skip])->?log_dir:string->?bail:bool->?record_backtrace:bool->?ci:Config.ci->'a(** The various options taken by the tests runners {!run} and
{!run_with_args}:
- [stdout] (default to [Fmt.stdout]). The formatter used to print on the
standard output.
- [stderr] (default to [Fmt.stderr]). The formatter used to print ont
the standard error output.
- [and_exit] (default [true]). Once the tests have completed, exit with
return code [0] if all tests passed, otherwise [1].
- [verbose] (default [false]). Display the test std.out and std.err
(rather than redirecting to a log file).
- [compact] (default [false]). Compact the output of the tests.
- [tail_errors] (default unlimited). Show only the last N lines of
output of failed tests.
- [quick_only] (default [false]). Don't run tests with the
{{!speed_level} [`Slow] speed level}.
- [show_errors] (default [false]). Display the test errors.
- [json] (default [false]). Print test results in a JSON-compatible
format.
- [filter]. Filter tests according to [~name], the name of the test, and
[~index], the number of the test case.
- [log_dir] (default ["$PWD/_build/_tests/"]). The directory in which to
log the output of the tests (if [verbose] is not set).
- [bail] (default [false]). If true, stop running the tests after the
first failure.
- [record_backtrace] (default [true]). Enable backtrace recording before
beginning testing.
- [ci] (default auto-detected). Whether to enable specific logging for a
CI system. *)valrun:(string->unittestlist->return)with_optionsvalrun_with_args:(string->'a->'atestlist->return)with_optionsendmoduletypeMAKER=functor(_:Platform.MAKER)(M:Monad.S)->sigincludeSwithtypereturn=unitM.tvallist_tests:'atestlist->return(** Print all of the test cases in a human-readable form *)valrun':Config.User.t->string->unittestlist->return(** Variant of {!run} that consumes a config value. *)valrun_with_args':Config.User.t->string->'a->'atestlist->return(** Variant of {!run_with_args} that consumes a config value. *)endendmoduletypeCore=sigexceptionCheck_errorofunitFmt.tmoduleV1:sigmoduletypeS=V1_types.SmoduletypeMAKER=V1_types.MAKERmoduleMake:MAKER(** Functor for building a tester that sequences tests of type
[('a -> unit M.t)] within a given concurrency monad [M.t]. The [run] and
[run_with_args] functions must be scheduled in a global event loop.
Intended for use by the {!Alcotest_lwt} and {!Alcotest_async} backends. *)exceptionSkipendend