diff options
author | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-03-16 20:08:03 +0000 |
---|---|---|
committer | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-03-16 20:08:03 +0000 |
commit | 3e0c83559397c87e06ef29c41385e7adc34573c2 (patch) | |
tree | 2cede6fd76e7d63ba9cc4e0d1c272a5fbbdfaffa /test/Bindings/Ocaml/target.ml | |
parent | f7a91e68a8566c265ed6f4ab827d53a5c0c690ee (diff) | |
download | external_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.ml | 51 |
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 |