commit 83a4946e7b9d2bb75ab8dfa8073c5dd7b3f77bc9 Author: Nick Mathewson nickm@torproject.org Date: Sun Jul 1 18:14:28 2018 -0400
Prune the .may_include files a bit; detect unused lines in them --- scripts/maint/checkIncludes.py | 16 ++++++++++++++-- src/common/.may_include | 3 --- src/lib/crypt_ops/.may_include | 1 - src/lib/process/.may_include | 1 + src/lib/tls/.may_include | 8 ++++---- 5 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/scripts/maint/checkIncludes.py b/scripts/maint/checkIncludes.py index 3c611675e..9da15a2b9 100755 --- a/scripts/maint/checkIncludes.py +++ b/scripts/maint/checkIncludes.py @@ -20,8 +20,10 @@ INCLUDE_PATTERN = re.compile(r'\s*#\s*include\s+"([^"]*)"') RULES_FNAME = ".may_include"
class Rules(object): - def __init__(self): + def __init__(self, dirpath): + self.dirpath = dirpath self.patterns = [] + self.usedPatterns = set()
def addPattern(self, pattern): self.patterns.append(pattern) @@ -29,6 +31,7 @@ class Rules(object): def includeOk(self, path): for pattern in self.patterns: if fnmatch.fnmatchcase(path, pattern): + self.usedPatterns.add(pattern) return True return False
@@ -48,8 +51,13 @@ class Rules(object): #print(fname) self.applyToLines(iter(f), " of {}".format(fname))
+ def noteUnusedRules(self): + for p in self.patterns: + if p not in self.usedPatterns: + print("Pattern {} in {} was never used.".format(p, self.dirpath)) + def load_include_rules(fname): - result = Rules() + result = Rules(os.path.split(fname)[0]) with open(fname, 'r') as f: for line in f: line = line.strip() @@ -58,12 +66,16 @@ def load_include_rules(fname): result.addPattern(line) return result
+list_unused = False + for dirpath, dirnames, fnames in os.walk("src"): if ".may_include" in fnames: rules = load_include_rules(os.path.join(dirpath, RULES_FNAME)) for fname in fnames: if fname_is_c(fname): rules.applyToFile(os.path.join(dirpath,fname)) + if list_unused: + rules.noteUnusedRules()
if trouble: err( diff --git a/src/common/.may_include b/src/common/.may_include index fab9ad0da..a01a9db0b 100644 --- a/src/common/.may_include +++ b/src/common/.may_include @@ -3,9 +3,6 @@ common/*.h lib/*/*.h
# XXXX These all belong somewhere else -ht.h -linux_syscalls.inc siphash.h src/ext/timeouts/timeout.c tor_queue.h -tor_readpassphrase.h diff --git a/src/lib/crypt_ops/.may_include b/src/lib/crypt_ops/.may_include index 6ca06f590..a0fa4ec05 100644 --- a/src/lib/crypt_ops/.may_include +++ b/src/lib/crypt_ops/.may_include @@ -9,7 +9,6 @@ lib/encoding/*.h lib/fs/*.h lib/lock/*.h lib/malloc/*.h -lib/err/*.h lib/intmath/*.h lib/sandbox/*.h lib/string/*.h diff --git a/src/lib/process/.may_include b/src/lib/process/.may_include index c02e7fddb..05414d2a9 100644 --- a/src/lib/process/.may_include +++ b/src/lib/process/.may_include @@ -4,6 +4,7 @@ lib/cc/*.h lib/container/*.h lib/ctime/*.h lib/err/*.h +lib/intmath/*.h lib/fs/*.h lib/log/*.h lib/malloc/*.h diff --git a/src/lib/tls/.may_include b/src/lib/tls/.may_include index 1a4b8ca52..ca7cb455e 100644 --- a/src/lib/tls/.may_include +++ b/src/lib/tls/.may_include @@ -1,16 +1,16 @@ orconfig.h + lib/arch/*.h lib/cc/*.h -lib/ctime/*.h lib/container/*.h lib/crypt_ops/*.h -lib/intmath/*.h +lib/ctime/*.h lib/encoding/*.h -lib/err/*.h +lib/intmath/*.h +lib/log/*.h lib/net/*.h lib/string/*.h lib/testsupport/testsupport.h lib/tls/*.h -lib/log/*.h
ciphers.inc