aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/ocaml/newobject1_runme.ml
blob: 24754569050e0f4d58e01605febda945d2ffffde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
open Newobject1

exception RuntimeError of string * int

let foo1 = ref (_Foo_makeFoo C_void)
let _ = if get_int (_Foo_fooCount C_void) != 1 then
   raise (RuntimeError ("(1) Foo.fooCount != 1",
			get_int (_Foo_fooCount C_void)))

let foo2 = ref ((invoke !foo1) "makeMore" C_void) 
let _ = if get_int (_Foo_fooCount C_void) != 2 then
   raise (RuntimeError ("(2) Foo.fooCount != 2",
			get_int (_Foo_fooCount C_void)))

let _ = begin
  foo1 := C_void ; Gc.full_major () ;
  (if get_int (_Foo_fooCount C_void) != 1 then
	raise (RuntimeError ("(3) Foo.fooCount != 1",
			     get_int (_Foo_fooCount C_void)))) ;

  foo2 := C_void ; Gc.full_major () ;
  (if get_int (_Foo_fooCount C_void) != 0 then
	raise (RuntimeError ("(4) Foo.fooCount != 0",
			     get_int (_Foo_fooCount C_void)))) ;
end