summaryrefslogtreecommitdiff
path: root/testsuite/tests/lf_skiplist/test.ml
blob: 9a4a19cee791cc002453c78b0eb514bf1c5124fc (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
26
27
28
29
30
(* TEST
 modules = "stubs.c";
*)

external test_skiplist_serial : unit -> unit = "test_skiplist_serial"

let () = test_skiplist_serial ()

external init_skiplist : unit -> unit = "init_skiplist"
external insert_skiplist : int -> int -> int -> unit = "insert_skiplist"
external find_skiplist : int -> int -> int -> bool = "find_skiplist"
external clean_skiplist : int -> unit = "clean_skiplist"
external cardinal_skiplist : unit -> int = "cardinal_skiplist"

let () =
  let nturns = 128
  and nseq = 4 in
  assert (nturns < 1024); (* See calc_key in stubs.c *)
  init_skiplist ();
  for i=1 to nseq do
    for k = 1 to nturns do
      insert_skiplist k 1 0
    done ;
    assert(cardinal_skiplist () = nturns) ;
    for k = 1 to nturns do
      assert(find_skiplist k 1 0)
    done ;
    assert(cardinal_skiplist () = 0) ;
    clean_skiplist nturns
  done