31 lines
645 B
OCaml
31 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
|