(* -*- tuareg -*- *)

let suffix =
  try
    let major_version = List.hd (String.split_on_char '.' Sys.ocaml_version) in
    if int_of_string major_version < 5 then string_of_int Sys.word_size else "ocaml5"
  with _ -> failwith ("Unknown OCaml version format: " ^ Sys.ocaml_version)

let dune = Printf.sprintf {|

(executables
  (names QCheck_runner_test)
  (libraries qcheck))

(rule
  (targets output.txt)
  (deps ./QCheck_runner_test.exe)
  (enabled_if (= %%{os_type} "Unix"))
  (action
    (with-accepted-exit-codes
      1
      (with-stdout-to
        %%{targets}
        (run ./QCheck_runner_test.exe --no-colors -s 1234)))))

(rule
  (alias runtest)
  (enabled_if (= %%{os_type} "Unix"))
  (package qcheck)
  (action (diff output.txt.expected.%s output.txt)))

|} suffix

let () = Jbuild_plugin.V1.send dune
