mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-09 22:16:10 +03:00
45b0feaf20
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)
33 lines
702 B
Plaintext
33 lines
702 B
Plaintext
(library
|
|
(name clerk_driver)
|
|
(public_name catala.clerk_driver)
|
|
(libraries
|
|
catala.runtime_ocaml
|
|
catala.catala_utils
|
|
catala.surface
|
|
ninja_utils
|
|
cmdliner
|
|
re
|
|
ocolor)
|
|
(modules clerk_scan clerk_report clerk_runtest clerk_driver))
|
|
|
|
(rule
|
|
(target custom_linking.sexp)
|
|
(mode fallback)
|
|
(action
|
|
(with-stdout-to
|
|
%{target}
|
|
(echo "()"))))
|
|
|
|
(executable
|
|
(name clerk)
|
|
(public_name clerk)
|
|
(flags
|
|
(:standard
|
|
(:include custom_linking.sexp)))
|
|
(libraries clerk_driver)
|
|
(link_deps ../compiler/catala.exe)
|
|
; not a real dependency, but when running clerk in practice you always want the catala binary to be up-to-date (e.g. `dune exec -- ckerk test`)
|
|
(modules clerk)
|
|
(package catala))
|