Coccinelle release-1.0.0-rc11
[bpt/coccinelle.git] / testing.ml
index 8496e14..2192c2a 100644 (file)
@@ -1,3 +1,29 @@
+(*
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
+ * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
+ * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+ * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+ * This file is part of Coccinelle.
+ *
+ * Coccinelle is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, according to version 2 of the License.
+ *
+ * Coccinelle is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Coccinelle.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The authors reserve the right to distribute this or future versions of
+ * Coccinelle under other licenses.
+ *)
+
+
 open Common
 open Sexplib
 
@@ -358,11 +384,11 @@ let test_regression_okfailed () =
 
   let newscore  = Common.empty_score () in
   let oks =
-    Common.cmd_to_list ("find -name \"*.ok\"")
+    Common.cmd_to_list ("find -name \"*.ok\"")
     ++
-    Common.cmd_to_list ("find -name \"*.spatch_ok\"")
+    Common.cmd_to_list ("find -name \"*.spatch_ok\"")
   in
-  let failed = Common.cmd_to_list ("find -name \"*.failed\"") in
+  let failed = Common.cmd_to_list ("find -name \"*.failed\"") in
 
   if null (oks ++ failed)
   then failwith "no ok/failed file, you certainly did a make clean"
@@ -433,32 +459,33 @@ let test_parse_cocci file =
   if not (file =~ ".*\\.cocci")
   then pr2 "warning: seems not a .cocci file";
 
-  let (_,xs,_,_,_,_,grep_tokens,query) =
+  let (_,xs,_,_,_,_,(grep_tokens,query,_)) =
     Parse_cocci.process file (Some !Config.std_iso) false in
   xs +> List.iter Pretty_print_cocci.unparse;
   Format.print_newline();
   (* compile ocaml script code *)
   (match Prepare_ocamlcocci.prepare file xs with
-       None -> ()
-     | Some ocaml_script_file ->
-        (* compile file *)
-        Prepare_ocamlcocci.load_file ocaml_script_file;
-        (* remove file *)
-        Prepare_ocamlcocci.clean_file ocaml_script_file;
-        (* Print the list of registered functions *)
-        Prepare_ocamlcocci.test ());
+    None -> ()
+  | Some ocaml_script_file ->
+      (* compile file *)
+      Prepare_ocamlcocci.load_file ocaml_script_file;
+      (* remove file *)
+      (if not !Common.save_tmp_files
+      then Prepare_ocamlcocci.clean_file ocaml_script_file);
+      (* Print the list of registered functions *)
+      Prepare_ocamlcocci.test ());
   Printf.printf "grep tokens\n";
   (match grep_tokens with
     None -> pr "No query"
   | Some x -> pr (String.concat " || " x));
   match !Flag.scanner with
     Flag.NoScanner | Flag.Grep -> ()
-  | Flag.Glimpse | Flag.Google _ ->
+  | Flag.Glimpse | Flag.IdUtils | Flag.Google _ ->
       Printf.printf "%s tokens\n"
        (if !Flag.scanner = Flag.Glimpse then "glimpse" else "google");
       (match query with
        None -> pr "No query"
-      | Some x -> pr (String.concat " ||\n" x))
+      | Some x -> pr (String.concat "\nor on glimpse failure\n" x))