X-Git-Url: http://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/785a3008ddade80f642257bb47d43158ac8b8311..17ba07880e1838028b4516ba7a2db2147b3aa1c9:/testing.ml diff --git a/testing.ml b/testing.ml index 8496e14..2192c2a 100644 --- a/testing.ml +++ b/testing.ml @@ -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 . + * + * 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))