cherry pick from local- branch
[SXSI/xpathcomp.git] / unit_test.ml
1 (******************************************************************************)
2 (*  SXSI : XPath evaluator                                                    *)
3 (*  Kim Nguyen (Kim.Nguyen@nicta.com.au)                                      *)
4 (*  Copyright NICTA 2008                                                      *)
5 (*  Distributed under the terms of the LGPL (see LICENCE)                     *)
6 (******************************************************************************)
7
8
9
10 if Array.length (Sys.argv) <> 2
11 then
12   begin
13     Printf.printf "usage: %s file.xml\n" (Sys.argv.(0));
14     exit 1
15   end
16
17     
18 let doc = 
19         try 
20           Tree.load Sys.argv.(1) 
21         with
22           | _ -> 
23               (     try
24                       Tree.parse_xml_uri Sys.argv.(1) 
25                     with
26                       | _ ->(
27                           
28                           Printf.printf "Error parsing document\n";
29                           exit 2))
30 ;;
31
32
33 let full_traversal tree = 
34   let rec loop t = 
35     if Tree.is_node t 
36     then
37       begin
38         (*ignore (Tree.tag t); *)
39       loop (Tree.node_child t);
40       loop (Tree.node_sibling t); 
41     end
42   in loop tree
43 ;;
44         
45
46 let _ = Tag.init (Tree.tag_pool doc)
47
48 let time f x =
49   let t1 = Unix.gettimeofday () in
50   let r = f x in
51   let t2 = Unix.gettimeofday () in 
52   let t = (1000. *.(t2 -. t1)) in
53     Printf.eprintf "  %fms\n%!" t ;
54     r
55 ;;
56 let _ = Printf.eprintf "Timing traversal ... ";;
57 let _ = time (full_traversal) doc
58 ;;