Browse Source

Practracker: do not list problems when told to --list-overbroad.

Nick Mathewson 4 years ago
parent
commit
25d55fa01e
2 changed files with 16 additions and 0 deletions
  1. 9 0
      scripts/maint/practracker/practracker.py
  2. 7 0
      scripts/maint/practracker/util.py

+ 9 - 0
scripts/maint/practracker/practracker.py

@@ -224,6 +224,11 @@ def main(argv):
     filt.addThreshold(problem.DependencyViolationItem("*.c", int(args.max_dependency_violations)))
     filt.addThreshold(problem.DependencyViolationItem("*.h", int(args.max_dependency_violations)))
 
+    if args.list_overbroad and args.regen:
+        print("Cannot use --regen with --list-overbroad",
+              file=sys.stderr)
+        sys.exit(1)
+
     # 1) Get all the .c files we care about
     files_list = util.get_tor_c_files(TOR_TOPDIR, args.include_dir)
 
@@ -239,6 +244,10 @@ def main(argv):
         ProblemVault = problem.ProblemVault(exceptions_file)
         problem_file = sys.stdout
 
+    if args.list_overbroad:
+        # If we're listing overbroad exceptions, don't list problems.
+        problem_file = util.NullFile()
+
     # 2.1) Adjust the exceptions so that we warn only about small problems,
     # and produce errors on big ones.
     if not (args.regen or args.list_overbroad or args.strict):

+ 7 - 0
scripts/maint/practracker/util.py

@@ -41,3 +41,10 @@ def get_tor_c_files(tor_topdir, include_dirs=None):
                 files_list.append(full_path)
 
     return files_list
+
+class NullFile:
+    """A file-like object that we can us to suppress output."""
+    def __init__(self):
+        pass
+    def write(self, s):
+        pass