X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=test%2FBindings%2FOcaml%2Fvmcore.ml;h=04b80868c4d0ac247863da8b6eb38c7982669c37;hp=5c24992929a64721e3d3b5dbb4523ff8ff680bbb;hb=da1435f86ebc9886dd7704294e01d192d79e069c;hpb=2618a6c1122d5d2007787fb56156be44b21ab32a diff --git a/test/Bindings/Ocaml/vmcore.ml b/test/Bindings/Ocaml/vmcore.ml index 5c24992929a..04b80868c4d 100644 --- a/test/Bindings/Ocaml/vmcore.ml +++ b/test/Bindings/Ocaml/vmcore.ml @@ -25,7 +25,8 @@ let insist cond = exit_status := 10; " FAIL " end in - prerr_endline (msg ^ (string_of_int !case_num)) + prerr_endline (" " ^ (string_of_int !case_num) ^ if cond then "" + else " FAIL") let suite name f = prerr_endline (name ^ ":"); @@ -102,13 +103,24 @@ let test_types () = insist (i8_type == element_type ty); insist (Array_type == classify_type ty); - (* RUN: grep {Ty10.*float\*} < %t.ll - *) - group "pointer"; - let ty = pointer_type float_type in - insist (define_type_name "Ty10" ty m); - insist (float_type == element_type ty); - insist (Pointer_type == classify_type ty); + begin group "pointer"; + (* RUN: grep {UnqualPtrTy.*float\*} < %t.ll + *) + let ty = pointer_type float_type in + insist (define_type_name "UnqualPtrTy" ty m); + insist (float_type == element_type ty); + insist (0 == address_space ty); + insist (Pointer_type == classify_type ty) + end; + + begin group "qualified_pointer"; + (* RUN: grep {QualPtrTy.*i8.*3.*\*} < %t.ll + *) + let ty = qualified_pointer_type i8_type 3 in + insist (define_type_name "QualPtrTy" ty m); + insist (i8_type == element_type ty); + insist (3 == address_space ty) + end; (* RUN: grep {Ty11.*\<4 x i16\>} < %t.ll *) @@ -490,7 +502,20 @@ let test_functions () = insist (ccc = function_call_conv fn); set_function_call_conv fastcc fn; insist (fastcc = function_call_conv fn); - ignore (build_unreachable (builder_at_end (entry_block fn))) + ignore (build_unreachable (builder_at_end (entry_block fn))); + + begin group "collector"; + (* RUN: grep {Fn6.*gc.*shadowstack} < %t.ll + *) + let fn = define_function "Fn6" ty m in + insist (None = collector fn); + set_collector (Some "ocaml") fn; + insist (Some "ocaml" = collector fn); + set_collector None fn; + insist (None = collector fn); + set_collector (Some "shadowstack") fn; + ignore (build_unreachable (builder_at_end (entry_block fn))); + end (*===-- Basic Blocks ------------------------------------------------------===*) @@ -749,7 +774,6 @@ let test_builder () = let t3 = const_vector [| one; one; zero; zero |] in let vec1 = build_insertelement t1 p1 p2 "Vec1" atentry in let vec2 = build_insertelement t2 p1 p2 "Vec2" atentry in - let vec3 = build_insertelement t3 p1 p2 "Vec3" atentry in ignore (build_extractelement vec1 p2 "Inst49" atentry); ignore (build_insertelement vec1 p1 p2 "Inst50" atentry); @@ -777,6 +801,14 @@ let test_builder () = end +(*===-- Module Provider ---------------------------------------------------===*) + +let test_module_provider () = + let m = create_module "test" in + let mp = ModuleProvider.create m in + ModuleProvider.dispose mp + + (*===-- Writer ------------------------------------------------------------===*) let test_writer () = @@ -801,5 +833,6 @@ let _ = suite "functions" test_functions; suite "basic blocks" test_basic_blocks; suite "builder" test_builder; + suite "module provider" test_module_provider; suite "writer" test_writer; exit !exit_status