| (* 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) ^ ")")) |