mte/unikernel/duniverse/ppxlib/test/501_migrations/compare_on.ml

31 lines
914 B
OCaml
Raw Normal View History

2025-11-11 02:07:51 +01:00
let run () =
let example_fn, ppx =
let args = Sys.argv in
if not (Array.length args = 3) then failwith "expected exactly two args"
else (Array.get args 1, Array.get args 2)
in
let direct = "without_migrations" in
let migrations = "with_migrations" in
let direct_ec =
Sys.command ("ocamlc -dparsetree " ^ example_fn ^ " 2> " ^ direct)
in
if direct_ec > 0 then (
print_endline "compile error even without migrations";
let _ = Sys.command ("cat " ^ direct) in
())
else
let migrations_ec =
Sys.command
("ocamlc -dparsetree -ppx '" ^ ppx ^ " -as-ppx' " ^ example_fn ^ " 2> "
^ migrations)
in
if migrations_ec > 0 then (
print_endline "compile error after migrations";
let _ = Sys.command ("cat " ^ migrations) in
())
else
let _ = Sys.command ("diff -U 0 " ^ direct ^ " " ^ migrations) in
()
let () = run ()