aboutsummaryrefslogtreecommitdiffstats
path: root/test/Bindings/Ocaml/target.ml
diff options
context:
space:
mode:
authorGordon Henriksen <gordonhenriksen@mac.com>2008-03-16 20:08:03 +0000
committerGordon Henriksen <gordonhenriksen@mac.com>2008-03-16 20:08:03 +0000
commit3e0c83559397c87e06ef29c41385e7adc34573c2 (patch)
tree2cede6fd76e7d63ba9cc4e0d1c272a5fbbdfaffa /test/Bindings/Ocaml/target.ml
parentf7a91e68a8566c265ed6f4ab827d53a5c0c690ee (diff)
downloadexternal_llvm-3e0c83559397c87e06ef29c41385e7adc34573c2.zip
external_llvm-3e0c83559397c87e06ef29c41385e7adc34573c2.tar.gz
external_llvm-3e0c83559397c87e06ef29c41385e7adc34573c2.tar.bz2
C and Objective Caml bindings for the TargetData class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48422 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Bindings/Ocaml/target.ml')
-rw-r--r--test/Bindings/Ocaml/target.ml51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/Bindings/Ocaml/target.ml b/test/Bindings/Ocaml/target.ml
new file mode 100644
index 0000000..2e83b31
--- /dev/null
+++ b/test/Bindings/Ocaml/target.ml
@@ -0,0 +1,51 @@
+(* RUN: %ocamlc -warn-error A llvm.cma llvm_target.cma %s -o %t
+ *)
+
+(* Note: It takes several seconds for ocamlc 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_target
+
+
+(* Tiny unit test framework - really just to help find which line is busted *)
+let suite name f =
+ prerr_endline (name ^ ":");
+ f ()
+
+
+(*===-- Fixture -----------------------------------------------------------===*)
+
+let filename = Sys.argv.(1)
+let m = create_module filename
+
+
+(*===-- Target Data -------------------------------------------------------===*)
+
+let test_target_data () =
+ let td = TargetData.create (target_triple m) in
+ let sty = struct_type [| i32_type; i64_type |] in
+
+ ignore (TargetData.as_string td);
+ ignore (TargetData.invalidate_struct_layout td sty);
+ ignore (byte_order td);
+ ignore (pointer_size td);
+ ignore (intptr_type td);
+ ignore (size_in_bits td sty);
+ ignore (store_size td sty);
+ ignore (abi_size td sty);
+ ignore (stack_align td sty);
+ ignore (preferred_align td sty);
+ ignore (preferred_align_of_global td (declare_global sty "g" m));
+ ignore (element_at_offset td sty (Int64.of_int 1));
+ ignore (offset_of_element td sty 1);
+
+ TargetData.dispose td
+
+
+(*===-- Driver ------------------------------------------------------------===*)
+
+let _ =
+ suite "target data" test_target_data;
+ dispose_module m