]> matita.cs.unibo.it Git - helm.git/blob - helm/hbugs/test/test_serialization.ml
Initial revision
[helm.git] / helm / hbugs / test / test_serialization.ml
1 (*
2  *  Copyright (C) 2003, HELM Team.
3  *
4  *  This file is part of HELM, an Hypertextual, Electronic
5  *  Library of Mathematics, developed at the Computer Science
6  *  Department, University of Bologna, Italy.
7  *
8  *  HELM is free software; you can redistribute it and/or
9  *  modify it under the terms of the GNU General Public License
10  *  as published by the Free Software Foundation; either version 2
11  *  of the License, or (at your option) any later version.
12  *
13  *  HELM is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with HELM; if not, write to the Free Software
20  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston,
21  *  MA  02111-1307, USA.
22  *
23  *  For details, see the HELM World-Wide-Web page,
24  *  http://cs.unibo.it/helm/.
25  *)
26
27 (* test serialization/deserialization of Hbugs_messages module. File given as
28 cmd line argument is read line by line, each line is expected to contain a
29 Hbugs_types.message that is parsed, pretty printed and parsed again to check for
30 serialization consistency *)
31 open Printf;;
32 let fname = Sys.argv.(1) in
33 let ic = open_in fname in
34 let lineno = ref 1 in
35 try
36   while true do
37     let line = input_line ic in
38     let msg = Hbugs_messages.msg_of_string line in
39     let pp = Hbugs_messages.string_of_msg msg in
40     let msg' = Hbugs_messages.msg_of_string pp in
41     assert (msg = msg');
42     incr lineno
43   done
44 with
45 | End_of_file -> prerr_endline "All done!"
46 | exc ->
47     prerr_endline
48       (sprintf "Failure at line %d: %s" !lineno (Printexc.to_string exc))