(* RUN: rm -rf %t && mkdir -p %t && cp %s %t/irreader.ml
 * RUN: %ocamlc -g -w +A -package llvm.irreader -linkpkg %t/irreader.ml -o %t/executable
 * RUN: %t/executable
 * RUN: %ocamlopt -g -w +A -package llvm.irreader -linkpkg %t/irreader.ml -o %t/executable
 * RUN: %t/executable
 * XFAIL: vg_leak
 *)

(* Note: It takes several seconds for ocamlopt to link an executable with
         libLLVMCore.a, so it's better to write a big test than a bunch of
         little ones. *)

open Llvm
open Llvm_irreader

let context = global_context ()

(* Tiny unit test framework - really just to help find which line is busted *)
let print_checkpoints = false

let suite name f =
  if print_checkpoints then
    prerr_endline (name ^ ":");
  f ()

let _ =
  Printexc.record_backtrace true

let insist cond =
  if not cond then failwith "insist"


(*===-- IR Reader ---------------------------------------------------------===*)

let test_irreader () =
  begin
    let buf = MemoryBuffer.of_string "@foo = global i32 42" in
    let m   = parse_ir context buf in
    match lookup_global "foo" m with
    | Some foo ->
        insist ((global_initializer foo) = (const_int (i32_type context) 42))
    | None ->
        failwith "global"
  end;

  begin
    let buf = MemoryBuffer.of_string "@foo = global garble" in
    try
      ignore (parse_ir context buf);
      failwith "parsed"
    with Llvm_irreader.Error _ ->
      ()
  end


(*===-- Driver ------------------------------------------------------------===*)

let _ =
  suite "irreader" test_irreader
