From c6191983e93fc9d377650555fb78649e9fe8713b Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 11 Sep 2019 18:44:10 -0400 Subject: 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. --- scripts/coccinelle/try_parse.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 scripts/coccinelle/try_parse.sh (limited to 'scripts/coccinelle') 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 -- cgit v1.2.3-54-g00ecf