package alcotest

All checked builds pass
  1. Overview
  2. Docs
Alcotest is a lightweight and colourful test framework

Install

dune-project
 Dependency

Authors

Maintainers

Sources

alcotest-1.9.1.tbz
sha256=1e29c3b41d4329062105b723dfda3aff86b8cef5e7c7500d0e491fc5fd78e482
sha512=c49d402fa636dcf11f81917610dd1d2eca8606c8919aede4db23710d071f6046a8f93c78de9fbfee26637a53ca67f71fad500bfa2478b7f0f059608a492dd0a5

Description

Alcotest exposes simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.

Added to opam-repository:

README

A lightweight and colourful test framework.


Alcotest exposes a simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run. See the manpage for details.

The API documentation can be found here. For information on contributing to Alcotest, see CONTRIBUTING.md.

OCaml-CI Build Status Alcotest Documentation


Examples

A simple example (taken from examples/simple.ml):

Generated by the following test suite specification:

(* Build with `ocamlbuild -pkg alcotest simple.byte` *)

(* A module with functions to test *)
module To_test = struct
  let lowercase = String.lowercase_ascii
  let capitalize = String.capitalize_ascii
  let str_concat = String.concat ""
  let list_concat = List.append
end

(* The tests *)
let test_lowercase () =
  Alcotest.(check string) "same string" "hello!" (To_test.lowercase "hELLO!")

let test_capitalize () =
  Alcotest.(check string) "same string" "World." (To_test.capitalize "world.")

let test_str_concat () =
  Alcotest.(check string) "same string" "foobar" (To_test.str_concat ["foo"; "bar"])

let test_list_concat () =
  Alcotest.(check (list int)) "same lists" [1; 2; 3] (To_test.list_concat [1] [2; 3])

(* Run it *)
let () =
  let open Alcotest in
  run "Utils" [
      "string-case", [
          test_case "Lower case"     `Quick test_lowercase;
          test_case "Capitalization" `Quick test_capitalize;
        ];
      "string-concat", [ test_case "String mashing" `Quick test_str_concat  ];
      "list-concat",   [ test_case "List mashing"   `Slow  test_list_concat ];
    ]

The result is a self-contained binary which displays the test results. Use dune exec examples/simple.exe -- --help to see the runtime options.

Here's an example of a of failing test suite:

By default, only the first failing test log is printed to the console (and all test logs are captured on disk). Pass --show-errors to print all error messages.

Using Alcotest with opam and Dune

Add (alcotest :with-test) to the depends stanza of your dune-project file, or "alcotest" {with-test} to your opam file. Use the with-test package variable to declare your tests opam dependencies. Call opam to install them:

$ opam install --deps-only --with-test .

You can then declare your test and link with Alcotest: (test (libraries alcotest …) …), and run your tests:

$ dune runtest

Selecting tests to execute

You can filter which tests to run by supplying a regular expression matching the names of the tests to execute, or by passing a regular expression and a comma-separated list of test numbers (or ranges of test numbers, e.g. 2,4..9):

$ ./simple.native test '.*concat*'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[SKIP]     string-case            1   Capitalization.
[OK]       string-concat          0   String mashing.
[OK]       list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 2 tests run.

$ ./simple.native test 'string-case' '1..3'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[OK]       string-case            1   Capitalization.
[SKIP]     string-concat          0   String mashing.
[SKIP]     list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 1 test run.

Note that you cannot filter by test case name (i.e. Lower case or Capitalization), you must filter by test name & number instead.

See the examples directory for more examples.

Quick and Slow tests

In general you should use `Quick tests: tests that are ran on any invocations of the test suite. You should only use `Slow tests for stress tests that are ran only on occasion (typically before a release or after a major change). These slow tests can be suppressed by passing the -q flag on the command line, e.g.:

$ ./test.exe -q # run only the quick tests
$ ./test.exe    # run quick and slow tests

Passing custom options to the tests

In most cases, the base tests are unit -> unit functions. However, it is also possible to pass an extra option to all the test functions by using 'a -> unit, where 'a is the type of the extra parameter.

In order to do this, you need to specify how this extra parameter is read on the command-line, by providing a Cmdliner term for command-line arguments which explains how to parse and serialize values of type 'a (note: do not use positional arguments, only optional arguments are supported).

For instance:

let test_nice i = Alcotest.(check int) "Is it a nice integer?" i 42

let int =
  let doc = "What is your preferred number?" in
  Cmdliner.Arg.(required & opt (some int) None & info ["n"] ~doc ~docv:"NUM")

let () =
  Alcotest.run_with_args "foo" int [
    "all", ["nice", `Quick, test_nice]
  ]

Will generate test.exe such that:

$ test.exe test
test.exe: required option -n is missing

$ test.exe test -n 42
Testing foo.
[OK]                all          0   int.

Lwt

Alcotest provides an Alcotest_lwt module that you could use to wrap Lwt test cases. The basic idea is that instead of providing a test function in the form unit -> unit, you provide one with the type unit -> unit Lwt.t and alcotest-lwt calls Lwt_main.run for you.

However, there are a couple of extra features:

  • If an async exception occurs, it will cancel your test case for you and fail it (rather than exiting the process).
  • You get given a switch, which will be turned off when the test case finishes (or fails). You can use that to free up any resources.

For instance:

let free () = print_endline "freeing all resources"; Lwt.return ()

let test_lwt switch () =
  Lwt_switch.add_hook (Some switch) free;
  Lwt.async (fun () -> failwith "All is broken");
  Lwt_unix.sleep 10.

let () =
  Lwt_main.run @@ Alcotest_lwt.run "foo" [
    "all", [
      Alcotest_lwt.test_case "one" `Quick test_lwt
    ]
  ]

Will generate:

$ test.exe
Testing foo.
[ERROR]             all          0   one.
-- all.000 [one.] Failed --
in _build/_tests/all.000.output:
freeing all resources
[failure] All is broken

Comparison with other testing frameworks

The README is pretty clear about that:

Alcotest is the only testing framework using colors!

More seriously, Alcotest is similar to ounit but it fixes a few of the problems found in that library:

  • Alcotest has a nicer output, it is easier to see what failed and what succeeded and to read the log outputs of the failed tests;
  • Alcotest uses combinators to define pretty-printers and comparators between the things to test.

Other nice tools doing different kind of testing also exist:

  • qcheck does random generation and property testing (e.g. Quick Check);
  • crowbar and bun are similar to qcheck, but use compiler-directed randomness, i.e. they take advantage of the AFL support the OCaml compiler;
  • ppx_inline_tests allows to write tests in the same file as your source-code; they will be run only in a special mode of compilation.

Dependencies (9)

  1. ocaml-syntax-shims
  2. uutf >= "1.0.1"
  3. stdlib-shims
  4. re >= "1.7.2"
  5. cmdliner >= "1.2.0"
  6. astring
  7. fmt >= "0.8.7"
  8. ocaml >= "4.08"
  9. dune >= "3.0"

Dev Dependencies (1)

  1. odoc with-doc

  1. a2a-client
  2. aho-corasick
  3. ahrocksdb
  4. albatross >= "1.5.4"
  5. alcobar
  6. alcotest-async >= "1.9.1"
  7. alcotest-js >= "1.9.1"
  8. alcotest-lwt >= "1.9.1"
  9. alcotest-mirage >= "1.9.1"
  10. alg_structs_qcheck
  11. algaeff
  12. ambient-context
  13. ambient-context-eio
  14. ambient-context-lwt
  15. angstrom >= "0.7.0"
  16. ansi >= "0.6.0"
  17. anycache >= "0.7.4"
  18. anycache-lwt
  19. arc
  20. archetype >= "1.4.2"
  21. archi
  22. arp
  23. arrakis < "1.1.0"
  24. art
  25. asai
  26. asak
  27. asli >= "0.2.0"
  28. asn1-combinators >= "0.2.5"
  29. async-uri >= "0.5.0"
  30. atd >= "2.3.3"
  31. atdgen >= "2.10.0"
  32. atdpy
  33. atdts
  34. avro-simple
  35. aws-eio
  36. awskit
  37. awskit-eio
  38. awskit-lwt
  39. awskit-lwt-unix < "0.2.0"
  40. awskit-s3
  41. awskit-s3-eio < "0.2.0"
  42. awskit-s3-lwt < "0.2.0"
  43. awskit-s3-lwt-unix < "0.2.0"
  44. awskit-s3-sim
  45. azure-cosmos-db-eio
  46. backoff
  47. base32
  48. base64 >= "2.1.2" & < "3.2.0" | >= "3.4.0"
  49. bastet
  50. bastet_lwt
  51. bech32
  52. bechamel >= "0.5.0"
  53. betacalendars
  54. bhttp
  55. bigarray-overlap
  56. bigstringaf
  57. bin_there
  58. biotk >= "0.4"
  59. bitlib
  60. bizowie-api
  61. blake2
  62. bloomf
  63. bls12-381 < "0.4.1" | >= "3.0.0" & < "18.0"
  64. bls12-381-hash
  65. bls12-381-js >= "0.4.2"
  66. bls12-381-js-gen >= "0.4.2"
  67. bls12-381-legacy
  68. bls12-381-signature
  69. bls12-381-unix
  70. blurhash
  71. bm25
  72. brisk-reconciler
  73. builder-web
  74. bytebuffer
  75. bytream >= "0.2"
  76. ca-certs
  77. ca-certs-nss
  78. cabal
  79. cachet
  80. cachet-lwt
  81. cachet-solo5
  82. cactus
  83. caldav
  84. calendar >= "3.0.0"
  85. calendars >= "2.0.0"
  86. callipyge
  87. camlix
  88. camlkit
  89. camlkit-base
  90. capnp-rpc
  91. capnp-rpc-unix
  92. caqti >= "1.7.0"
  93. caqti-async >= "1.7.0"
  94. caqti-driver-mariadb >= "1.7.0"
  95. caqti-driver-postgresql >= "1.7.0"
  96. caqti-driver-sqlite3 >= "1.7.0"
  97. caqti-dynload = "2.0.1"
  98. caqti-eio
  99. caqti-lwt >= "1.7.0"
  100. caqti-miou
  101. carray
  102. carton < "1.0.0"
  103. carton-git
  104. carton-lwt >= "0.4.3" & < "1.0.0"
  105. cascade
  106. catala >= "0.6.0"
  107. cborl
  108. cf-lwt
  109. chacha
  110. chamelon
  111. chamelon-unix
  112. charrua-client
  113. charrua-server
  114. checked_oint
  115. checkseum >= "0.0.3"
  116. cid
  117. clarity-lang
  118. class_group_vdf
  119. cohttp
  120. cohttp-curl-async
  121. cohttp-curl-lwt
  122. cohttp-eio >= "6.0.0~beta2"
  123. cohttp-mirage >= "6.3.0"
  124. colombe >= "0.2.0"
  125. color
  126. commons
  127. conan
  128. conan-cli
  129. conan-database
  130. conan-lwt
  131. conan-unix
  132. conex < "0.10.0"
  133. conex-mirage-crypto
  134. conformist
  135. console
  136. console-eio
  137. contract
  138. cookie
  139. corosync
  140. cow >= "2.2.0"
  141. crockford
  142. css
  143. css-parser
  144. cstruct
  145. cstruct-sexp
  146. ctypes-zarith
  147. cuid
  148. cure2
  149. curly
  150. current
  151. current-albatross-deployer
  152. current_git >= "0.7.1"
  153. current_incr
  154. current_rpc >= "0.7.4"
  155. curve448
  156. cvc5 >= "1.3.0-3"
  157. data-encoding
  158. dates_calc
  159. dbase4
  160. decimal >= "0.3.0"
  161. decompress
  162. depyt
  163. digestif >= "0.9.0"
  164. dispatch >= "0.4.1"
  165. dkim
  166. dkim-bin
  167. dkim-mirage
  168. dkml-dune-dsl-show
  169. dkml-install
  170. dkml-install-installer
  171. dkml-install-runner
  172. dmarc
  173. dns >= "4.4.1"
  174. dns-cli
  175. dns-client >= "4.6.3"
  176. dns-forward-lwt-unix
  177. dns-resolver
  178. dns-server
  179. dns-tsig
  180. dnssd
  181. dnssec
  182. docfd >= "13.0.0"
  183. dockerfile >= "8.2.7"
  184. dockerfile-opam >= "8.3.4"
  185. domain-local-await >= "0.2.1"
  186. domain-local-timeout
  187. domain-name
  188. dream
  189. dream-htmx
  190. dream-pure
  191. dscheck >= "0.1.1"
  192. duff
  193. dune-deps >= "1.4.0"
  194. dune-release >= "1.0.0"
  195. duration
  196. ease-caml >= "0.1.7"
  197. echo
  198. ecma-regex
  199. eio < "0.12"
  200. eio_linux
  201. eio_windows
  202. eliom >= "13.0.0"
  203. elm_playground_3d_software
  204. elm_playground_gamekits
  205. elm_playground_software
  206. emile
  207. encore
  208. eqaf >= "0.5"
  209. equinoxe
  210. equinoxe-cohttp
  211. equinoxe-hlc
  212. ezgzip
  213. ezjsonm
  214. ezjsonm-lwt
  215. ezlua
  216. FPauth
  217. FPauth-core
  218. FPauth-responses
  219. FPauth-strategies
  220. faker
  221. faraday != "0.2.0"
  222. farfadet
  223. fat-filesystem
  224. fehu < "1.0.0~alpha3"
  225. ff
  226. ff-pbt
  227. flex-array
  228. flux
  229. fluxt
  230. forcamla
  231. forester >= "5.0"
  232. fsevents-lwt
  233. functoria
  234. fungi
  235. fxmacrodata
  236. geojson
  237. geoml >= "0.1.1"
  238. git
  239. git-cohttp
  240. git-cohttp-unix
  241. git-kv != "0.1.3"
  242. git-mirage
  243. git-net
  244. git-split
  245. git-unix
  246. gitlab-unix
  247. glicko2
  248. gmap
  249. gmocoin
  250. gobba
  251. gpt
  252. graphql
  253. graphql-async
  254. graphql-cohttp >= "0.13.0"
  255. graphql-lwt
  256. graphql_parser != "0.11.0"
  257. graphql_ppx
  258. guardian >= "0.4.0"
  259. h1
  260. h1_parser
  261. h2
  262. hacl
  263. hacl-star >= "0.6.0"
  264. hacl_func
  265. hacl_x25519
  266. handlebars-ml >= "0.2.1"
  267. hedgehog-alcotest
  268. hegel
  269. hexen
  270. highlexer
  271. highway
  272. highway-dream
  273. hkdf
  274. hockmd
  275. hpke
  276. html_of_jsx
  277. http
  278. http-multipart-formdata < "2.0.0"
  279. httpaf >= "0.2.0"
  280. httpcats
  281. https-eio
  282. httpun
  283. httpun-ws
  284. hugin < "1.0.0~alpha3"
  285. huml
  286. hvsock
  287. icalendar
  288. idna
  289. imagelib
  290. index
  291. inferno >= "20220603"
  292. influxdb-async
  293. influxdb-lwt
  294. inquire < "0.2.0"
  295. intel_hex >= "0.3"
  296. interval-map
  297. iomux
  298. irmin
  299. irmin-bench
  300. irmin-chunk
  301. irmin-cli
  302. irmin-containers
  303. irmin-fs
  304. irmin-git
  305. irmin-graphql
  306. irmin-pack
  307. irmin-pack-tools
  308. irmin-test != "3.6.1"
  309. irmin-tezos
  310. irmin-unix
  311. irmin-watcher
  312. jekyll-format
  313. jose
  314. json-data-encoding >= "0.9"
  315. json-data-encoding-bson >= "1.1.1"
  316. json_decoder
  317. jsonfeed
  318. jsonschema-core
  319. jsonschema-validation
  320. jsonxt
  321. junit_alcotest >= "2.2.0"
  322. jwto
  323. k7
  324. kafka-eio
  325. kaun < "1.0.0~alpha3"
  326. kcas >= "0.6.0"
  327. kcas_data >= "0.6.0"
  328. kdf
  329. ke >= "0.2"
  330. kkmarkdown
  331. kmt
  332. kube
  333. lambda-runtime
  334. lambda_streams
  335. lambda_streams_async
  336. lambdapi
  337. layoutz
  338. letters
  339. liquid_ml >= "0.1.3"
  340. lmdb >= "1.0"
  341. lockfree >= "0.3.1"
  342. logical
  343. logtk
  344. lp
  345. lp-glpk
  346. lp-glpk-js < "0.5.0"
  347. lp-gurobi < "0.5.0"
  348. lru
  349. lt-code
  350. luv
  351. mazeppa
  352. mbr-format
  353. mdx
  354. mec
  355. mechaml >= "1.2.1"
  356. mel-bastet
  357. melange >= "7.0.0-51"
  358. melange-edn >= "0.5.0"
  359. menhir-lsp >= "0.3.3"
  360. menhirformat
  361. merlin = "4.17.1-501"
  362. merlin-lib >= "4.17.1-501"
  363. metrics
  364. mfat
  365. mfetch
  366. miaou-core
  367. middleware
  368. migra
  369. mimic
  370. minicaml = "0.3.1" | >= "0.4"
  371. mirage >= "4.0.0"
  372. mirage-block-partition
  373. mirage-block-ramdisk
  374. mirage-channel >= "4.0.1"
  375. mirage-crypto-ec
  376. mirage-flow-unix
  377. mirage-kv >= "2.0.0"
  378. mirage-kv-mem >= "4.0.1"
  379. mirage-kv-unix >= "3.0.0"
  380. mirage-logs
  381. mirage-nat
  382. mirage-net-unix
  383. mirage-runtime < "4.7.0"
  384. mirage-tc
  385. mjson
  386. mldsa
  387. mlgpx
  388. mlkem
  389. mmdb < "0.3.0"
  390. mnd
  391. modelkit
  392. modelkit-nx
  393. modelkit-parallel
  394. modelkit-talon
  395. mqtt
  396. mrmime >= "0.2.0"
  397. msgpck >= "1.6"
  398. mssql
  399. multibase
  400. multicore-magic
  401. multihash
  402. multihash-digestif
  403. multipart-form-data
  404. multipart_form
  405. multipart_form-eio
  406. multipart_form-lwt
  407. multipart_form-miou
  408. named-pipe
  409. nanoid
  410. nbd >= "4.0.3"
  411. nbd-tool
  412. nel
  413. neo4j_bolt
  414. neodriver
  415. neodriver_core
  416. neodriver_eio
  417. neodriver_packstream
  418. nloge
  419. nocoiner
  420. noise
  421. non_empty_list
  422. nx < "1.0.0~alpha3"
  423. nx-datasets
  424. nx-text
  425. OCADml >= "0.6.0"
  426. obatcher
  427. object
  428. obs-eio
  429. obs-prometheus-eio
  430. ocaml-ai-sdk
  431. ocaml-index < "5.4.1-503"
  432. ocaml-r >= "0.4.0"
  433. ocaml-version >= "3.5.0"
  434. ocamlformat < "0.25.1"
  435. ocamlformat-lib
  436. ocamlformat-mlx-lib
  437. ocamlformat-rpc < "removed"
  438. ocamline
  439. ocgtk
  440. ochre
  441. ochre-cli
  442. ocluster
  443. ocue
  444. odoc < "2.1.1"
  445. oenv >= "0.1.0"
  446. ohex
  447. ohttp
  448. ohttp-cohttp
  449. ohttp-cohttp-eio
  450. ohttp-cohttp-lwt
  451. ohttp-piaf
  452. oidc
  453. oktree >= "0.2.4"
  454. opam-0install
  455. opam-0install-cudf >= "0.5.0"
  456. opam-compiler
  457. opam-file-format >= "2.1.1"
  458. opam-repomin
  459. opencage
  460. opentelemetry >= "0.6"
  461. opentelemetry-client
  462. opentelemetry-client-cohttp-eio
  463. opentelemetry-client-cohttp-lwt >= "0.6"
  464. opentelemetry-client-ocurl >= "0.6"
  465. opentelemetry-client-ocurl-lwt
  466. opentelemetry-cohttp-lwt >= "0.6"
  467. opentelemetry-logs
  468. opentelemetry-lwt >= "0.6"
  469. opium
  470. opium-graphql
  471. opium-testing
  472. opium_kernel
  473. orewa
  474. orgeat
  475. ortac-core
  476. ortac-wrapper
  477. osnap < "0.3.0"
  478. osx-acl
  479. osx-attr
  480. osx-cf
  481. osx-fsevents
  482. osx-keychain
  483. osx-membership
  484. osx-mount
  485. osx-xattr
  486. otoggl
  487. owl >= "0.7.0" & != "0.9.0" & != "1.0.0"
  488. owl-base < "0.5.0"
  489. owl-ode >= "0.1.0" & != "0.2.0"
  490. owl-symbolic
  491. ozstd
  492. par_incr
  493. parseff
  494. passe
  495. passmaker
  496. patch
  497. pbkdf
  498. pecu >= "0.2"
  499. pf-qubes
  500. pg_query >= "0.9.6"
  501. pgx
  502. pgx_unix
  503. pgx_value_core
  504. pgx_value_ptime
  505. phylogenetics
  506. piaf
  507. picos < "0.5.0"
  508. picos_meta
  509. pidgin
  510. pidgio
  511. piece_rope
  512. plebeia >= "2.0.0"
  513. polyglot
  514. polymarket
  515. polynomial
  516. ppx_bin_there
  517. ppx_blob >= "0.3.0"
  518. ppx_catch
  519. ppx_deriving_cmdliner
  520. ppx_deriving_ezjsonm
  521. ppx_deriving_qcheck
  522. ppx_deriving_rpc
  523. ppx_deriving_yaml
  524. ppx_deriving_yamlx
  525. ppx_ezlua
  526. ppx_hegel_generator
  527. ppx_hegel_test
  528. ppx_inline_alcotest
  529. ppx_map
  530. ppx_marshal
  531. ppx_mica
  532. ppx_parser
  533. ppx_protocol_conv
  534. ppx_protocol_conv_json
  535. ppx_protocol_conv_jsonm
  536. ppx_protocol_conv_msgpack
  537. ppx_protocol_conv_xml_light
  538. ppx_protocol_conv_xmlm
  539. ppx_protocol_conv_yaml
  540. ppx_repr
  541. ppx_subliner
  542. ppx_units
  543. ppx_yojson >= "1.1.0"
  544. pratter
  545. prbnmcn-ucb1 >= "0.0.2"
  546. prc
  547. preface
  548. pretty_expressive
  549. prettym
  550. primavera >= "1.1.0"
  551. privatus-analytics
  552. privatus-analytics-dream
  553. proc-smaps
  554. producer
  555. progress
  556. prom
  557. prometheus < "1.2"
  558. prometheus-app
  559. prometheus-eio
  560. prometheus-lwt
  561. prometheus-reporter
  562. protocell
  563. protocol-9p < "0.11.0" | >= "0.11.2"
  564. protocol-9p-unix
  565. proton
  566. psq
  567. public-suffix
  568. purl
  569. pxshot
  570. pyast
  571. qcaml
  572. qcheck >= "0.25"
  573. qcheck-alcotest
  574. qcheck-core >= "0.25"
  575. qcow-stream >= "0.13.0"
  576. qcow-tool = "0.13.0"
  577. qcow-types = "0.13.0"
  578. qdrant
  579. query-json
  580. quickjs
  581. quill < "1.0.0~alpha3"
  582. randii
  583. reason-standard
  584. red-black-tree
  585. reparse >= "2.0.0" & < "3.0.0"
  586. reparse-unix < "2.1.0"
  587. resp
  588. resp-unix >= "0.10.0"
  589. resto >= "0.9"
  590. rfc1951 < "1.0.0"
  591. routes < "2.0.0"
  592. rpc
  593. rpclib
  594. rpclib-async
  595. rpclib-lwt
  596. rpmfile < "0.3.0"
  597. rpmfile-eio
  598. rpmfile-unix
  599. rune < "1.0.0~alpha3"
  600. runtime_events_tools >= "0.5.2"
  601. SZXX >= "4.0.0"
  602. saga
  603. salsa20
  604. salsa20-core
  605. sanddb >= "0.2"
  606. saturn != "0.4.1"
  607. saturn_lockfree != "0.4.1"
  608. scrypt-kdf
  609. secp256k1 >= "0.4.1"
  610. secp256k1-internal
  611. secret
  612. semver >= "0.2.1"
  613. sendmail
  614. sendmail-lwt
  615. sendmail-miou-unix
  616. sendmail-mirage
  617. sendmsg
  618. seqes
  619. server-reason-react
  620. session-cookie
  621. session-cookie-async
  622. session-cookie-lwt
  623. sha256-cng
  624. shakuhachi
  625. sherlodoc
  626. sihl < "0.2.0"
  627. sihl-type
  628. slhdsa
  629. slug
  630. smaws-clients
  631. smaws-lib
  632. smol
  633. smol-helpers
  634. smtml >= "0.30.0"
  635. sodium-fmt
  636. solidity-alcotest
  637. sosie
  638. soteria
  639. sowilo < "1.0.0~alpha3"
  640. spdx_licenses
  641. spectrum >= "0.2.0"
  642. spectrum_capabilities
  643. spectrum_palette_ppx
  644. spectrum_palettes
  645. spectrum_tools
  646. spin >= "0.7.0"
  647. spurs < "0.1.1"
  648. squirrel
  649. ssh-agent
  650. ssl >= "0.6.0"
  651. starred_ml
  652. stem
  653. stramon-lib
  654. stringx
  655. styled-ppx
  656. swapfs
  657. symex >= "0.2"
  658. symphony-orchestrator-tui
  659. synchronizer >= "0.2"
  660. syslog-rfc5424
  661. syto
  662. tabr
  663. talon < "1.0.0~alpha3"
  664. tar-eio >= "3.5.0"
  665. tar-mirage
  666. tbls
  667. tcpip
  668. tdigest < "2.1.0"
  669. tdmrep
  670. term-indexing
  671. term-tools
  672. termaid
  673. terminal
  674. terminal_size >= "0.1.1"
  675. terminus
  676. terminus-cohttp
  677. terminus-hlc
  678. terml
  679. testo
  680. testo-lwt
  681. textmate-language >= "0.3.0"
  682. textrazor
  683. thread-table
  684. timedesc
  685. timere
  686. timere-parse >= "0.0.7"
  687. timmy
  688. timmy-jsoo
  689. timmy-lwt
  690. timmy-unix
  691. tiny_appkits
  692. tiny_languages
  693. tiny_libs
  694. tinybox
  695. tls >= "0.12.8"
  696. toc
  697. topojson
  698. topojsone
  699. trail
  700. traits
  701. transept
  702. tsort >= "2.2.0"
  703. tw
  704. twostep
  705. type_eq
  706. type_id
  707. typeid >= "1.0.1"
  708. tyre >= "0.4"
  709. tyxml >= "4.2.0"
  710. tyxml-jsx
  711. tyxml-ppx >= "4.3.0"
  712. tyxml-syntax
  713. ucharset
  714. uecc
  715. ulid
  716. universal-portal
  717. unix-dirent
  718. unix-errno
  719. unix-sys-resource
  720. unix-sys-stat
  721. unix-time
  722. unstrctrd
  723. uring < "0.4"
  724. user-agent-parser
  725. uspf
  726. uspf-lwt
  727. uspf-mirage
  728. uspf-unix
  729. utcp
  730. utop >= "2.13.0"
  731. validate
  732. validator
  733. valkey
  734. vercel
  735. verdict
  736. vhd-format-lwt >= "0.13.0"
  737. wayland >= "2.0"
  738. wcwidth
  739. websocketaf
  740. wire
  741. x509 >= "0.7.0"
  742. xapi-rrd
  743. xapi-stdext-date
  744. xapi-stdext-encodings
  745. xapi-stdext-std >= "4.16.0"
  746. xdge
  747. xgboost
  748. xkbcommon
  749. yaml
  750. yaml-sexp
  751. yocaml
  752. yocaml_syndication >= "2.0.0"
  753. yocaml_yaml < "2.0.0"
  754. yojson >= "1.6.0"
  755. yojson-five
  756. yuscii >= "0.3.0"
  757. yuujinchou >= "1.0.0"
  758. zar
  759. zed >= "3.2.2"
  760. zlist < "0.4.0"

Conflicts (2)

  1. js_of_ocaml-compiler < "5.8"
  2. result < "1.5"

Build status

Results of building alcotest with each compiler on check.ci.ocaml.org, run of against opam-repository 7cdc698. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
1.9.1 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure