32 lines
645 B
OCaml
32 lines
645 B
OCaml
|
|
let output_stanzas name =
|
||
|
|
Printf.printf
|
||
|
|
{|
|
||
|
|
(rule
|
||
|
|
(deps pp.exe (:input %s))
|
||
|
|
(targets %s.errors)
|
||
|
|
(action
|
||
|
|
(progn
|
||
|
|
(with-stderr-to %%{targets}
|
||
|
|
(run ./pp.exe -no-color --impl %%{input}))
|
||
|
|
(bash "sed -i.bak '1d' %%{targets}"))))
|
||
|
|
(rule
|
||
|
|
(alias runtest)
|
||
|
|
(package ppx_cstruct)
|
||
|
|
(action
|
||
|
|
(diff %s.expected %s.errors)))
|
||
|
|
|}
|
||
|
|
name name name name
|
||
|
|
|
||
|
|
let is_test = function
|
||
|
|
| "pp.ml" -> false
|
||
|
|
| "pp.pp.ml" -> false
|
||
|
|
| "gen_tests.ml" -> false
|
||
|
|
| e -> Filename.check_suffix e ".ml"
|
||
|
|
|
||
|
|
let () =
|
||
|
|
Sys.readdir "."
|
||
|
|
|> Array.to_list
|
||
|
|
|> List.sort String.compare
|
||
|
|
|> List.filter is_test
|
||
|
|
|> List.iter output_stanzas
|