4 module SaxonBXQuery : ENGINE =
6 let name = "SaxonBXquery"
8 (* Todo call the binary to actually compute the version string *)
12 Saxon 9.0.0.4J from Saxonica"
13 let command = "saxonb-xquery"
16 let mk_queryfile b doc q out = build_xquery doc q out b
17 let mk_cmdline b qout qfile _ _ = [ "-t" ; "-pipe:push";"-o:"^qout; qfile ]
18 let parse_rules = [ (".*Analysis time: \\([0-9]+\\) milliseconds.*",
19 [ Query_compile_time 1 ]);
21 (".*Tree built in \\([0-9]+\\) milliseconds.*",
22 [ Input_parsing_time 1 ]);
24 (".*Execution time: \\([0-9]+\\) milliseconds.*",
25 [ Query_execution_time 1 ]);
30 module QizxOpen : ENGINE =
34 (* Todo call the binary to actually compute the version string *)
38 let command = "/usr/local/qizxopen-2.1/bin/qizx"
41 let mk_queryfile b doc q out = build_xquery doc q out b
42 let mk_cmdline b qout qfile _ _ = [ "-v" ; "-out"^ (if b then qout else "/dev/null");"-q"; qfile ]
44 (".*display time: \\([0-9]+\\) ms.*",
45 [ Query_execution_time 1 ]);
50 module XsltProc : ENGINE =
54 (* Todo call the binary to actually compute the version string *)
56 "xsltproc is a command line tool for applying XSLT stylesheets to XML
57 documents. It is part of libxslt(3), the XSLT C library for GNOME.
58 While it was developed as part of the GNOME project, it can operate
59 independently of the GNOME desktop.
60 Using libxml 20632, libxslt 10124 and libexslt 813
62 let command = "xsltproc"
65 let mk_queryfile b doc q out = build_xslt doc q out b
66 let mk_cmdline b qout qfile doc _ = [ "--timing" ; "-o";qout; qfile; doc ]
67 let parse_rules = [ (".*Parsing stylesheet test.xsl took \\([0-9]+\\) ms.*",
68 [ Query_compile_time 1 ]);
70 (".*Parsing document tiny.xml took \\([0-9]+\\) ms.*",
71 [ Input_parsing_time 1 ]);
73 (".*Running stylesheet and saving result took \\([0-9]+\\) ms.*",
74 [ Query_execution_time 1 ]);
77 module SXSI : ENGINE =
81 let command = "../main"
84 let mk_queryfile b doc q out = ()
85 let mk_cmdline b qout qfile doc q =
86 let doc' = (Filename.chop_suffix doc ".xml")^".srx" in
87 [ doc'; q ]@ (if b then [qout] else [])
89 [ ( ".*Parsing document :[ \\t]*\\([0-9]+\\.[0-9]*\\)ms.*",
90 [ Input_parsing_time 1]);
92 ( ".*Compiling query :[ \\t]*\\([0-9]+\\.[0-9]*\\)ms.*",
93 [ Query_compile_time 1]);
95 ( ".*Execution time :[ \\t]*\\([0-9]+\\.[0-9]*\\)ms.*",
96 [ Query_execution_time 1]);
98 ( ".*Serializing results :[ \\t]*\\([0-9]+\\.[0-9]*\\)ms.*",
99 [ Serialization_time 1]);
108 let l = TEST.test_engine [] (make_queryset
115 List.iter (function (e,d),s ->
116 Printf.printf "\n-------------- %s -----------------" e;
118 Array.iteri ( fun i f ->
119 if (CONF.run_with_output && i=1) || (CONF.run_without_output && i = 0)
122 print_stats Format.std_formatter f;
125 Printf.printf "\n----------------------------------------\n"