From: Nick Mathewson Date: Wed, 11 Sep 2019 22:44:10 +0000 (-0400) Subject: Add a script to tell whether a file can be perfectly parsed by spatch X-Git-Tag: tor-0.4.3.1-alpha~262^2~1^2~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c6191983e93fc9d377650555fb78649e9fe8713b;p=thirdparty%2Ftor.git Add a script to tell whether a file can be perfectly parsed by spatch spatch can let us know whether a file has parsed "perfectly" or not. The more perfect it parses, the likelier any semantic patches are to apply. I've used this script to identify problem areas in our code. --- diff --git a/scripts/coccinelle/try_parse.sh b/scripts/coccinelle/try_parse.sh new file mode 100755 index 0000000000..865c85570a --- /dev/null +++ b/scripts/coccinelle/try_parse.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +# Echo the name of every argument of this script that is not "perfect" +# according to coccinelle's --parse-c. + +top="$(dirname "$0")/../.." + +for fn in "$@"; do + + if spatch -macro_file_builtins "$top"/scripts/coccinelle/tor-coccinelle.h \ + -I "$top" -I "$top"/src -I "$top"/ext --parse-c "$fn" \ + 2>/dev/null | grep "perfect = 1" > /dev/null; then + : # it's perfect + else + echo "$fn" + fi + +done