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.
This commit is contained in:
Nick Mathewson 2019-09-11 18:44:10 -04:00
parent 9a101c2c0f
commit c6191983e9

18
scripts/coccinelle/try_parse.sh Executable file
View File

@ -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