catala/compiler/catala_utils
Louis Gesbert 45b0feaf20
Generate tests reports from 'clerk test'
This is a proper replacement for the previous shell-based placeholder hack.

Here is a summary:

- `clerk runtest` (normally run by ninja) is much extended:
  * besides generating the test@out file, it checks individual tests for success
    and can write a report file containing their status, and the positions for
    their (expected/current) outputs (this uses `Marshal`)
  * it now handles out-tests directly in addition to inline-tests, for which
    it generates the separate output file ; they are included in the report

- ninja is now tasked with building all the test reports (which shouldn't fail);
  for directories, individual reports are concatenated (as before).
  Removing intermediate report rules, and out-test rules means that the ninja
  file is much simplified.

- then, clerk takes back control, reads the final reports and formats them in a
  user-friendly way. Printing the reports may imply running `diff` internally.
  In particular, the commands to easily reproduce each test are provided.
  Resetting the test results if required is also done directly by clerk, at this
  stage.

A few switches are available to customise the output, but I am waiting for some
feedback before deciding what to make available from the CLI.

The `clerk report` command is available to manually explore test reports, but
normally the processing is done directly at the end of `clerk test` (i.e. ninja
will no longer call that command)
2024-06-19 16:10:26 +02:00
..
catala_utils.mld Match the compiler code to the new type of error message content 2023-07-12 11:55:11 +02:00
cli.ml Add an option to stop on the first delayed error encountered 2024-06-19 14:52:32 +02:00
cli.mli Reformat 2024-03-20 14:41:06 +01:00
dune Messages: adjust to terminal width 2024-04-26 15:40:55 +02:00
file.ml Fix adjustment of format width to terminal 2024-05-06 21:39:58 +02:00
file.mli Reformat 2024-03-20 14:41:06 +01:00
get_version.ml Better version handling 2024-01-24 11:41:34 +01:00
global.ml Add an option to stop on the first delayed error encountered 2024-06-19 14:52:32 +02:00
global.mli Add an option to stop on the first delayed error encountered 2024-06-19 14:52:32 +02:00
hash.ml Replace module hashes for external modules 2024-05-28 11:43:50 +02:00
hash.mli Replace module hashes for external modules 2024-05-28 11:43:50 +02:00
map.ml Reformat 2023-11-30 23:53:38 +01:00
mark.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
mark.mli Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
message.ml Generate tests reports from 'clerk test' 2024-06-19 16:10:26 +02:00
message.mli Generate tests reports from 'clerk test' 2024-06-19 16:10:26 +02:00
pos.ml Generate tests reports from 'clerk test' 2024-06-19 16:10:26 +02:00
pos.mli Cleaner message printing 2024-05-03 12:21:34 +02:00
string.ml Generate tests reports from 'clerk test' 2024-06-19 16:10:26 +02:00
string.mli Generate tests reports from 'clerk test' 2024-06-19 16:10:26 +02:00
suggestions.ml Cleaner message printing 2024-05-03 12:21:34 +02:00
suggestions.mli Better indications for the user : 2023-07-12 16:32:55 +02:00
uid.ml Fix hashing of submodule references 2024-05-28 11:43:50 +02:00
uid.mli Fix hashing of submodule references 2024-05-28 11:43:50 +02:00
version.mli Better version handling 2024-01-24 11:41:34 +01:00