bf6dd916c628c2d9392820f0408b0eff7762de1f
[perl4caml.git] / test / 140-ref.ml
1 (* Reference, dereference.
2  * $Id: 140-ref.ml,v 1.1 2005-01-28 23:09:33 rich Exp $
3  *)
4
5 open Perl
6
7 let () =
8   let sv = sv_of_int 42 in
9   let sv = scalarref sv in
10   assert (sv_type sv = SVt_RV);
11   let sv = deref sv in
12   assert (42 = int_of_sv sv);
13
14   let av = av_of_string_list [ "foo"; "bar" ] in
15   let sv = arrayref av in
16   assert (sv_type sv = SVt_RV);
17   let av = deref_array sv in
18   assert (2 = av_length av);
19
20   let hv = hv_empty () in
21   hv_set hv "foo" (sv_of_int 1);
22   hv_set hv "bar" (sv_of_int 2);
23   let sv = hashref hv in
24   assert (sv_type sv = SVt_RV);
25   let hv = deref_hash sv in
26   assert (1 = int_of_sv (hv_get hv "foo"));
27   assert (2 = int_of_sv (hv_get hv "bar"));
28 ;;
29
30 Gc.full_major ()