summaryrefslogtreecommitdiff
path: root/Examples/test-suite/ocaml/minherit_runme.ml
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/ocaml/minherit_runme.ml')
-rw-r--r--Examples/test-suite/ocaml/minherit_runme.ml131
1 files changed, 131 insertions, 0 deletions
diff --git a/Examples/test-suite/ocaml/minherit_runme.ml b/Examples/test-suite/ocaml/minherit_runme.ml
new file mode 100644
index 0000000..29a37f4
--- /dev/null
+++ b/Examples/test-suite/ocaml/minherit_runme.ml
@@ -0,0 +1,131 @@
+(* Stolen from the python tests *)
+open Swig
+open Minherit
+
+let a = new_Foo C_void
+let b = new_Bar C_void
+let c = new_FooBar C_void
+let d = new_Spam C_void
+
+let soci x = (string_of_int (get_int x))
+
+let _ =
+ if (invoke a) "xget" C_void <> (C_int 1) then
+ raise (Failure "Bad attribute value (a.xget)")
+
+let _ =
+ if (invoke b) "yget" C_void <> (C_int 2) then
+ raise (Failure "Bad attribute value (b.yget)")
+
+let _ =
+ if (invoke c) "xget" C_void <> (C_int 1)
+ || (invoke c) "yget" C_void <> (C_int 2)
+ || (invoke c) "zget" C_void <> (C_int 3) then
+ raise (Failure "Bad attribute value c")
+
+let _ =
+ if (invoke d) "xget" C_void <> (C_int 1)
+ || (invoke d) "yget" C_void <> (C_int 2)
+ || (invoke d) "zget" C_void <> (C_int 3)
+ || (invoke d) "wget" C_void <> (C_int 4) then
+ raise (Failure "Bad attribute value d")
+
+let xga = _xget a
+let _ =
+ if xga <> (C_int 1) then
+ raise (Failure ("Bad attribute value (xget a): " ^ (soci xga)))
+
+let ygb = _yget b
+let _ =
+ if ygb <> (C_int 2) then
+ raise (Failure ("Bad attribute value (yget b): " ^
+ (string_of_int (get_int ygb))))
+
+let xgc = _xget c and ygc = _yget c and zgc = _zget c
+let _ =
+ if xgc <> (C_int 1) || ygc <> (C_int 2) || zgc <> (C_int 3) then
+ raise (Failure ("Bad attribute value (xgc=" ^ (soci xgc) ^
+ " (sb 1) ygc=" ^ (soci ygc) ^
+ " (sb 2) zgc=" ^ (soci zgc) ^
+ " (sb 3))"))
+
+let xgd = _xget d and ygd = _yget d and zgd = _zget d and wgd = _wget d
+let _ =
+ if xgd <> (C_int 1) || ygd <> (C_int 2)
+ || zgd <> (C_int 3) || wgd <> (C_int 4) then
+ raise (Failure ("Bad attribute value (xgd=" ^ (soci xgd) ^
+ " (sb 1) ygd=" ^ (soci ygd) ^
+ " (sb 2) zgd=" ^ (soci zgd) ^
+ " (sb 3)"))
+
+(* Cleanse all of the pointers and see what happens *)
+
+let aa = _toFooPtr a
+let bb = _toBarPtr b
+let cc = _toFooBarPtr c
+let dd = _toSpamPtr d
+
+let xgaa = (invoke aa) "xget" C_void
+let _ =
+ if xgaa <> (C_int 1) then
+ raise (Failure ("Bad attribute value xgaa " ^ (soci xgaa)))
+
+let ygbb = (invoke bb) "yget" C_void
+let _ =
+ if ygbb <> (C_int 2) then
+ raise (Failure ("Bad attribute value ygbb " ^ (soci ygbb)))
+
+let xgcc = (invoke cc) "xget" C_void
+and ygcc = (invoke cc) "yget" C_void
+and zgcc = (invoke cc) "zget" C_void
+
+let _ =
+ if xgcc <> (C_int 1) || ygcc <> (C_int 2) || zgcc <> (C_int 3) then
+ raise (Failure ("Bad attribute value (" ^
+ (soci xgcc) ^ " (sb 1) " ^
+ (soci ygcc) ^ " (sb 2) " ^
+ (soci zgcc) ^ " (sb 3))"))
+
+let xgdd = (invoke dd) "xget" C_void
+and ygdd = (invoke dd) "yget" C_void
+and zgdd = (invoke dd) "zget" C_void
+and wgdd = (invoke dd) "wget" C_void
+
+let _ =
+ if xgdd <> (C_int 1) || ygdd <> (C_int 2)
+ || zgdd <> (C_int 3) || wgdd <> (C_int 4) then
+ raise (Failure ("Bad value: " ^
+ "xgdd=" ^ (soci xgdd) ^
+ "ygdd=" ^ (soci ygdd) ^
+ "zgdd=" ^ (soci zgdd) ^
+ "wgdd=" ^ (soci wgdd)))
+
+let xgaa = _xget aa
+and ygbb = _yget bb
+and xgcc = _xget cc
+and ygcc = _yget cc
+and zgcc = _zget cc
+and xgdd = _xget dd
+and ygdd = _yget dd
+and zgdd = _zget dd
+and wgdd = _wget dd
+
+let _ =
+ if xgaa <> (C_int 1) then
+ raise (Failure ("Fn xget: xgaa=" ^ (soci xgaa)))
+
+let _ =
+ if ygbb <> (C_int 2) then
+ raise (Failure ("Fn yget: ygbb=" ^ (soci ygbb)))
+
+let _ =
+ if xgcc <> (C_int 1) || ygcc <> (C_int 2) || zgcc <> (C_int 3) then
+ raise (Failure ("CC with fns: (" ^
+ (soci xgcc) ^ " " ^ (soci ygcc) ^ " " ^ (soci zgcc)))
+
+let _ =
+ if xgdd <> (C_int 1) || ygdd <> (C_int 2)
+ || zgdd <> (C_int 3) || wgdd <> (C_int 4) then
+ raise (Failure ("CC with fns: (" ^
+ (soci xgdd) ^ " " ^ (soci ygdd) ^ " " ^
+ (soci zgdd) ^ " " ^ (soci wgdd) ^ ")"))