; The error-reporting format changed in 4.12; thus the expect-tests need to be duplicated

(rule
 (package ppxlib)
 (alias runtest)
 (enabled_if
  (and
   (>= %{ocaml_version} "4.08.0")
   (< %{ocaml_version} "4.12.0")))
 (deps
  (:test test.ml)
  (package ppxlib))
 (action
  (chdir
   %{project_root}
   (progn
    (run expect-test %{test})
    (diff? %{test} %{test}.corrected)))))

; This runs expect-test on the same input test.ml but compares the .corrected
; file to test_412.ml

(rule
 (package ppxlib)
 (alias runtest)
 (enabled_if
  (>= %{ocaml_version} "4.12.0"))
 (deps
  (:test test.ml)
  (:t test_412.ml)
  (package ppxlib))
 (action
  (chdir
   %{project_root}
   (progn
    (run mv %{t} %{t}.old)
    (run cp %{test} %{t})
    (run expect-test %{t})
    (run mv %{t}.old %{t})
    (diff? %{t} %{t}.corrected)))))
