[tor-commits] [tor/master] Prune the .may_include files a bit; detect unused lines in them

nickm at torproject.org nickm at torproject.org
Sun Jul 1 22:30:09 UTC 2018


commit 83a4946e7b9d2bb75ab8dfa8073c5dd7b3f77bc9
Author: Nick Mathewson <nickm at 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



More information about the tor-commits mailing list