3 * Stefano Zacchiroli <zack@cs.unibo.it>
4 * for the HELM Team http://helm.cs.unibo.it/
6 * This file is part of HELM, an Hypertextual, Electronic
7 * Library of Mathematics, developed at the Computer Science
8 * Department, University of Bologna, Italy.
10 * HELM is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
15 * HELM is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with HELM; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
25 * For details, see the HELM World-Wide-Web page,
26 * http://helm.cs.unibo.it/
36 let test_data = "HBUGS_MESSAGES.xml" ;;
38 let test_message (n:('a Pxp_document.extension as 'b) Pxp_document.node as 'a) =
41 let buf = Buffer.create 1000 in
42 n#write (`Out_buffer buf) `Enc_utf8;
45 let msg = Hbugs_messages.msg_of_string msg_string in
46 let pp = Hbugs_messages.string_of_msg msg in
47 let msg' = Hbugs_messages.msg_of_string pp in
50 (sprintf "Failure with msg %s"
51 (match n#node_type with T_element name -> name | _ -> assert false))
54 (sprintf "Failure with msg %s: uncaught exception %s"
55 (match n#node_type with T_element name -> name | _ -> assert false)
56 (Printexc.to_string e))
59 let is_xml_element n =
60 match n#node_type with T_element _ -> true | _ -> false
64 parse_wfcontent_entity default_config (from_file test_data) default_spec
66 printf "Testing all messages from %s ...\n" test_data; flush stdout;
67 List.iter test_message (List.filter is_xml_element root#sub_nodes);