File: intern_final.ml

package info (click to toggle)
js-of-ocaml 6.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 37,932 kB
  • sloc: ml: 135,957; javascript: 58,364; ansic: 437; makefile: 422; sh: 12; perl: 4
file content (33 lines) | stat: -rw-r--r-- 765 bytes parent folder | download | duplicates (3)
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
26
27
28
29
30
31
32
33
(* TEST *)

let t : int array = Array.make 200 42
let c = open_out_bin "data42"
let () = Marshal.to_channel c t []
let () = close_out c

let t : int array = Array.make 200 0
let c = open_out_bin "data0"
let () = Marshal.to_channel c t []
let () = close_out c

let rec fill_minor accu = function
  | 0 -> accu
  | n -> fill_minor (n::accu) (n-1)

let rec callback c0 () =
  seek_in c0 0;
  let a = Marshal.from_channel c0 in
  Array.iter (fun v -> assert (v = 0)) a

let () =
  let c0 = open_in_bin "data0" in
  let c42 = open_in_bin "data42" in

  ignore (Gc.create_alarm (callback c0));

  for i = 0 to 100000 do
    seek_in c42 0;
    let res : int array = Marshal.from_channel c42 in
    Array.iter (fun n -> assert (n = 42)) res
  done;
  Printf.printf "OK!\n"